Every CVE Search/ Get API key

CVE-2026-91957

FreeRDP before 3.31.0 Use-After-Free via smartcard worker

2.3 LowFix available

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
Passive

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
Low

Exploit likelihood

0.37%Unchanged since Sep 16, 2026
90%50%10%1%

What each source reports

CVE List Score used 2.3

FreeRDP before 3.31.0 Use-After-Free via smartcard worker

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
CVE-2026-91957
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
Weakness
CWE-416
Updated
2026-11-02
EUVDEUVD-2026-78633 2.3

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
EUVD-2026-78633
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-h5f5-2qh4-2xjm 2.3

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device...

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
GHSA-h5f5-2qh4-2xjm
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
Weakness
CWE-416
Updated
2026-11-02
NVD 2.3

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
CVE-2026-91957
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
Weakness
CWE-416
Updated
2026-11-02
OSV 2.3

FreeRDP before 3.31.0 Use-After-Free via smartcard worker

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
CVE-2026-91957
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Weakness
CWE-416
Updated
2026-11-02
OSVDEBIAN-CVE-2026-91957 2.3

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
DEBIAN-CVE-2026-91957
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
OSVUBUNTU-CVE-2026-91957 2.3

FreeRDP before 3.31.0 contains a use-after-free vulnerability in the smartcard RDPDR device handler when worker thread creation fails after device registration. Attackers can trigger thread creation failure during channel setup to cause device pointer deallocation while devman retains a reference, leading to crash or code execution.

Record
UBUNTU-CVE-2026-91957
CVSS 4.0
2.3 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
CVSS 3.1
3.1 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:L
Updated
2026-11-02
OSVCLSA-2026-1791568721 No score

freerdp: Fix of 6 CVEs

  • CVE-2026-91953, CVE-2026-91964: bound every write in nego_send_negotiation_request() with Stream_EnsureRemainingCapacity(); the routing token taken from the server's LB_LOAD_BALANCE_INFO was written into a fixed 512 byte stream unchecked, overflowing the heap allocation
  • CVE-2026-91963: allocate wStream buffers with calloc() instead of malloc(), so the urbdrc completion path can no longer return the untouched tail of a freshly allocated buffer - and with it live heap pointers - to the server when a USB transfer returns short
  • CVE-2026-91959: require four remaining bytes in rts_read_result() before reading result and reason; a malicious RD Gateway could end a BIND_ACK fragment two bytes into a result and make the parser over-read it
  • CVE-2026-91957: do not free the SMARTCARD_DEVICE on the DeviceServiceEntry() failure path once RegisterDevice() has succeeded; devman kept the freed pointer and dereferenced DEVICE.Free through it on channel teardown
  • CVE-2026-91956: bound the interface, alternate-setting and endpoint indices in func_get_ep_desc(); it indexed by array position while the validator indexed by InterfaceNumber, so a permuted descriptor produced an out-of-bounds read of a pointer that was then dereferenced
Record
CLSA-2026-1791568721
Updated
2026-11-02
OSVCLSA-2026-1791569293 No score

freerdp: Fix of 6 CVEs

  • CVE-2026-91953, CVE-2026-91964: bound every write in nego_send_negotiation_request() with Stream_EnsureRemainingCapacity(); the routing token taken from the server's LB_LOAD_BALANCE_INFO was written into a fixed 512 byte stream unchecked, overflowing the heap allocation
  • CVE-2026-91963: allocate wStream buffers with calloc() instead of malloc(), so the urbdrc completion path can no longer return the untouched tail of a freshly allocated buffer - and with it live heap pointers - to the server when a USB transfer returns short
  • CVE-2026-91959: require four remaining bytes in rts_read_result() before reading result and reason; a malicious RD Gateway could end a BIND_ACK fragment two bytes into a result and make the parser over-read it
  • CVE-2026-91957: do not free the SMARTCARD_DEVICE on the DeviceServiceEntry() failure path once RegisterDevice() has succeeded; devman kept the freed pointer and dereferenced DEVICE.Free through it on channel teardown
  • CVE-2026-91956: bound the interface, alternate-setting and endpoint indices in func_get_ep_desc(); it indexed by array position while the validator indexed by InterfaceNumber, so a permuted descriptor produced an out-of-bounds read of a pointer that was then dereferenced
