| Title | vgmstream r2117 Divide by Zero |
|---|
| Description | vgmstream contains a CWE-369 vulnerability in decode_ms_ima() in src/coding/ima_decoder.c. The Microsoft IMA decoder derives block_samples from attacker-controlled channel count and frame size values and then immediately computes first_sample % block_samples. The current code does not reject non-positive frame_channels or non-positive derived block_samples before the modulo operation. A malformed RIFF/WAVE file can therefore trigger a divide-by-zero exception during Microsoft IMA ADPCM decoding, terminating applications embedding vgmstream.
I re-verified this issue against the latest upstream HEAD commit 79bc65b52cddc61b859679c1c47dc57092872ae1 on 2026-08-21 and confirmed that the vulnerable logic is still present there.
Affected component / root cause: ms-ima:nonpositive-derived-block-samples-used-as-modulo-divisor
CWE: CWE-369
CVSS v3.1 draft: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H |
|---|
| Source | ⚠️ https://github.com/vgmstream/vgmstream/issues/1999 |
|---|
| User | ni-liao (UID 98297) |
|---|
| Submission | 09/13/2026 16:31 (21 days ago) |
|---|
| Moderation | 10/04/2026 19:37 (21 days later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 413457 [vgmstream up to r2117 Microsoft IMA Decoder src/coding/ima_decoder.c decode_ms_ima divide by zero] |
|---|
| Points | 20 |
|---|