Skip to main content

libvgm CVE-2026-111150

| EUVDEUVD-2026-102277 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-15 VulnCheck
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious .vgm with small 0x7F table
  2. Delivery
    Deliver file to victim via download or share
  3. Exploit
    Victim opens file in libvgm-based player
  4. Execution
    Unbounded table index triggers heap OOB read in DecompressDataBlk
  5. Impact
    Consumer application crashes (denial of service)

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 victim to open or process an attacker-supplied .vgm file in an application that uses libvgm; the file must contain a PCM data block of type 0x7F whose compression table is undersized while referencing wider compressed values, causing DecompressDataBlk to index beyond the table bounds. Limiting factors that reduce real-world risk: exploitation is local and file-based (AV:L) rather than remote, it requires user interaction (the victim must open the crafted file), and the demonstrated impact is limited to a crash/denial-of-service of the consumer - no code execution, privilege escalation, or confirmed confidentiality impact. There is no authentication requirement (PR:N), but the attacker cannot trigger the flaw without the victim choosing to process the malicious media file.

Impact

This is a memory-safety defect (CWE-125 heap out-of-bounds read) in libvgm's PCM data-block decompressor, confirmed by VulnCheck with publicly available proof-of-concept exploit code. The supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) tells a consistent story of a low-severity, availability-only issue: exploitation is local/file-based, requires passive user interaction (opening a crafted .vgm file), needs no privileges, and produces only a crash (VA:H) with no confidentiality or integrity impact. The score of 6.8 is MEDIUM, and the real-world risk is lower still because the only demonstrated outcome is a denial-of-service crash of the consuming application, not code execution or data theft. There is NO CISA KEV listing and no EPSS score was provided in the input, so there is no evidence of active or widespread exploitation - the risk is driven solely by POC availability, not observed attacks. Note a conflict worth flagging: the input Tags include 'Information Disclosure', but the authoritative CVSS confidentiality metric is VC:N, meaning no confidentiality impact is scored; although an OOB read can in principle leak adjacent heap bytes, the vendor-provided vector and description frame this strictly as an over-read that crashes consumers, so treat 'information disclosure' as unconfirmed. Overall this is a genuine but low-priority bug best handled through routine patching rather than emergency response.

Exploit ScenarioDerived

An attacker crafts a malicious .vgm music file containing a type 0x7F PCM compression table that is deliberately undersized relative to the width of the compressed values it references. When a victim opens or plays this file in any application built on libvgm, DecompressDataBlk indexes past the end of the compression table and over-reads heap memory, crashing the consuming program. A public proof-of-concept exists (documented by VulnCheck and a HackMD writeup), so reliable triggering of the crash is already within reach of unsophisticated attackers.

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

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Heap out-of-bounds read in the PCM data-block decompressor (DecompressDataBlk) of ValleyBell libvgm through commit a6eed945 allows a crafted .vgm file to crash the consuming application. A malicious file supplies a PCM data block of type 0x7F with an undersized compression table that is then indexed by wider compressed values, forcing an out-of-bounds heap read; the confirmed impact is a denial-of-service crash of whatever player, converter, or emulator embeds the library, with no code execution, privilege escalation, or confirmed data disclosure. Publicly available proof-of-concept exploit code exists, and the issue is being tracked by VulnCheck; no confirmed active exploitation (CISA KEV) has been reported. Exploitation is local and file-based (CVSS:3.1/AV:L/AC:L/PR:N/UI:R), so an attacker must convince a victim to open the malicious media file, and no public EPSS score was included in the available data.

RemediationAI

No vendor-released patch version is identified in the available data, so the primary action is to track upstream at https://github.com/ValleyBell/libvgm and move to a revision after a6eed945 once the maintainer lands a fix, or backport a bounds check that validates the compression-table index against the declared size of the type 0x7F table before it is used in DecompressDataBlk (the vulnerable logic at player/dblk_compr.c lines 183-190 and 727-751 is the place to add the guard, rejecting blocks whose compressed values require entries wider than the table provides). Where patching is not yet possible, treat .vgm files as untrusted input: run players, converters, and batch scanners that embed libvgm in a sandboxed or low-privilege process so an out-of-bounds read only crashes the isolated worker rather than a user-facing application, and gate automatic parsing of downloaded or user-supplied .vgm media behind explicit confirmation or an allow-list - the trade-off being reduced usability and added friction for legitimate music files. Additional compensating measures include disabling or refusing compressed PCM data blocks (particularly type 0x7F) in any configurable decoder path, and running file-processing jobs under memory sanitizers or hardened allocators during triage; both reduce exposure but either break playback of legitimately compressed files or slow processing. Validation details, including the public proof-of-concept, are published at https://hackmd.io/@haind-pwn/libvgm-pcm-compression-table-oob-read and https://www.vulncheck.com/advisories/valleybell-libvgm-through-commit-a6eed945-heap-out-of-bounds-read-via-decompressdatablk.

Affected VersionsENISA

libvgm 0 ≤a6eed945ecf4e5a25cf82004779c6f7e4fd5c319

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

libvgm is a C library for parsing and playing back VGM (Video Game Music) files, which package chip register writes along with PCM sample data. PCM payloads inside a .vgm file may be stored in compressed data blocks that a decompressor routine (DecompressDataBlk, implemented in player/dblk_compr.c) expands using a per-block compression table; the vulnerable code paths span the table-indexing logic around lines 183-190 and the decompression loop around lines 727-751 at commit a6eed945. The root cause is CWE-125 (Out-of-bounds Read): the compression-table index derived from the compressed data stream is not validated against the declared size of the type 0x7F table, so a file that declares a small table but encodes wider compressed values drives the index past the end of the heap allocation holding the table, producing an over-read. The defect is strictly a read primitve that terminates in a crash of the parsing process; no write primitive, memory corruption leading to code execution, or information leak to the attacker is demonstrated. The affected package is identified by the CPE cpe:2.3:a:valleybell:libvgm:*:*:*:*:*:*:*:*, i.e. all builds up to and including the referenced commit.

Know when Libvgm 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.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.5 MEDIUM

File must be opened locally by a user (AV:L, UI:R) with no privileges (PR:N); impact is a crash only, so C:N/I:N/A:H and unchanged scope.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/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
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ValleyBell libvgm through commit a6eed945 contains a heap out-of-bounds read vulnerability in the PCM data-block decompressor caused by an unbounded compression-table index. Attackers can supply a crafted .vgm file with a small type 0x7F table and wider compressed values, causing DecompressDataBlk to over-read heap memory and crash consumers.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche open-source VGM audio playback library, hobbyist/enthusiast user base
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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 Yes
EPSS 0.1%
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
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
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.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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