CVE-2026-31884
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, division by zero in MS-ADPCM and IMA-ADPCM decoders when nBlockAlign is 0, leading to a crash. In libfreerdp/codec/dsp.c, both ADPCM decoders use size % block_size where block_size = context->common.format.nBlockAlign. The nBlockAlign value comes from the Server Audio Formats PDU on the RDPSND channel. The value 0 is not validated anywhere before reaching the decoder. When nBlockAlign = 0, the modulo operation causes a SIGFPE (floating point exception) crash. This vulnerability is fixed in 3.24.0.
Scoring
- Severity
- MEDIUM
- CVSS base score
- 6.5
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
- EPSS probability
- 0.30%
- CWE
- CWE-369
- Published
- 2026-03-13
- Last modified
- 2026-03-16
Affected products
- FreeRDP FreeRDP
Weakness type
Related vulnerabilities
- CVE-2026-6244 — division by zero in libpcap before 1.10.7
- CVE-2026-85458 — Divide-by-zero in Xpdf 4.06 due to zero-height Type 3 glyph
- CVE-2026-16897 — Vulnerabilities in IBM AIX and PowerVM VIOS
- CVE-2026-63117 — FreeRDP: Denial of service through ADPCM frame size calculation
- CVE-2026-64951 — Velociraptor DoS triggered by Divide by Zero panic
- CVE-2026-17535 — Velociraptor Multiple Crashes in NTFS Parser when applied to invalid NTFS Volumes
- CVE-2026-19025 — HDF5 divide-by-zero (SIGFPE) via mismatched chunk-layout dimensionality and dataspace rank on dataset open
- CVE-2026-67302 — FreeRDP rdpecam StartStreamsRequest divide-by-zero denial of service