UBUNTU-CVE-2026-26965 (CVE-2026-26965)
Vulnerability from osv_ubuntu – Published: 2026-02-25 21:16 – Updated: 2026-06-30 16:19 – Source websiteFreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, in the RLE planar decode path, planar_decompress_plane_rle() writes into pDstData at ((nYDst+y) * nDstStep) + (4*nXDst) + nChannel without verifying that (nYDst+nSrcHeight) fits in the destination height or that (nXDst+nSrcWidth) fits in the destination stride. When TempFormat != DstFormat, pDstData becomes planar->pTempData (sized for the desktop), while nYDst is only validated against the surface by is_within_surface(). A malicious RDP server can exploit this to perform a heap out-of-bounds write with attacker-controlled offset and pixel data on any connecting FreeRDP client. The OOB write reaches up to 132,096 bytes past the temp buffer end, and on the brk heap (desktop ≤ 128×128), an adjacent NSC_CONTEXT struct's decode function pointer is overwritten with attacker-controlled pixel data — control-flow–relevant corruption (function pointer overwritten) demonstrated under deterministic heap layout (nsc->decode = 0xFF414141FF414141). Version 3.23.0 fixes the vulnerability.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "freerdp-x11",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-cache1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-client1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-codec1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-common1.1.0",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-core1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-crypto1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-gdi1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-locale1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-plugins-standard",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-primitives1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-rail1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libfreerdp-utils1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-asn1-0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-bcrypt0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-credentials0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-credui0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-crt0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-crypto0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-dsparse0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-environment0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-error0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-file0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-handle0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-heap0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-input0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-interlocked0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-io0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-library0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-path0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-pipe0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-pool0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-registry0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-rpc0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-sspi0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-sspicli0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-synch0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-sysinfo0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-thread0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-timezone0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-utils0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-winhttp0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libwinpr-winsock0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
},
{
"binary_name": "libxfreerdp-client1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
}
]
},
"package": {
"ecosystem": "Ubuntu:16.04:LTS",
"name": "freerdp",
"purl": "pkg:deb/ubuntu/freerdp@1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4?arch=source\u0026distro=xenial"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1",
"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.2",
"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.3",
"1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "freerdp2-shadow-x11",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "freerdp2-wayland",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "freerdp2-x11",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libfreerdp-client2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libfreerdp-server2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libfreerdp-shadow-subsystem2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libfreerdp-shadow2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libfreerdp2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libuwac0-0",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libwinpr-tools2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "libwinpr2-2",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
},
{
"binary_name": "winpr-utils",
"binary_version": "2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:18.04:LTS",
"name": "freerdp2",
"purl": "pkg:deb/ubuntu/freerdp2@2.2.0+dfsg1-0ubuntu0.18.04.4+esm6?arch=source\u0026distro=esm-infra/bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0.0~git20170725.1.1648deb+dfsg1-1",
"2.0.0~git20170725.1.1648deb+dfsg1-5",
"2.0.0~git20170725.1.1648deb+dfsg1-5ubuntu1",
"2.0.0~git20170725.1.1648deb+dfsg1-5ubuntu2",
"2.0.0~git20170725.1.1648deb+dfsg1-6",
"2.0.0~git20170725.1.1648deb+dfsg1-6build1",
"2.0.0~git20170725.1.1648deb+dfsg1-7",
"2.0.0~git20170725.1.1648deb+dfsg1-7ubuntu0.1",
"2.1.1+dfsg1-0ubuntu0.18.04.1",
"2.2.0+dfsg1-0ubuntu0.18.04.1",
"2.2.0+dfsg1-0ubuntu0.18.04.2",
"2.2.0+dfsg1-0ubuntu0.18.04.3",
"2.2.0+dfsg1-0ubuntu0.18.04.4",
"2.2.0+dfsg1-0ubuntu0.18.04.4+esm1",
"2.2.0+dfsg1-0ubuntu0.18.04.4+esm2",
"2.2.0+dfsg1-0ubuntu0.18.04.4+esm3",
"2.2.0+dfsg1-0ubuntu0.18.04.4+esm4",
"2.2.0+dfsg1-0ubuntu0.18.04.4+esm5",
"2.2.0+dfsg1-0ubuntu0.18.04.4+esm6"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "freerdp-x11",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-cache1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-client1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-codec1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-common1.1.0",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-core1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-crypto1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-gdi1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-locale1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-plugins-standard",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-primitives1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-rail1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libfreerdp-utils1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-asn1-0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-bcrypt0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-credentials0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-credui0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-crt0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-crypto0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-dsparse0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-environment0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-error0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-file0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-handle0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-heap0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-input0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-interlocked0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-io0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-library0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-path0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-pipe0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-pool0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-registry0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-rpc0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-sspi0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-sspicli0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-synch0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-sysinfo0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-thread0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-timezone0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-utils0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-winhttp0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libwinpr-winsock0.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
},
{
"binary_name": "libxfreerdp-client1.1",
"binary_version": "1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
}
]
},
"package": {
"ecosystem": "Ubuntu:18.04:LTS",
"name": "freerdp",
"purl": "pkg:deb/ubuntu/freerdp@1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2?arch=source\u0026distro=bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1",
"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.1",
"1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "freerdp2-shadow-x11",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "freerdp2-wayland",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "freerdp2-x11",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libfreerdp-client2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libfreerdp-server2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libfreerdp-shadow-subsystem2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libfreerdp-shadow2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libfreerdp2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libuwac0-0",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libwinpr-tools2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "libwinpr2-2",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
},
{
"binary_name": "winpr-utils",
"binary_version": "2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:20.04:LTS",
"name": "freerdp2",
"purl": "pkg:deb/ubuntu/freerdp2@2.6.1+dfsg1-0ubuntu0.20.04.2+esm4?arch=source\u0026distro=esm-infra/focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0.0~git20190204.1.2693389a+dfsg1-1",
"2.0.0~git20190204.1.2693389a+dfsg1-2",
"2.0.0~git20190204.1.2693389a+dfsg1-2build1",
"2.0.0~git20190204.1.2693389a+dfsg1-2build2",
"2.1.1+dfsg1-0ubuntu0.20.04.1",
"2.2.0+dfsg1-0ubuntu0.20.04.1",
"2.2.0+dfsg1-0ubuntu0.20.04.2",
"2.2.0+dfsg1-0ubuntu0.20.04.3",
"2.2.0+dfsg1-0ubuntu0.20.04.4",
"2.2.0+dfsg1-0ubuntu0.20.04.5",
"2.2.0+dfsg1-0ubuntu0.20.04.6",
"2.6.1+dfsg1-0ubuntu0.20.04.1",
"2.6.1+dfsg1-0ubuntu0.20.04.2",
"2.6.1+dfsg1-0ubuntu0.20.04.2+esm1",
"2.6.1+dfsg1-0ubuntu0.20.04.2+esm2",
"2.6.1+dfsg1-0ubuntu0.20.04.2+esm3",
"2.6.1+dfsg1-0ubuntu0.20.04.2+esm4"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "freerdp2-shadow-x11",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "freerdp2-wayland",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "freerdp2-x11",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libfreerdp-client2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libfreerdp-server2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libfreerdp-shadow-subsystem2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libfreerdp-shadow2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libfreerdp2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libuwac0-0",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libwinpr-tools2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "libwinpr2-2",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
},
{
"binary_name": "winpr-utils",
"binary_version": "2.6.1+dfsg1-3ubuntu2.11"
}
]
},
"package": {
"ecosystem": "Ubuntu:22.04:LTS",
"name": "freerdp2",
"purl": "pkg:deb/ubuntu/freerdp2@2.6.1+dfsg1-3ubuntu2.11?arch=source\u0026distro=jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.3.0+dfsg1-2build1",
"2.3.0+dfsg1-2ubuntu1",
"2.3.0+dfsg1-2ubuntu2",
"2.4.1+dfsg1-1",
"2.4.1+dfsg1-1ubuntu1",
"2.4.1+dfsg1-1ubuntu2",
"2.5.0+dfsg1-1",
"2.6.0+dfsg1-1",
"2.6.1+dfsg1-1",
"2.6.1+dfsg1-3",
"2.6.1+dfsg1-3ubuntu1",
"2.6.1+dfsg1-3ubuntu2",
"2.6.1+dfsg1-3ubuntu2.1",
"2.6.1+dfsg1-3ubuntu2.2",
"2.6.1+dfsg1-3ubuntu2.3",
"2.6.1+dfsg1-3ubuntu2.4",
"2.6.1+dfsg1-3ubuntu2.5",
"2.6.1+dfsg1-3ubuntu2.6",
"2.6.1+dfsg1-3ubuntu2.7",
"2.6.1+dfsg1-3ubuntu2.8",
"2.6.1+dfsg1-3ubuntu2.9",
"2.6.1+dfsg1-3ubuntu2.10",
"2.6.1+dfsg1-3ubuntu2.11"
]
},
{
"ecosystem_specific": {
"availability": "No subscription required",
"binaries": [
{
"binary_name": "freerdp3-shadow-x11",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "freerdp3-wayland",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "freerdp3-x11",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libfreerdp-client3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libfreerdp-server3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libfreerdp-shadow-subsystem3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libfreerdp-shadow3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libfreerdp3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libwinpr-tools3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "libwinpr3-3",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
},
{
"binary_name": "winpr3-utils",
"binary_version": "3.5.1+dfsg1-0ubuntu1.4"
}
]
},
"package": {
"ecosystem": "Ubuntu:24.04:LTS",
"name": "freerdp3",
"purl": "pkg:deb/ubuntu/freerdp3@3.5.1+dfsg1-0ubuntu1.4?arch=source\u0026distro=noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "3.5.1+dfsg1-0ubuntu1.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"3.4.0+dfsg1-0ubuntu2",
"3.4.0+dfsg1-0ubuntu3",
"3.4.0+dfsg1-0ubuntu4",
"3.5.0+dfsg1-0ubuntu1",
"3.5.1+dfsg1-0ubuntu1",
"3.5.1+dfsg1-0ubuntu1.1",
"3.5.1+dfsg1-0ubuntu1.2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "freerdp2-shadow-x11",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "freerdp2-wayland",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "freerdp2-x11",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libfreerdp-client2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libfreerdp-server2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libfreerdp-shadow-subsystem2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libfreerdp-shadow2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libfreerdp2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libuwac0-0t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libwinpr-tools2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "libwinpr2-2t64",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
},
{
"binary_name": "winpr-utils",
"binary_version": "2.11.5+dfsg1-1ubuntu0.1~esm6"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:24.04:LTS",
"name": "freerdp2",
"purl": "pkg:deb/ubuntu/freerdp2@2.11.5+dfsg1-1ubuntu0.1~esm6?arch=source\u0026distro=esm-apps/noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.10.0+dfsg1-1.1ubuntu1",
"2.11.2+dfsg1-1",
"2.11.2+dfsg1-1build1",
"2.11.2+dfsg1-1build3",
"2.11.5+dfsg1-1build1",
"2.11.5+dfsg1-1build2",
"2.11.5+dfsg1-1ubuntu0.1~esm1",
"2.11.5+dfsg1-1ubuntu0.1~esm2",
"2.11.5+dfsg1-1ubuntu0.1~esm3",
"2.11.5+dfsg1-1ubuntu0.1~esm4",
"2.11.5+dfsg1-1ubuntu0.1~esm5",
"2.11.5+dfsg1-1ubuntu0.1~esm6"
]
},
{
"ecosystem_specific": {
"availability": "No subscription required",
"binaries": [
{
"binary_name": "freerdp3-proxy",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "freerdp3-proxy-modules",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "freerdp3-sdl",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "freerdp3-shadow-x11",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "freerdp3-wayland",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "freerdp3-x11",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libfreerdp-client3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libfreerdp-server-proxy3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libfreerdp-server3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libfreerdp-shadow-subsystem3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libfreerdp-shadow3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libfreerdp3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libwinpr-tools3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "libwinpr3-3",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
},
{
"binary_name": "winpr3-utils",
"binary_version": "3.16.0+dfsg-2ubuntu0.3"
}
]
},
"package": {
"ecosystem": "Ubuntu:25.10",
"name": "freerdp3",
"purl": "pkg:deb/ubuntu/freerdp3@3.16.0+dfsg-2ubuntu0.3?arch=source\u0026distro=questing"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "3.16.0+dfsg-2ubuntu0.3"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"3.14.0+dfsg-1ubuntu1",
"3.15.0+dfsg-2.1",
"3.16.0+dfsg-1ubuntu1",
"3.16.0+dfsg-2",
"3.16.0+dfsg-2ubuntu0.1"
]
}
],
"aliases": [],
"details": "FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, in the RLE planar decode path, `planar_decompress_plane_rle()` writes into `pDstData` at `((nYDst+y) * nDstStep) + (4*nXDst) + nChannel` without verifying that `(nYDst+nSrcHeight)` fits in the destination height or that `(nXDst+nSrcWidth)` fits in the destination stride. When `TempFormat != DstFormat`, `pDstData` becomes `planar-\u003epTempData` (sized for the desktop), while `nYDst` is only validated against the **surface** by `is_within_surface()`. A malicious RDP server can exploit this to perform a heap out-of-bounds write with attacker-controlled offset and pixel data on any connecting FreeRDP client. The OOB write reaches up to 132,096 bytes past the temp buffer end, and on the brk heap (desktop \u2264 128\u00d7128), an adjacent `NSC_CONTEXT` struct\u0027s `decode` function pointer is overwritten with attacker-controlled pixel data \u2014 control-flow\u2013relevant corruption (function pointer overwritten) demonstrated under deterministic heap layout (`nsc-\u003edecode = 0xFF414141FF414141`). Version 3.23.0 fixes the vulnerability.",
"id": "UBUNTU-CVE-2026-26965",
"modified": "2026-06-30T16:19:39Z",
"published": "2026-02-25T21:16:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2026-26965"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-26965"
},
{
"type": "REPORT",
"url": "https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-5vgf-mw4f-r33h"
},
{
"type": "ADVISORY",
"url": "https://ubuntu.com/security/notices/USN-8105-1"
}
],
"related": [
"USN-8105-1"
],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2026-26965"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.