Skip to main content

libADLMIDI CVE-2026-111161

| EUVDEUVD-2026-102288 MEDIUM
Out-of-bounds Write (CWE-787)
2026-10-15 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft MIDI with note-on 0x9F/0x7F
  2. Delivery
    Deliver file to victim
  3. Exploit
    Victim loads file via adl_openFile()/adl_openData()
  4. Execution
    BW_MidiSequencer indexes noteStates off-by-one
  5. Persist
    Stack out-of-bounds write
  6. Impact
    Host player/game engine crashes

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the host application or game engine to embed libADLMIDI version 1.6.2 through 1.6.2.1 and to parse an attacker-supplied MIDI file through adl_openFile() or adl_openData(). The specific trigger is a MIDI note-on event using status byte 0x9F (channel 16) with note value 0x7F (127), which drives a one-element overrun of the noteStates index in BW_MidiSequencer. Limiting factors that reduce real-world risk: exploitation is local/file-based (no network service is exposed), it requires the victim to open or load the malicious file (passive user interaction), and it only affects the narrow 1.6.2-1.6.2.1 version band - applications on other libADLMIDI versions are not in scope. Demonstrated impact is a process crash (DoS); reliable code execution is not established.

Impact

The input CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H) yields a base score of 6.9 (Medium), which accurately reflects the real-world risk here rather than overstating it. The attack is LOCAL (AV:L) and requires passive user interaction (UI:P) - a victim must load an attacker-supplied MIDI file into a host application that embeds libADLMIDI - so this is not a remotely-reachable or wormable flaw. No EPSS score was provided in the input, the CVE is NOT on CISA KEV (no confirmed active exploitation), and no KEV/EPSS signals contradict each other. The impact profile is skewed toward availability (VA:H = crash/DoS of the host media player or game engine) with only limited integrity impact (VI:L, consistent with a single-byte off-by-one stack write) and no confidentiality impact (VC:N). Although CWE-787 (out-of-bounds write) can in principle enable code execution, the description and advisory demonstrate only a crash; escalation beyond DoS is NOT confirmed and should not be assumed. A detailed public technical write-up (hackmd) documents the exact triggering bytes (note-on status 0x9F, note 0x7F), which substantially lowers the barrier to reproduction even though no weaponized exploit tool is referenced. Net assessment: a genuine but moderate-priority memory-safety bug - patch in affected deployments, but it is not a drop-everything mass-exploitation event given the local vector, required user interaction, and niche affected library.

Exploit ScenarioDerived

An attacker crafts a malicious MIDI file containing a note-on event with status byte 0x9F and note 0x7F and distributes it (e.g., bundled with a game mod, retro music pack, or sent to a user). When the victim opens it in an application or game engine that uses libADLMIDI 1.6.2-1.6.2.1 via adl_openFile() or adl_openData(), the off-by-one index overflows the noteStates array on the stack, corrupting stack memory and crashing the host process. A public technical write-up documents the exact trigger bytes, so reproduction is straightforward, though only a denial-of-service crash has been demonstrated.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Off-by-one stack out-of-bounds write in libADLMIDI 1.6.2 through 1.6.2.1 lets an attacker corrupt stack memory in the BW_MidiSequencer when a crafted MIDI file is parsed through adl_openFile() or adl_openData(). The trigger is a note-on event with status byte 0x9F and note 0x7F (127), which overruns the noteStates index and can crash the hosting media player or game engine. This is a local, file-based issue requiring the victim to load the malicious MIDI (CVSS 6.9 Medium); no public exploit identified at time of analysis, and the demonstrated impact is denial of service rather than reliable code execution.

RemediationAI

No vendor-released patch identified at time of analysis; track the Wohlstand/libADLMIDI repository and the VulnCheck advisory for a fixed release and upgrade to it once available. Until then, do not open untrusted MIDI files in applications that embed libADLMIDI. A targeted workaround is to pre-scan or sanitize MIDI input and reject or rewrite note-on events with status 0x9F and note 0x7F before calling adl_openFile() or adl_openData(); the trade-off is that legitimate MIDI using channel 16 note 127 will be blocked or altered. Additional compensating controls include running the host media player or game engine in a sandbox or with least privilege to limit the consequences of a crash and memory corruption, or disabling libADLMIDI-based MIDI playback where it is not required. Stack protector or ASan builds may help detect or harden some cases but are not a substitute for a patched library. Key references: https://www.vulncheck.com/advisories/libadlmidi-1.6.2-through-1.6.2.1-stack-out-of-bounds-write-via-bw-midisequencer-notestates and https://hackmd.io/@haind-pwn/libadlmidi-notestates-note-index-stack-oob.

Affected VersionsENISA

libADLMIDI 1.6.2 ≤1.6.2.1

Affected Packages

euvd libadlmidi no fix

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

libADLMIDI is Wohlstand's OPL3 emulation and MIDI sequencer library, commonly embedded in media players, game engines, and MIDI tools. The affected CPE is cpe:2.3:a:wohlstand:libadlmidi:*:*:*:*:*:*:*:* and the affected version band is 1.6.2 through 1.6.2.1. The root cause is CWE-787, an off-by-one stack out-of-bounds write in noteStates indexing inside BW_MidiSequencer: a MIDI note-on with status 0x9F (channel 16) and note value 0x7F (127) drives the index one element past the intended stack array. The referenced source locations are read_smf_impl.hpp around line 113 and miditrack_impl.hpp lines 350-357. The CVSS vector indicates local access (AV:L), no privileges required (PR:N), user interaction (UI:P/UI:R), and high availability impact, consistent with a file-parsing crash rather than a remotely reachable service flaw.

Know when Libadlmidi 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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

File must be opened locally by the user so AV:L and UI:R; no auth needed (PR:N); crash gives A:H, single-byte stack write gives limited I:L, and no info disclosure (C:N).

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

libADLMIDI 1.6.2 through 1.6.2.1 contains an off-by-one stack out-of-bounds write vulnerability in BW_MidiSequencer that allows attackers to corrupt stack memory via crafted MIDI files. Attackers can supply a MIDI file with a note-on using status 0x9F and note 0x7F through adl_openFile() or adl_openData() to crash the hosting media player or game engine.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche OPL3/FM-synthesis MIDI library used by specialized retro game engines and players
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy