Out-of-bounds Write Affecting libwinpr2 package, versions <2.4.0-150400.3.47.1


Severity

Recommended
0.0
high
0
10

Based on SUSE Linux Enterprise Server security rating.

Threat Intelligence

EPSS
0.06% (20th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Out-of-bounds Write vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-SLES157-LIBWINPR2-15875916
  • published3 Apr 2026
  • disclosed27 Mar 2026

Introduced: 27 Mar 2026

NewCVE-2026-26965  (opens in a new tab)
CWE-787  (opens in a new tab)

How to fix?

Upgrade SLES:15.7 libwinpr2 to version 2.4.0-150400.3.47.1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream libwinpr2 package and not the libwinpr2 package as distributed by SLES. See How to fix? for SLES:15.7 relevant fixed versions and status.

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-&gt;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-&gt;decode = 0xFF414141FF414141). Version 3.23.0 fixes the vulnerability.

CVSS Base Scores

version 3.1