Skip to main content
← Vulnerabilities

libmt32emu before 2.8.4 Heap Buffer Overflow via MidiStreamParserImpl::parseSysex

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

8.5HighCNA
Exploited
Proof of concept public, per CISA
Fix
Fixed in 2.8.4
Who is exposed
Specific setups only

Do first: Check whether your setup matches what the bug needs. Affects libmt32emu before 2.8.4. A single parseStream call must carry a SysEx that starts with 0xF0, holds more than 32768 data bytes, and never reaches 0xF7 or another status byte before the block ends. Reachable under the default parser configuration.

30Pcve.now Index 30 of 100 · methodology v3 · provisional
  • Exploitation15/40CISA rates a proof of concept as public
  • Exposure5/25Specific setups only
  • Reach?/20Reach: unknown (data gap). No tracked technology or package matched
  • Severity9.5/10CVSS 8.5, total technical impact per CISA
  • No patch0/5No signal

What would change the score

  • Would score about 65 if added to CISA KEV
  • Would score about 60 if CISA's SSVC rates exploitation active
  • Would score about 40 if CISA's SSVC rates it automatable

CVE-2026-121941 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 8.5 (high) and affects libmt32emu; fixed in 2.8.4.

Published
Last modified
Published
Not listed in CISA KEV
30/100 · provisional
Specific setups only
Fix
Fixed in 2.8.4
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: total

Summary

The libmt32emu library has a heap buffer overflow in its SysEx parsing that lets an attacker corrupt heap memory and crash the application by sending oversized unterminated SysEx messages through MIDI files, ports, or sequencer clients. The attacker needs local access and no login, but a user must take an action for the attack to work.

Read the original description

libmt32emu before 2.8.4 contains a heap buffer overflow vulnerability in MidiStreamParserImpl::parseSysex that allows attackers to write past a heap allocation by supplying oversized unterminated SysEx messages. Attackers can feed more than 32768 SysEx data bytes through the mt32emu_parse_stream API via MIDI files, ports, or sequencer clients to corrupt heap memory and crash the application.

What to do

  • Check whether your setup matches what the bug needs.

    Affects libmt32emu before 2.8.4. A single parseStream call must carry a SysEx that starts with 0xF0, holds more than 32768 data bytes, and never reaches 0xF7 or another status byte before the block ends. Reachable under the default parser configuration.
  • Upgrade to a fixed version: 2.8.4.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: total

  4. Record last updated

Affected versions

  • munt libmt32emu

    fixed in 2.8.4

Evidence 6

  1. Patch
  2. Exploit
  3. Report
  4. Repository
  5. Link
  6. Link

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

FAQ

Questions about CVE-2026-121941

Is CVE-2026-121941 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. CISA's SSVC assessment notes a proof of concept exists. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

A crafted MIDI SysEx message longer than 32768 data bytes, sent in one parseStream call without a terminating 0xF7 or another status byte, makes libmt32emu write past the end of a heap buffer. The out-of-bounds write corrupts heap memory and can crash the program.Source: vulncheck.com, github.com, hackmd.io

Which versions are affected by CVE-2026-121941?

libmt32emu: before 2.8.4.Source: cve.now feed data

Am I affected, and how do I check?

libmt32emu versions before 2.8.4 are affected, and the issue is reachable through the documented streaming API under the default configuration. To check a version, look at the libmt32emu version in your build or package metadata.Source: vulncheck.com, github.com, hackmd.io

How do I fix CVE-2026-121941?

Upgrade libmt32emu to 2.8.4 or later, which contains the fix.Source: vulncheck.com, github.com, hackmd.io