Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malformed VAG audio file
-
DeliveryDeliver file to victim
-
ExploitVictim plays file in vgmstream-based app
-
ExecutionTrigger OOB read in ps_find_padding
-
ImpactDisclose adjacent memory or crash decoder
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 play an attacker-crafted PlayStation VAG file through an application that uses vgmstream (version up to r2117); the ps_find_padding function in src/coding/psx_decoder.c reads beyond the input buffer when the remaining bytes are fewer than a full ADPCM frame (the patch adds a 'bytes < frame_size' bounds check). Limiting factors: exploitation is passive-interaction dependent (UI:P) - it does not occur without the user loading the malicious file - and impact is confined to minor memory disclosure or a decoder crash rather than code execution or system compromise; no authentication is required per the PR:N metric. |
| Impact | This is a genuinely moderate-to-low priority issue, not a top-tier threat. The signals are largely consistent: the input CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:P) scores 5.3 (MEDIUM), reflecting that exploitation is network-reachable but depends on user interaction (a victim must open or play a crafted file). CWE-125 (out-of-bounds read) plus the Information Disclosure tag indicate the primary impact is limited memory disclosure and/or a decoder crash, not code execution - consistent with the low VC/VI/VA (all L) and no scope change (SC/SI/SA:N). There is no CISA KEV listing and no public exploit was identified in the provided data, so the exploitation signal is weak. The exploitation-maturity metric is E:X (not defined), meaning maturity is explicitly unspecified rather than confirmed. One caveat to verify: the record labels the attack 'remote' and uses AV:N, but as a file-parsing library the realistic vector is a maliciously crafted VAG file delivered to and opened by a victim - 'remote' here means attacker-supplied input, not direct network service exploitation. The input provides only a CVSS 4.0 vector and no 3.1 vector; impact ratings of VI:L (integrity) are questionable for a pure read primitive. Overall: a real but low-urgency defect, appropriately patched. |
| Exploit ScenarioDerived | An attacker crafts a malformed PlayStation VAG audio file in which the padding-detection logic in ps_find_padding encounters insufficient remaining data for a full frame. When a victim opens or plays this file in an application that embeds vgmstream (e.g., a media-player plugin), the decoder reads past the end of the input buffer, disclosing adjacent process memory or crashing the application. No public exploit code was identified at time of analysis, and successful exploitation requires the victim to load the attacker-supplied file (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
An out-of-bounds read in vgmstream up to revision r2117 is triggered when a victim opens or plays an attacker-crafted PlayStation VAG audio file through any application that embeds the library; the flaw sits in ps_find_padding() in src/coding/psx_decoder.c, which scans for padding at the end of a stream and reads past the input buffer when fewer bytes remain than a full ADPCM frame. Exploitation requires user interaction (CVSS 4.0 UI:P, PR:N - no authentication needed) and impact is limited to minor memory disclosure or a decoder crash, with no code execution or system compromise demonstrated. The vendor has published an upstream fix (PR #2001, commit 4b8316652a30d40f99ad43310bed273fd1f8a7a3) with a straightforward bounds check; no public exploit identified at time of analysis, and the associated reference issue (#2000) is a bug report rather than weaponized code.
RemediationAI
Apply the upstream fix: the maintainers merged PR #2001, whose commit 4b8316652a30d40f99ad43310bed273fd1f8a7a3 adds a 'bytes < (int)frame_size' bounds check in ps_find_padding() in src/coding/psx_decoder.c - this is an upstream fix (PR/commit); a released patched version is not independently confirmed, so consumers should build from the commit or from a revision after r2117. Until the updated library is integrated into the host application, compensating controls are: refuse to open or auto-play VAG files from untrusted sources (the attack requires the victim to load the file, so disabling automatic media association and file preview thumbnailing removes the trigger), and run any audio-conversion or batch-testing pipeline that must process untrusted VAG input inside a sandboxed, low-privilege process or container so a crash or small memory disclosure cannot be pivoted further. Note the trade-offs: blocking automatic VAG playback degrades legitimate user workflows, and sandboxing adds CPU and I/O overhead to batch decoding; because the impact ceiling is limited (minor disclosure or denial of service), these controls are proportionate only for environments that routinely ingest untrusted game-audio files. Reference advisories and the patch: https://github.com/vgmstream/vgmstream/pull/2001, https://github.com/vgmstream/vgmstream/commit/4b8316652a30d40f99ad43310bed273fd1f8a7a3, and https://vuldb.com/vuln/413458.
Affected VersionsENISA
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
vgmstream is an open-source audio decoding library used to play streamed video-game audio formats; the affected component is the PSX (PlayStation) ADPCM decoder in src/coding/psx_decoder.c. VAG files are Sony's PlayStation audio container format carrying 16-byte ADPCM frames. The function ps_find_padding() walks the stream looking for trailing padding/silence so the decoder can determine real data end, and it advances by a fixed frame_size without first verifying that the remaining byte count is at least one full frame - a classic CWE-125 out-of-bounds read. The upstream patch (PR #2001, commit 4b8316652a30d40f99ad43310bed273fd1f8a7a3) adds a single guard, 'if (bytes < (int)frame_size) break;', aborting the scan when insufficient data remains. The affected CPE is cpe:2.3:a:n/a:vgmstream:*:*:*:*:*:*:*:*, i.e. all versions up to and including the r2117 snapshot, and the flaw is reachable through any host application that parses untrusted VAG input, since the read occurs inside the library's parsing path rather than in a caller-controlled wrapper.
Know when Vgmstream 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:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Attacker-supplied file is network-deliverable (AV:N) but must be opened by the victim (UI:R); an out-of-bounds read yields limited memory disclosure (C:L) and possible crash (A:L) with no integrity impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A vulnerability was detected in vgmstream up to r2117. Affected by this vulnerability is the function ps_find_padding of the file src/coding/psx_decoder.c of the component VAG File Handler. Performing a manipulation results in out-of-bounds read. The attack is possible to be carried out remotely. The patch is named 4b8316652a30d40f99ad43310bed273fd1f8a7a3. It is suggested to install a patch to address this issue.
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.
Stack out-of-bounds read in vgmstream through r2117's G.722.1/Siren14 decoder can be triggered when a victim opens or le
Resource exhaustion in vgmstream up to revision r2117 allows a remote attacker to trigger application unresponsiveness o
Stack-based buffer overflow in vgmstream up to r2117 allows a remote attacker to crash or potentially execute arbitrary
A divide-by-zero in vgmstream's AWB parser (init_vgmstream_awb_memory in src/meta/awb.c) lets a malformed Atom Wave Bank
Out-of-bounds write in vgmstream (through r2117) lets an attacker corrupt heap memory when a crafted EA SCHl audio file
Out-of-bounds write in vgmstream up to r2117 lets a crafted TXTP playlist (or a related TXTH/VAB config or name-table fi
EUVD-2026-92283
GHSA-vmxr-72v8-8f85
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB