Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted truncated ID3v2 file
-
ExploitParser trusts syncsafe tag-size field
-
ExecutionAllocates ~268 MiB before input validation
-
ImpactRepeat concurrently to exhaust memory
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | Requires an application running music-metadata prior to 11.16.0 that parses attacker-supplied audio/video input containing an ID3v2 tag (e.g., audio/mpeg MP3 passed through parseBuffer/parseFile). The specific trigger is an ID3v2 header whose syncsafe tag-size field declares a large body (up to 268435455 bytes ≈ 268 MiB) while the file is truncated so the declared bytes are absent. LIMITING FACTORS: the attacker must be able to get a file into the parser (e.g., an upload or ingestion feature); a single file yields only a bounded, transient allocation that is freed after the caught EndOfStreamError, so durable denial-of-service requires high volume or concurrency of crafted files; impact is availability only (no data read or integrity change). No authentication is required by the library itself (PR:N), but the enclosing application's access controls on its file-ingestion path may constrain who can submit files. |
| Impact | This is a resource-exhaustion flaw (CWE-789, Memory Allocation with Excessive Size Value) in the ID3v2 parser of the music-metadata library, confirmed and fixed by the vendor in v11.16.0. The provided CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 6.2 MEDIUM) rates only availability impact - consistent with the description, since the bug causes a large (~268 MiB) heap allocation, not data exposure. No EPSS score, no CISA KEV listing, and no explicit POC flag were supplied, so there is no evidence of active or widespread exploitation; however, the fix commit/test publicly contains the exact 10-byte trigger vector, lowering the barrier to reproduction. Two signals are in tension and should be weighed down: (1) the description notes the allocation SUCCEEDS, the subsequent read hits EndOfStreamError which is caught, and the caller still receives a normal metadata object - meaning a single file produces a transient, bounded ~268 MiB spike that is freed, not a guaranteed crash, so NVD's A:H may overstate per-request impact; realistic denial-of-service requires concurrent or repeated parsing of many crafted files for amplification. (2) The AV:L (local) rating is appropriate for the library in isolation, but in the common deployment where an application parses user-uploaded audio/video, the attacker-controlled file arrives over the network, making the practical exposure closer to remote - verify against your own ingestion path. Net: a legitimate-to-fix MEDIUM availability/DoS issue, not a high-urgency critical; prioritize patching for services that parse untrusted uploads at volume. |
| Exploit ScenarioDerived | An attacker uploads a truncated audio file containing only a crafted ID3v2 header whose syncsafe tag-size field declares a body of ~268 MiB; an application using music-metadata < 11.16.0 to parse the upload allocates the full declared buffer before validating that the bytes exist. Repeating this across many concurrent uploads drives memory pressure and can exhaust host memory, degrading or crashing the parsing service. The fix PR's test includes a minimal 10-byte trigger (ID3 header with size bytes 0x7f 0x7f 0x7f 0x7f = 268435455), so a working trigger input is publicly documented even though no weaponized exploit is reported. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Uncontrolled memory allocation in the music-metadata Node.js library (versions prior to 11.16.0) lets an attacker who supplies a truncated ID3v2 audio file force the parser to reserve up to ~268 MiB based on a header that declares a large tag body which is not actually present. The parser allocates the full declared size before confirming those bytes exist, then silently catches the resulting EndOfStreamError and returns a normal metadata object, so the failure is invisible to the calling application. Impact is limited to availability (assessed CVSS 3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L): each crafted file produces a bounded, transient allocation that is freed once the read fails, so meaningful denial of service requires high volume or concurrency; no public exploit code was identified at time of analysis, and the vendor shipped a fix in 11.16.0.
RemediationAI
Upgrade to music-metadata 11.16.0 or later, the vendor-released patch (v11.16.0 release tag, PR #2743, commit b033db675b913a9dba1d29135ec3c10eae7095a7), which adds a pre-allocation check that throws Id3v2ContentError when the declared ID3v2 tag size exceeds the remaining file size, so no version-specific workaround is required once applied. Where upgrading is not immediately possible, compensate by rejecting files whose declared ID3v2 tag size exceeds the actual bytes available before parsing, enforcing strict request-body and file-size limits on the ingestion path, capping concurrent parse operations, and running the parser in a memory-constrained worker or process (for example Node's --max-old-space-size) so a burst of crafted files degrades only that process; each measure lowers the blast radius but, unlike the patch, does not remove the underlying trust in the declared tag length. Full details are in the advisory at https://github.com/Borewit/music-metadata/security/advisories/GHSA-jjpr-9cvf-cq55, and access controls on the application's file-ingestion endpoint remain an effective limiting factor since the library itself requires no authentication (PR:N).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ID3v2 is the dominant metadata container for MP3 audio, and its header carries a 28-bit 'syncsafe' integer that encodes the size of the tag body. The vulnerable parser (lib/id3v2/ID3v2Parser.ts) read that field and allocated a buffer of the declared size before validating that the stream actually contained the corresponding number of bytes, a CWE-789 (Memory Allocation with Excessive Size Value) pattern. Because of this ordering, a minimal 10-byte ID3v2 header is sufficient to request an allocation of up to 268435455 bytes (~268 MiB); since the truncated input ends immediately, the read fails with EndOfStreamError, which the parser catches internally and then returns a normal metadata object with no error surfaced to the caller. The 11.16.0 fix (PR #2743, commit b033db675b913a9dba1d29135ec3c10eae7095a7) compares the declared tag size against the remaining file size derived from tokenizer.fileInfo.size and the current tokenizer position, throwing Id3v2ContentError before any allocation occurs; a regression test feeds a bare header declaring 0x7f7f7f7f and expects that rejection.
Know when Music Metadata 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
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Attacker supplies a file to the parser (AV:L), no auth or interaction within the library (PR:N/UI:N); impact is a transient, freed ~268 MiB allocation, so A:L rather than A:H, with no C/I impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
music-metadata is a metadata parser for audio and video media files. Prior to 11.16.0, the ID3v2 parser trusts the syncsafe tag-size field and allocates the complete tag body before checking whether the input contains the declared bytes. A truncated file containing only an ID3v2 header can request an allocation approaching 268 MiB; the allocation succeeds, the subsequent read reaches end of stream, the EndOfStreamError is caught internally, and the caller receives a normal metadata object. This issue is fixed in version 11.16.0.
Blast Radius
ecosystem impact- 1 npm packages depend on music-metadata (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 11.16.0.
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
More in Music Metadata
View allDenial of service in the npm package music-metadata before 11.15.0: parsing a crafted .dsf (DSF) file causes an unhandle
Denial of service in music-metadata versions prior to 11.16.0 lets remote attackers crash or exhaust memory in any appli
Unbounded synchronous looping in the unreleased music-metadata master-branch MP4 'stsd' sample-description parser lets a
Denial of service in the npm package music-metadata before 11.16.0 lets unauthenticated remote attackers crash or exhaus
Parsing a crafted APEv2 tag with the music-metadata library before 11.16.0 can force a disproportionate Uint8Array alloc
EUVD-2026-95169
GHSA-jjpr-9cvf-cq55
NVD
CVE.org
EPSS
VulDB
Exploit-DB