Every CVE Search/ Get API key

CVE-2026-22851

FreeRDP RDPGFX ResetGraphics race leads to use-after-free in SDL client (sdl->primary)

6.9 MediumFix available

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.29%Up 0.3 points since Jan 15, 2026
90%50%10%1%

What each source reports

CVE List Score used 6.9

FreeRDP RDPGFX ResetGraphics race leads to use-after-free in SDL client (sdl->primary)

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
CVE-2026-22851
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P
Weakness
CWE-362, CWE-416
Updated
2026-11-02
EUVDEUVD-2026-2677 6.9

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
EUVD-2026-2677
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P
Updated
2026-11-02
NVD 6.9

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
CVE-2026-22851
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P/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
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-362, CWE-416
Updated
2026-11-02
OSVALPINE-CVE-2026-22851 5.9

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
ALPINE-CVE-2026-22851
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-03
OSV 6.9

FreeRDP RDPGFX ResetGraphics race leads to use-after-free in SDL client (sdl->primary)

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
CVE-2026-22851
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P
Weakness
CWE-362, CWE-416
Updated
2026-11-02
OSVDEBIAN-CVE-2026-22851 5.9

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
DEBIAN-CVE-2026-22851
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 6 moreShow less
OSVUBUNTU-CVE-2026-22851 6.9

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.20.1, a race condition between the RDPGFX dynamic virtual channel thread and the SDL render thread leads to a heap use-after-free. Specifically, an escaped pointer to sdl->primary (SDL_Surface) is accessed after it has been freed during RDPGFX ResetGraphics handling. This vulnerability is fixed in 3.20.1.

Record
UBUNTU-CVE-2026-22851
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:P
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVMGASA-2026-0383 No score

Updated freerdp packages fix security vulnerabilities

Updated packages bring lot of security fixes. Please see the links for additional information.

Record
MGASA-2026-0383
Updated
2026-11-02
OSVopenSUSE-SU-2026:10059-1 No score

freerdp-3.20.2-1.1 on GA media

These are all security issues fixed in the freerdp-3.20.2-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:10059-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:20339-1 No score

Security update for freerdp

This update for freerdp fixes the following issues:

Update to version 3.22.0 (jsc#PED-15526):

  • Major bugfix release:

    • Complete overhaul of SDL client
    • Introduction of new WINPR_ATTR_NODISCARD macro wrapping compiler or C language version specific [[nodiscard]] attributes
    • Addition of WINPR_ATTR_NODISCARD to (some) public API functions so usage errors are producing warnings now
    • Add some more stringify functions for logging
    • We've received CVE reports, check https://github.com/FreeRDP/FreeRDP/security/advisories for more details! @Keryer reported an issue affecting client and proxy:
      • CVE-2026-23948 @ehdgks0627 did some more fuzzying and found quite a number of client side bugs.
      • CVE-2026-24682
      • CVE-2026-24683
      • CVE-2026-24676
      • CVE-2026-24677
      • CVE-2026-24678
      • CVE-2026-24684
      • CVE-2026-24679
      • CVE-2026-24681
      • CVE-2026-24675
      • CVE-2026-24491
      • CVE-2026-24680
  • Changes from version 3.21.0

    • [core,info] fix missing NULL check (#12157)
    • [gateway,tsg] fix TSG_PACKET_RESPONSE parsing (#12161)
    • Allow querying auth identity with kerberos when running as a server (#12162)
    • Sspi krb heimdal (#12163)
    • Tsg fix idleTimeout parsing (#12167)
    • [channels,smartcard] revert 649f7de (#12166)
    • [crypto] deprecate er and der modules (#12170)
    • [channels,rdpei] lock full update, not only parts (#12175)
    • [winpr,platform] add WINPR_ATTR_NODISCARD macro (#12178)
    • Wlog cleanup (#12179)
    • new stringify functions & touch API defines (#12180)
    • Add support for querying SECPKG_ATTR_PACKAGE_INFO to NTLM and Kerberos (#12171)
    • [channels,video] measure times in ns (#12184)
    • [utils] Nodiscard (#12187)
    • Error handling fixes (#12186)
    • [channels,drdynvc] check pointer before reset (#12189)
    • Winpr api def (#12190)
    • [winpr,platform] drop C23 [[nodiscard]] (#12192)
    • [gdi] add additional checks for a valid rdpGdi (#12194)
    • Sdl3 high dpiv2 (#12173)
    • peer: Disconnect if Logon() returned FALSE (#12196)
    • [channels,rdpecam] fix PROPERTY_DESCRIPTION parsing (#12197)
    • [channel,rdpsnd] only clean up thread before free (#12199)
    • [channels,rdpei] add RDPINPUT_CONTACT_FLAG_UP (#12195)
  • Update to version 3.21.0:

    • Bugfix release with a few new API functions addressing shortcomings with regard to input data validation. Thanks to @ehdgks0627 we have fixed the following additional (medium) client side vulnerabilities:

      • CVE-2026-23530
      • CVE-2026-23531
      • CVE-2026-23532
      • CVE-2026-23533
      • CVE-2026-23534
      • CVE-2026-23732
      • CVE-2026-23883
      • CVE-2026-23884
  • Changes from version 3.20.2

    • [client,sdl] fix monitor resolution (#12142)
    • [codec,progressive] fix progressive_rfx_upgrade_block (#12143)
    • Krb cache fix (#12145)
    • Rdpdr improved checks (#12141)
    • Codec advanced length checks (#12146)
    • Glyph fix length checks (#12151)
    • Wlog printf format string checks (#12150)
    • [warnings,format] fix format string warnings (#12152)
    • Double free fixes (#12153)
    • [clang-tidy] clean up code warnings (#12154)
  • Update to version 3.20.2:

    • Patch release fixing a regression with gateway connections introduced with 3.20.1

      What's Changed

      • Warnings and missing enumeration types (#12137)
  • Changes from version 3.20.1:

    • New years cleanup release. Fixes some issues reported and does a cleaning sweep to bring down warnings. Thanks to @ehdgks0627 doing some code review/testing we've uncovered the following (medium) vulnerabilities:

      • CVE-2026-22851
      • CVE-2026-22852
      • CVE-2026-22853
      • CVE-2026-22854
      • CVE-2026-22855
      • CVE-2026-22856
      • CVE-2026-22857
      • CVE-2026-22858
      • CVE-2026-22859
    • These affect FreeRDP based clients only, with the exception of CVE-2026-22858 also affecting FreeRDP proxy. FreeRDP based servers are not affected.

  • Update to version 3.20.0:

    *…

Record
openSUSE-SU-2026:20339-1
Updated
2026-11-02
OSVSUSE-SU-2026:0345-1 No score

Security update for freerdp

This update for freerdp fixes the following issues:

  • CVE-2025-4478: Fixed initialization of function pointers after resource allocations (bsc#1243109)
  • CVE-2026-22851: Fixed RDPGFX ResetGraphics race leading to use-after-free in SDL client (sdl->primary) (bsc#1256717)
  • CVE-2026-22852: Fixed heap-buffer-overflow in audin_process_formats (bsc#1256718)
  • CVE-2026-22853: Fixed heap-buffer-overflow in ndr_read_uint8Array (bsc#1256719)
  • CVE-2026-22854: Fixed heap-buffer-overflow in drive_process_irp_read (bsc#1256720)
  • CVE-2026-22855: Fixed heap-buffer-overflow in smartcard_unpack_set_attrib_call (bsc#1256721)
  • CVE-2026-22856: Fixed heap-use-after-free in create_irp_thread (bsc#1256722)
  • CVE-2026-22857: Fixed heap-use-after-free in irp_thread_func (bsc#1256723)
  • CVE-2026-22858: Fixed global-buffer-overflow in crypto_base64_devoce (bsc#1256724)
  • CVE-2026-22859: Fixed heap-buffer-overflow in urb_select_configuration (bsc#1256725)
  • CVE-2026-23530: Fixed improper validation leading to heap buffer overflow in planar_decompress_plane_rle (bsc#1256940)
  • CVE-2026-23531: Fixed improper validation in clear_decompress leading to heap buffer overflow (bsc#1256941)
  • CVE-2026-23532: Fixed mismatch between destination rectangle clamping and the actual copy size leading to heap buffer overflow in gdi_SurfaceToSurface (bsc#1256942)
  • CVE-2026-23533: Fixed improper validation leading to heap buffer overflow in clear_decompress_residual_data (bsc#1256943)
  • CVE-2026-23534: Fixed missing checks leading to heap buffer overflow in clear_deceompress_bands_data (bsc#1256944)
  • CVE-2026-23732: Fixed improper validation leading to heap buffer overflow in Glyph_alloc (bsc#1256945)
  • CVE-2026-23883: Fixed use-after-free when update_pointer_color and freerdp_image_copy_fromPointer_data fail (bsc#1256946)
  • CVE-2026-23884: Fixed use-after-free in gdi_set_bounds (bsc#1256947)
Record
SUSE-SU-2026:0345-1
Updated
2026-11-02
OSVUSN-8105-1 No score

freerdp3 vulnerabilities

It was discovered that FreeRDP incorrectly handled certain RDP packets. A remote attacker could use this issue to cause FreeRDP to crash, resulting in a denial of service, or possibly execute arbitrary code.

Record
USN-8105-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
freerdp
Alpine:v3.23
before 3.22.0-r0
3.22.0-r0
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
before 3.15.0+dfsg-2.1+deb13u1, plus listed versions
3.15.0+dfsg-2.1
3.15.0+dfsg-2.1+deb13u1
freerdp3
Debian:14
before 3.20.2+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 8 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-1
3.20.2+dfsg-1
freerdp
Mageia:10
before 3.31.0-1.mga10
3.31.0-1.mga10
freerdp
SUSE:Linux Enterprise Module for Package Hub 15 SP7
before 3.10.3-150700.3.3.1
3.10.3-150700.3.3.1
freerdp
SUSE:Linux Enterprise Workstation Extension 15 SP7
before 3.10.3-150700.3.3.1
3.10.3-150700.3.3.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
Show 8 moreShow less
Affected packages
PackageAffectedFixed
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.5.1+dfsg1-0ubuntu1.4, plus listed versions
3.4.0+dfsg1-0ubuntu23.4.0+dfsg1-0ubuntu33.4.0+dfsg1-0ubuntu43.5.0+dfsg1-0ubuntu13.5.1+dfsg1-0ubuntu13.5.1+dfsg1-0ubuntu1.13.5.1+dfsg1-0ubuntu1.2
3.5.1+dfsg1-0ubuntu1.4
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:25.10
before 3.16.0+dfsg-2ubuntu0.3, plus listed versions
3.14.0+dfsg-1ubuntu13.15.0+dfsg-2.13.16.0+dfsg-1ubuntu13.16.0+dfsg-23.16.0+dfsg-2ubuntu0.1
3.16.0+dfsg-2ubuntu0.3
freerdp3
Ubuntu:26.04:LTS
before 3.20.2+dfsg-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
3.20.2+dfsg-1
freerdp
openSUSE:Tumbleweed
before 3.20.2-1.1
3.20.2-1.1
freerdp
openSUSE:Leap 16.0
before 3.22.0-160000.1.1
3.22.0-160000.1.1

History

History
RecordedChangedSources
affected, aliases, referencesOSV
affected, aliases, publishedEUVD
first indexedCVE List, NVD, OSV

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

In short

CVE-2026-22851 is a medium vulnerability (CVSS 6.9) in Freerdp, published January 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.29%, the 21st percentile. Fixed in freerdp 3.22.0-r0.

References

Show 114 moreShow less
This page doesn't list everything

Left out here: the rest of 1 source description. The JSON record has them.

MoveEnter Open