Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft 32-byte MIDI file with early note event
-
DeliveryDeliver file to target user
-
ExploitUser opens file in libmodplug-linked application
-
ExecutionMID_ReadPatterns processes note before program-change
-
Persistpat_smplooped computes smpno-1 = -1
-
Impactpat_loops[-1] read, leaking one static memory byte
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a user to open or process a crafted MIDI file using an application that links against libmodplug through 0.8.9.1 - user interaction is required and confirmed by the CVSS 4.0 UI:P metric. The specific trigger is a MIDI note event processed through MID_ReadPatterns before any program-change event has assigned an instrument to the track, so that |
| Impact | The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N, score 4.8) accurately reflects the constrained impact: local attack vector, user interaction required, and only low confidentiality exposure limited to one byte of adjacent static memory with no integrity or availability consequences. The vulnerability is absent from the CISA KEV catalog, no weaponized exploit code has been released, and EPSS data was not available in the intelligence provided - all signals pointing to low urgency. Even a mid-sized municipal IT team in inowroclaw deploying MIDI-capable media software would face minimal real-world risk from this vulnerability in isolation, as the one-byte disclosure does not provide a standalone path to code execution or privilege escalation. The primary threat model is applications that parse untrusted MIDI content from external sources, where the leaked static-memory byte could theoretically assist in information-disclosure chains, but no such chained scenario is documented. No patch exists at time of analysis; the only upstream artifact is an open GitHub issue. The low CVSS score is consistent with real-world risk, and this should be treated as a medium-term tracking item rather than an emergency response. |
| Exploit ScenarioDerived | An attacker crafts a minimal 32-byte MIDI file containing a note event that arrives before any program-change event, leaving |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 18, 2026
Out-of-bounds read in libmodplug through 0.8.9.1 allows a local attacker to cause the library to read one byte before the static pat_loops array by supplying a crafted 32-byte MIDI file to the ModPlug_Load entry point. The flaw in pat_smplooped (src/load_pat.cpp:213-217) arises because smpno defaults to zero and the function subtracts one before indexing the array without a lower-bound check, so a MIDI note event processed before any instrument assignment triggers pat_loops[-1]. The leaked byte influences loop-playback state and discloses one byte of adjacent static storage; no public exploit code or CISA KEV listing exists at time of analysis.
RemediationAI
No vendor-released patch has been identified at time of analysis; organizations should monitor the upstream repository at https://github.com/Konstanty/libmodplug for a commit or release addressing issue #103, and track the VulnCheck advisory at https://www.vulncheck.com/advisories/libmodplug-out-of-bounds-read-in-pat-smplooped-via-crafted-midi-file for updates. As a compensating control, applications ingesting MIDI files from untrusted sources should validate file structure and reject inputs that do not conform to expected format constraints before passing them to ModPlug_Load, reducing the likelihood of reaching the vulnerable code path, though this does not eliminate the risk. Sandboxing the audio-parsing process using OS-level isolation (seccomp-bpf filters or AppArmor profiles on Linux, or separate low-privilege subprocesses) limits the value of any information disclosure, at the cost of added architectural complexity. Where MIDI playback from external sources is not a required product feature, disabling or removing the libmodplug dependency entirely is the most definitive mitigation available until a patch is released.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libmodplug is a C++ audio module playback library by Konstanty Bialkowski, widely embedded in media players, game engines, and multimedia frameworks for rendering MOD, MIDI, and tracker formats. The affected code path starts at the public ModPlug_Load API, traverses CSoundFile::Create → CSoundFile::ReadMID → MID_ReadPatterns, and arrives at pat_smplooped in src/load_pat.cpp (lines 213-217), with the trigger point in src/load_mid.cpp at line 829. The root cause is CWE-125 (Out-of-bounds Read): the function validates the upper bound of the smpno sample index against MAXSMP but never checks for a zero value before computing smpno - 1 as the index into the 191-byte static array pat_loops. Because smpno is zero-initialized and only updated by a preceding program-change event, a MIDI file that delivers a note event before any program-change assignment carries smpno = 0 into the function, producing an array access at offset -1. The affected CPE is cpe:2.3:a:konstanty_bialkowski:libmodplug:*:*:*:*:*:*:*:*, covering all versions through 0.8.9.1.
Know when Libmodplug gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Local file open required with user interaction; single-byte static read yields low confidentiality only, no integrity or availability impact.
AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Libmodplug
View allInteger overflow in the abc_set_parts function in load_abc.cpp in libmodplug 0.8.8.4 and earlier allows remote attackers
Multiple heap-based buffer overflows in the (1) abc_MIDI_drum and (2) abc_MIDI_gchord functions in load_abc.cpp in libmo
Processing a malicious DSM module file with libmodplug through 0.8.9.1 triggers a heap-based out-of-bounds write in CSou
Crafted AMS (Velvet Studio) module files can crash any application that uses libmodplug 0.8.9.1 or earlier by triggering
Crafted ABC Music Format files cause uncontrolled resource consumption in libmodplug up to and including 0.8.9.1, where
Same weakness CWE-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Low| Product | Status |
|---|---|
| SUSE Linux Enterprise High Performance Computing 12 | Affected |
| SUSE Linux Enterprise High Performance Computing 12 SP5 | Affected |
| SUSE Linux Enterprise Server 12 SP5 | Affected |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security | Affected |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP5 | Affected |
| SUSE Linux Enterprise Desktop 12 | Affected |
| SUSE Linux Enterprise Desktop 12 SP1 | Affected |
| SUSE Linux Enterprise Desktop 12 SP2 | Affected |
| SUSE Linux Enterprise Desktop 12 SP3 | Affected |
| SUSE Linux Enterprise Desktop 12 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 12 SP1 | Affected |
| SUSE Linux Enterprise High Performance Computing 12 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 12 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 12 SP4 | Affected |
| SUSE Linux Enterprise Point of Sale 12 SP2-CLIENT | Affected |
| SUSE Linux Enterprise Server 12 | Affected |
| SUSE Linux Enterprise Server 12 SP1 | Affected |
| SUSE Linux Enterprise Server 12 SP1-LTSS | Affected |
| SUSE Linux Enterprise Server 12 SP2 | Affected |
| SUSE Linux Enterprise Server 12 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 12 SP2-ESPOS | Affected |
| SUSE Linux Enterprise Server 12 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 12 SP3 | Affected |
| SUSE Linux Enterprise Server 12 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 12 SP3-ESPOS | Affected |
| SUSE Linux Enterprise Server 12 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server 12 SP4 | Affected |
| SUSE Linux Enterprise Server 12 SP4-ESPOS | Affected |
| SUSE Linux Enterprise Server 12 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 12-LTSS | Affected |
| SUSE Linux Enterprise Server for Raspberry Pi 12 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP4 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP1 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP2 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP3 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP4 | Affected |
| SUSE Linux Enterprise Software Development Kit 12 SP5 | Affected |
| SUSE OpenStack Cloud 7 | Affected |
| SUSE OpenStack Cloud 8 | Affected |
| SUSE OpenStack Cloud 9 | Affected |
| SUSE OpenStack Cloud Crowbar 8 | Affected |
| SUSE OpenStack Cloud Crowbar 9 | Affected |
EUVD-2026-60967
GHSA-prc8-cg98-hxwc
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB