p PatchFirst

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

Check your server →