
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-91963 is an uninitialized heap memory disclosure vulnerability in FreeRDP's urbdrc USB redirection channel. A malicious RDP server can induce failing USB transfers to cause the client to transmit uninitialized heap memory back to the server, defeating ASLR and enabling remote code execution when chained with a memory corruption vulnerability. It affects FreeRDP versions 2.0.0 through 3.30.0 (all 2.x and 3.x releases before 3.31.0), as well as Remmina 1.4.x when using the system libfreerdp with USB redirection enabled. The vulnerability was disclosed on September 1, 2026 via a FreeRDP security advisory and published to NVD on September 15, 2026. It carries a CVSS v3.1 score of 6.5 (High) and a CVSS v4.0 score of 7.1 (High) (FreeRDP Advisory, GitHub Advisory, Red Hat Bugzilla).
The root cause is classified as CWE-457 (Use of Uninitialized Variable) and CWE-824 (Access of Uninitialized Pointer). In channels/urbdrc/client/data_transfer.c, the function urb_write_completion reserves OutputBufferSize bytes in the output stream using Stream_Seek, which only advances the stream position without zeroing or writing the reserved region. When a USB control transfer IN fails (e.g., LIBUSB_ERROR_PIPE) or returns fewer bytes than declared, the reserved space is never populated with device data, so the completion PDU is sent to the server containing stale heap bytes — including live heap and library pointers — from the client process's backing allocation. The same uninitialized-reserve pattern exists in a second completion path at data_transfer.c:892/893. Exploitation requires the victim to have USB redirection active (e.g., xfreerdp /usb:... or the usb option in a Remmina profile) with a device redirected; on Linux, the client typically needs root or libusb-level access to the USB node (FreeRDP Advisory).
The primary impact is a high-severity confidentiality breach: a malicious RDP server can recover tens of kilobytes of client heap memory per session, including live pointers that reveal the client's heap base (connect_base) and libc base address (including the address of system). This effectively defeats ASLR on the client. When chained with a companion heap overflow vulnerability (referred to as "Vuln1" in the advisory), a full remote code execution exploit is achievable against the connecting client — confirmed in testing against FreeRDP on Ubuntu 26.04 with ASLR and NX enabled. Integrity and availability are not directly impacted by this vulnerability alone (FreeRDP Advisory, Red Hat Bugzilla).
No confirmed in-the-wild exploitation has been observed, and no standalone weaponized exploit code is publicly available. The FreeRDP security advisory (GHSA-hw7p-5h2r-83gq) includes a proof-of-concept demonstrating the leak and ASLR defeat, but it does not provide a complete end-to-end RCE exploit chain. NVD SSVC classifies exploitation status as "poc." The EPSS score is 0.0, and the vulnerability is not currently listed in the CISA KEV catalog. The attacker must operate a malicious RDP server and requires the victim to connect with USB redirection enabled — user interaction is required (FreeRDP Advisory, GitHub Advisory).
urbdrc USB redirection channel and is capable of issuing USB IN transfer requests.xfreerdp /usb:id,dev:... or a Remmina profile with the usb option).urbdrc channel.LIBUSB_ERROR_PIPE stalls) or return fewer bytes than declared in OutputBufferSize.urb_write_completion function sends a completion PDU containing OutputBufferSize bytes of uninitialized heap memory (stale data from the stream's backing allocation), which the server receives and parses.connect_base (heap/connection arena base) and libc base address (including the address of system), defeating ASLR.urbdrc) channel traffic is observed; unusually large urbdrc completion PDUs being sent from client to server.xfreerdp, xfreerdp3) launched with /usb: arguments or Remmina processes with USB redirection profiles connecting to external or unrecognized RDP endpoints.urbdrc) with repeated failed USB transfer completions; libusb error messages (e.g., LIBUSB_ERROR_PIPE) coinciding with RDP sessions to external servers./usr/lib/libfreerdp*.so version or package manager output); Remmina profiles configured with the usb option pointing to external RDP servers (FreeRDP Advisory).Upgrade FreeRDP to version 3.31.0 or later, which addresses the vulnerability by ensuring that the reserved output buffer region is zeroed (using Stream_Zero instead of Stream_Seek) and that OutputBufferSize is set to 0 on failed or short IN transfers. As a workaround, disable USB redirection entirely by not using the /usb: flag in xfreerdp or removing the usb option from Remmina profiles. Additionally, restrict RDP client connections to only trusted, known-good RDP servers through network segmentation and firewall rules to reduce exposure to malicious servers (FreeRDP Advisory, Red Hat Bugzilla).
The vulnerability was reported by Julien Lair, a Security Researcher at Quarkslab, and disclosed responsibly through FreeRDP's security advisory process. Red Hat has tracked the issue via Bugzilla (Bug 2533930) and classified it as high severity/priority. VulnCheck published an advisory corroborating the affected version range. No significant broader media coverage or notable social media discussion has been identified at this time (FreeRDP Advisory, Red Hat Bugzilla).
Fix availability across major Linux distributions and their releases.
bionic (esm-apps)
freerdp
bionic (esm-infra)
freerdp2
devel
freerdp3
focal (esm-infra)
freerdp2
jammy
freerdp2
noble
freerdp2
noble (esm-apps)
freerdp2
resolute
freerdp3
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."