Record
CLSA-2026-1791569293
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
freerdp
TuxCare:CentOS:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
freerdp-devel
TuxCare:CentOS:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
freerdp-libs
TuxCare:CentOS:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
libwinpr
TuxCare:CentOS:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
libwinpr-devel
TuxCare:CentOS:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
freerdp
TuxCare:OracleLinux:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
freerdp-devel
TuxCare:OracleLinux:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
freerdp-libs
TuxCare:OracleLinux:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
libwinpr
TuxCare:OracleLinux:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
libwinpr-devel
TuxCare:OracleLinux:7
From an advisory covering 6 CVEs
before 2.1.1-5.0.9.el7_9.tuxcare.els5
2.1.1-5.0.9.el7_9.tuxcare.els5
Show 11 moreShow less
Affected packages
PackageAffectedFixed
freerdp2
Debian:12
All versions, plus listed versions
2.10.0+dfsg1-12.10.0+dfsg1-1.12.11.2+dfsg1-12.11.2+dfsg1-1.1~exp12.11.2+dfsg1-1.1~exp2
Show 8 moreShow less
2.11.5+dfsg1-12.11.7+dfsg1-12.11.7+dfsg1-22.11.7+dfsg1-32.11.7+dfsg1-42.11.7+dfsg1-52.11.7+dfsg1-62.11.7+dfsg1-6~deb12u1
None known
freerdp3
Debian:13
All versions, plus listed versions
3.15.0+dfsg-2.13.15.0+dfsg-2.1+deb13u13.15.0+dfsg-2.1+deb13u23.15.0+dfsg-2.1+deb13u33.16.0+dfsg-1
Show 42 moreShow less
3.16.0+dfsg-23.17.0+dfsg-13.17.1+dfsg-13.17.1+dfsg-23.17.2+dfsg-13.17.2+dfsg-23.17.2+dfsg-33.18.0+dfsg-13.19.0+dfsg-13.19.1+dfsg-13.20.0+dfsg-13.20.2+dfsg-13.21.0+dfsg-13.22.0+dfsg-13.22.0+dfsg-1~bpo13+03.22.0+dfsg-1~bpo13+13.22.0+dfsg-33.23.0+dfsg-13.23.0+dfsg-1~bpo13+13.24.0+dfsg-13.24.0+dfsg-23.24.1+dfsg-13.24.2+dfsg-13.24.2+dfsg-1~bpo13+13.25.0+dfsg-13.25.0+dfsg-23.25.0+dfsg-33.25.0+dfsg-43.25.0+dfsg-53.26.0+dfsg-13.26.0+dfsg-1~bpo13+13.27.0+dfsg-13.27.1+dfsg-13.28.0+dfsg-13.28.0+dfsg-23.29.0+dfsg-13.30.0+dfsg-13.30.0+dfsg-1~bpo13+13.31.0+dfsg-13.31.1+dfsg-13.31.1+dfsg-1~bpo13+13.32.0+dfsg-1
None known
freerdp3
Debian:14
before 3.31.0+dfsg-1, plus listed versions
3.15.0+dfsg-2.13.16.0+dfsg-13.16.0+dfsg-23.17.0+dfsg-13.17.1+dfsg-1
Show 35 moreShow less
3.17.1+dfsg-23.17.2+dfsg-13.17.2+dfsg-23.17.2+dfsg-33.18.0+dfsg-13.19.0+dfsg-13.19.1+dfsg-13.20.0+dfsg-13.20.2+dfsg-13.21.0+dfsg-13.22.0+dfsg-13.22.0+dfsg-1~bpo13+03.22.0+dfsg-1~bpo13+13.22.0+dfsg-33.23.0+dfsg-13.23.0+dfsg-1~bpo13+13.24.0+dfsg-13.24.0+dfsg-23.24.1+dfsg-13.24.2+dfsg-13.24.2+dfsg-1~bpo13+13.25.0+dfsg-13.25.0+dfsg-23.25.0+dfsg-33.25.0+dfsg-43.25.0+dfsg-53.26.0+dfsg-13.26.0+dfsg-1~bpo13+13.27.0+dfsg-13.27.1+dfsg-13.28.0+dfsg-13.28.0+dfsg-23.29.0+dfsg-13.30.0+dfsg-13.30.0+dfsg-1~bpo13+1
3.31.0+dfsg-1
freerdp
Ubuntu:16.04:LTS
All versions, plus listed versions
1.1.0~git20140921.1.440916e+dfsg1-5ubuntu11.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.21.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.31.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4
None known
freerdp2
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
2.0.0~git20170725.1.1648deb+dfsg1-12.0.0~git20170725.1.1648deb+dfsg1-52.0.0~git20170725.1.1648deb+dfsg1-5ubuntu12.0.0~git20170725.1.1648deb+dfsg1-5ubuntu22.0.0~git20170725.1.1648deb+dfsg1-6
Show 14 moreShow less
2.0.0~git20170725.1.1648deb+dfsg1-6build12.0.0~git20170725.1.1648deb+dfsg1-72.0.0~git20170725.1.1648deb+dfsg1-7ubuntu0.12.1.1+dfsg1-0ubuntu0.18.04.12.2.0+dfsg1-0ubuntu0.18.04.12.2.0+dfsg1-0ubuntu0.18.04.22.2.0+dfsg1-0ubuntu0.18.04.32.2.0+dfsg1-0ubuntu0.18.04.42.2.0+dfsg1-0ubuntu0.18.04.4+esm12.2.0+dfsg1-0ubuntu0.18.04.4+esm22.2.0+dfsg1-0ubuntu0.18.04.4+esm32.2.0+dfsg1-0ubuntu0.18.04.4+esm42.2.0+dfsg1-0ubuntu0.18.04.4+esm52.2.0+dfsg1-0ubuntu0.18.04.4+esm6
None known
freerdp
Ubuntu:18.04:LTS
All versions, plus listed versions
1.1.0~git20140921.1.440916e+dfsg1-15ubuntu11.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.11.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2
None known
freerdp2
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
2.0.0~git20190204.1.2693389a+dfsg1-12.0.0~git20190204.1.2693389a+dfsg1-22.0.0~git20190204.1.2693389a+dfsg1-2build12.0.0~git20190204.1.2693389a+dfsg1-2build22.1.1+dfsg1-0ubuntu0.20.04.1
Show 12 moreShow less
2.2.0+dfsg1-0ubuntu0.20.04.12.2.0+dfsg1-0ubuntu0.20.04.22.2.0+dfsg1-0ubuntu0.20.04.32.2.0+dfsg1-0ubuntu0.20.04.42.2.0+dfsg1-0ubuntu0.20.04.52.2.0+dfsg1-0ubuntu0.20.04.62.6.1+dfsg1-0ubuntu0.20.04.12.6.1+dfsg1-0ubuntu0.20.04.22.6.1+dfsg1-0ubuntu0.20.04.2+esm12.6.1+dfsg1-0ubuntu0.20.04.2+esm22.6.1+dfsg1-0ubuntu0.20.04.2+esm32.6.1+dfsg1-0ubuntu0.20.04.2+esm4
None known
freerdp2
Ubuntu:22.04:LTS
All versions, plus listed versions
2.3.0+dfsg1-2build12.3.0+dfsg1-2ubuntu12.3.0+dfsg1-2ubuntu22.4.1+dfsg1-12.4.1+dfsg1-1ubuntu1
Show 18 moreShow less
2.4.1+dfsg1-1ubuntu22.5.0+dfsg1-12.6.0+dfsg1-12.6.1+dfsg1-12.6.1+dfsg1-32.6.1+dfsg1-3ubuntu12.6.1+dfsg1-3ubuntu22.6.1+dfsg1-3ubuntu2.12.6.1+dfsg1-3ubuntu2.22.6.1+dfsg1-3ubuntu2.32.6.1+dfsg1-3ubuntu2.42.6.1+dfsg1-3ubuntu2.52.6.1+dfsg1-3ubuntu2.62.6.1+dfsg1-3ubuntu2.72.6.1+dfsg1-3ubuntu2.82.6.1+dfsg1-3ubuntu2.92.6.1+dfsg1-3ubuntu2.102.6.1+dfsg1-3ubuntu2.11
None known
freerdp3
Ubuntu:24.04:LTS
before 3.31.0+dfsg-0ubuntu0.24.04.1, plus listed versions
3.4.0+dfsg1-0ubuntu23.4.0+dfsg1-0ubuntu33.4.0+dfsg1-0ubuntu43.5.0+dfsg1-0ubuntu13.5.1+dfsg1-0ubuntu1
Show 7 moreShow less
3.5.1+dfsg1-0ubuntu1.13.5.1+dfsg1-0ubuntu1.23.5.1+dfsg1-0ubuntu1.43.5.1+dfsg1-0ubuntu1.53.5.1+dfsg1-0ubuntu1.63.30.0+dfsg-0ubuntu0.24.04.13.30.0+dfsg-0ubuntu0.24.04.2
3.31.0+dfsg-0ubuntu0.24.04.1
freerdp2
Ubuntu:Pro:24.04:LTS
All versions, plus listed versions
2.10.0+dfsg1-1.1ubuntu12.11.2+dfsg1-12.11.2+dfsg1-1build12.11.2+dfsg1-1build32.11.5+dfsg1-1build1
Show 7 moreShow less
2.11.5+dfsg1-1build22.11.5+dfsg1-1ubuntu0.1~esm12.11.5+dfsg1-1ubuntu0.1~esm22.11.5+dfsg1-1ubuntu0.1~esm32.11.5+dfsg1-1ubuntu0.1~esm42.11.5+dfsg1-1ubuntu0.1~esm52.11.5+dfsg1-1ubuntu0.1~esm6
None known
freerdp3
Ubuntu:26.04:LTS
before 3.31.0+dfsg-0ubuntu0.26.04.1, plus listed versions
3.16.0+dfsg-23.18.0+dfsg-1ubuntu13.19.0+dfsg-13.19.1+dfsg-13.20.0+dfsg-1
Show 8 moreShow less
3.20.2+dfsg-13.21.0+dfsg-13.22.0+dfsg-13.24.1+dfsg-1ubuntu13.24.2+dfsg-1ubuntu13.24.2+dfsg-1ubuntu1.13.30.0+dfsg-0ubuntu0.26.04.13.30.0+dfsg-0ubuntu0.26.04.2
3.31.0+dfsg-0ubuntu0.26.04.1

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-91957 is a low vulnerability (CVSS 2.3) in Freerdp, published September 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 30th percentile. Fixed in freerdp3 3.31.0+dfsg-1.

References

Show 9 moreShow less
MoveEnter Open