Cyber Resilience

CVE-2026-31883

Memory Safety in Freerdp ≤ 3.24.0

Public PoCMemory Safety
Published
13 March 2026
Modified
17 March 2026
Patch / advisory
CVSS Score v3.1 6.5
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
EPSS Score 0.0032 24th percentile
Risk Priority 50 floored blend · peak EPSS

Summary

CVE-2026-31883 is a medium-severity Heap-based Buffer Overflow (CWE-122) vulnerability in Freerdp Freerdp. Its CVSS base score is 6.5 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation for Privilege Escalation (T1068); ranked at the 24th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-31883 is a size_t underflow vulnerability in the IMA-ADPCM and MS-ADPCM audio decoders of FreeRDP, a free implementation of the Remote Desktop Protocol, affecting versions prior to 3.24.0. Located in libfreerdp/codec/dsp.c, the decoders subtract block header sizes (4 or 8 bytes) from a size_t variable without underflow checks. When a server-supplied nBlockAlign value causes size % block_size == 0 with size smaller than the header, the subtraction wraps size to approximately SIZE_MAX, triggering an astronomically long while (size > 0) loop and leading to a heap-buffer-overflow write via the RDPSND audio channel. It is associated with CWEs-122 (heap-based buffer overflow) and CWE-191 (integer underflow).

The vulnerability carries a CVSS v3.1 base score of 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N), indicating network accessibility, low attack complexity, no privileges or user interaction required, and unchanged scope with low confidentiality and integrity impacts but no availability impact. Remote unauthenticated attackers can exploit FreeRDP clients by acting as RDP servers and sending crafted audio data over the RDPSND channel, potentially enabling partial information disclosure or modification through the resulting buffer overflow.

FreeRDP addresses the issue in version 3.24.0. The GitHub security advisory GHSA-85x9-4xxp-xhm5 and fixing commit 16df2300e1e3f5a51f68fb1626429e58b531b7c8 detail the patch, which practitioners should apply by upgrading affected clients.

EU & UK References

Vulnerability Data

FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, a size_t underflow in the IMA-ADPCM and MS-ADPCM audio decoders leads to heap-buffer-overflow write via the RDPSND audio channel. In libfreerdp/codec/dsp.c, the IMA-ADPCM and MS-ADPCM decoders subtract…

more

block header sizes from a size_t variable without checking for underflow. When nBlockAlign (received from the server) is set such that size % block_size == 0 triggers the header parsing at a point where size is smaller than the header (4 or 8 bytes), the subtraction wraps size to ~SIZE_MAX. The while (size > 0) loop then continues for an astronomical number of iterations. This vulnerability is fixed in 3.24.0.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1068 Exploitation for Privilege Escalation Privilege Escalation
Adversaries may exploit software vulnerabilities in an attempt to elevate privileges.
T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1203 Exploitation for Client Execution Execution
Adversaries may exploit software vulnerabilities in client applications to execute code.
T1210 Exploitation of Remote Services Lateral Movement
Adversaries may exploit remote services to gain unauthorized access to internal systems once inside of a network.
T1212 Exploitation for Credential Access Credential Access
Adversaries may exploit software vulnerabilities in an attempt to collect credentials.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-23534Same product: Freerdp Freerdp
CVE-2026-24682Same product: Freerdp Freerdp
CVE-2026-23532Same product: Freerdp Freerdp
CVE-2026-23531Same product: Freerdp Freerdp
CVE-2026-23533Same product: Freerdp Freerdp
CVE-2026-24679Same product: Freerdp Freerdp
CVE-2026-22854Same product: Freerdp Freerdp
CVE-2026-23732Same product: Freerdp Freerdp
CVE-2026-64620Same product: Freerdp Freerdp
CVE-2026-23530Same product: Freerdp Freerdp

Affected Assets

freerdp
freerdp
≤ 3.24.0

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V1.4.1

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and evaluation (including fuzzing and memory-error detectors) can discover heap overflows after they have been coded.

Input validation enforces bounds checking on data written to heap buffers, directly stopping the overflow condition from being introduced.

Security engineering principles require use of memory-safe constructs and bounds-checked allocation routines that avoid introducing heap overflows.

Memory-protection mechanisms limit the ability of a heap overflow to execute attacker-controlled code or corrupt adjacent structures.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 full match
prevents

Secure-development practices directly require bounds checking and safe memory handling that prevent heap overflows.

ID.RA-01 partial match
prevents

Vulnerability scanning and recording can discover heap-overflow flaws but does not prevent their introduction in code.

PR.PS-02 partial match
prevents

Timely patching removes known heap-overflow instances after they exist.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing in development and acceptance can detect heap overflows before release.

prevents

Secure development lifecycle mandates practices that reduce the likelihood of introducing heap overflows.

prevents

Application security requirements can specify bounds-checking and safe memory APIs that mitigate heap overflows.

prevents

Secure architecture and engineering principles include memory-safety and input-validation controls that address heap overflows.

prevents

Secure coding standards directly prescribe techniques (safe functions, bounds checks) that prevent heap-based buffer overflows.

none

Change management ensures controlled deployment of fixes for discovered heap-overflow vulnerabilities.

References