CVE-2026-75904
CVE-2026-75904 · libmodplug <= 0.8.9.1 - Out-of-Bounds Read in pat_smplooped via Crafted MIDI File
This page contains facts from public vulnerability sources. Check the original advisory before updating.
libmodplug through 0.8.9.1 contains an out-of-bounds read in pat_smplooped in src/load_pat.cpp. The function validates only the upper bound of its sample index against MAXSMP and then subtracts one before indexing the 191-byte static array pat_loops, so an index of zero reads pat_loops[-1], one byte before the array. The index is the smpno field of a parsed MIDI event, which is initialised to zero and only later overwritten from a program-change parameter, so an event reaching the note test before an instrument is assigned carries zero. A 32-byte MIDI file supplied to the library's public ModPlug_Load entry point drives the path through CSoundFile::Create, CSoundFile::ReadMID, and MID_ReadPatterns to the read. The byte read out of bounds determines whether a note event is treated as looping, so adjacent static storage influences playback state.
CVSS 4.8 · Medium · EPSS 0.2% · Fix available
- Published
- Updated
Stack: system
Affected products and versions
libmodplug
- Versions
- ≥ 0, ≤ 0.8.9.1: Affected (custom)
No fix published
libmodplug Debian:12
- Versions
- 1:0.8.9.0-3
- 1:0.8.9.0-4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Debian:13
- Versions
- 1:0.8.9.0-3
- 1:0.8.9.0-4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Debian:14
- Versions
- 1:0.8.9.0-3
- Affected ranges
- ECOSYSTEM: < 1:0.8.9.0-4
Update to 1:0.8.9.0-4
gst-plugins-bad0.10 Ubuntu:Pro:14.04:LTS
- Versions
- 0.10.23-7ubuntu2
- 0.10.23-7.2ubuntu1
- 0.10.23-7.2ubuntu1.1
- 0.10.23-7.2ubuntu1.2
- 0.10.23-7.2ubuntu1.3
- 0.10.23-7.2ubuntu1.3+esm1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:14.04:LTS
- Versions
- 1:0.8.8.4-4
- 1:0.8.8.4-4.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:16.04:LTS
- Versions
- 1:0.8.8.5-2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:18.04:LTS
- Versions
- 1:0.8.9.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:20.04:LTS
- Versions
- 1:0.8.9.0-2
- 1:0.8.9.0-2build1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:22.04:LTS
- Versions
- 1:0.8.9.0-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:24.04:LTS
- Versions
- 1:0.8.9.0-3
- 1:0.8.9.0-3build1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:26.10
- Versions
- 1:0.8.9.0-3build2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
libmodplug Ubuntu:26.04:LTS
- Versions
- 1:0.8.9.0-3build1
- 1:0.8.9.0-3build2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
Original sources
- https://github.com/Konstanty/libmodplug/issues/103
- https://github.com/Konstanty/libmodplug/blob/d1b97ed0020bc620a059d3675d1854b40bd2608d/src/load_pat.cpp#L213-L217
- https://github.com/Konstanty/libmodplug/blob/d1b97ed0020bc620a059d3675d1854b40bd2608d/src/load_mid.cpp#L829
- https://github.com/Konstanty/libmodplug
- https://www.vulncheck.com/advisories/libmodplug-out-of-bounds-read-in-pat-smplooped-via-crafted-midi-file
- https://nvd.nist.gov/vuln/detail/CVE-2026-75904