Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted APE file to parser
-
DeliveryAPEv2 parser reads forged tag-item size
-
ExploitOversized Uint8Array allocated before bounds check
-
ExecutionRepeated parsing exhausts process memory
-
ImpactDenial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | The host application must use music-metadata prior to 11.16.0 and feed it an attacker-supplied APE/APEv2 file; the trigger is the attacker-controlled tag-item size field (including cover-art/binary items such as 'Cover Art (Front)'), which is allocated as a Uint8Array before being validated against the remaining tag or file length. Amplification to full memory exhaustion relies on repeated or concurrent parsing of such files. Limiting factors: impact is availability-only (no data exposure or code execution), exploitation requires the application to actually parse untrusted media, and the CVSS base vector treats the attack as local (AV:L) - remote reachability depends on whether the deployment accepts uploaded audio files. |
| Impact | This is a genuine but moderate-priority availability flaw, not a high-severity emergency. The CVSS 6.2 vector (AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) reflects a local-vector, low-complexity, no-privilege, no-interaction denial of service with no confidentiality or integrity impact - consistent with CWE-789 (memory allocation with excessive size value) and the description's statement that the demonstrated impact is availability loss only. No EPSS score is present in the input and the CVE is not on CISA KEV, so there is no evidence of widespread or active exploitation; exploitation-probability signals are missing rather than conflicting. A reproducer does exist: the vendor's fix PR #2744 ships regression tests that construct a 134-byte crafted APE cover-art file, so working exploit material is effectively public. The main signal tension is AV:L versus real-world reachability - the base score assumes local file supply, but any service that parses attacker-uploaded audio with music-metadata (a common deployment) makes this remotely reachable, which would push the effective vector toward AV:N even though impact stays availability-only. Bottom line: patch-worthy for anyone parsing untrusted media, but it is a resource-exhaustion DoS, not code execution or data exposure. |
| Exploit ScenarioDerived | An attacker submits a small (~134-byte) crafted APE audio file to an application that uses music-metadata < 11.16.0 to extract tags. The APEv2 parser trusts the attacker-controlled tag-item size (e.g., a forged 0x08000000 cover-art item) and allocates a correspondingly huge Uint8Array before validating it against remaining data; repeated or concurrent submissions exhaust process memory and crash the service. A public reproducer is embedded in the vendor's fix regression tests. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Parsing a crafted APEv2 tag with the music-metadata library before 11.16.0 can force a disproportionate Uint8Array allocation from an attacker-controlled tag-item size field, and repeated or concurrent parsing of such files can exhaust the host process's memory. The flaw is reachable by any Node.js application, service, or bundled front end that hands attacker-supplied .ape/MP3-with-APEv2 media to the parser; it is fixed in 11.16.0. The demonstrated impact is availability loss only - the assessed vector is CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (6.2) with no confidentiality or integrity effect, and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Vendor-released patch: 11.16.0 - upgrade the dependency with npm install music-metadata@^11.16.0 (or pin 11.16.0 exactly) and rebuild/redeploy any bundling applications; the fix is tracked by GHSA-53v6-4h7p-p4gj at https://github.com/Borewit/music-metadata/security/advisories/GHSA-53v6-4h7p-p4gj, PR https://github.com/Borewit/music-metadata/pull/2744, commit https://github.com/Borewit/music-metadata/commit/b3bf52cb6021b046f33ba47583e19ab8f10dd235, and release https://github.com/Borewit/music-metadata/releases/tag/v11.16.0. Where upgrading is delayed, compensating controls should target the unpatched allocation: enforce a strict upload/file-size ceiling and reject media whose declared APEv2 tag size exceeds the actual file length before handing it to the library (this pre-validation is cheap but must be re-implemented on every ingestion path and can reject legitimately large, fully intact tags). Alternatively, run parsing inside a worker thread or subprocess with an explicit memory ceiling (e.g., worker_threads resourceLimits) and a timeout so a single malformed file cannot take down the main process - the trade-off is higher per-parse CPU/memory overhead and possible false failures on large legitimate cover art. Note that setting skipCovers is not sufficient, since non-cover item types 0-3 also reach the vulnerable allocation; the patched 11.16.0 code fixes all of them. There is no vendor-released workaround branch for pre-11.16.0 other than these host-side limits.
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
music-metadata uses the strtok3 tokenizer to walk APEv2 tag structures: an APETAGEX footer/header carrying a tag size, followed by tag items that each begin with a 32-bit little-endian size field, a flags/type word (type 0 = text, 1 = binary, 2 = external/locator, 3 = reserved), a NUL-terminated key such as 'Cover Art (Front)', and the value bytes. In versions before 11.16.0 the parser trusted that size field and, for binary items, executed new Uint8Array(tagItemHeader.size) before confirming the declared item fit within the remaining tag or file data, and it also peeked for the key terminator without reserving the value bytes; this is CWE-789 (Memory Allocation with Excessive Size Value). The upstream fix in PR #2744 (commit b3bf52cb6021b046f33ba47583e19ab8f10dd235, released as v11.16.0) rejects items whose size is greater than or equal to the remaining tag bytes or exceeds the known file size minus the current position, bounds the key peek by the same remaining space, and throws ApeContentError on an unterminated key. For non-random-access streams it reads the value in 64 KiB chunks into a temporary list and only allocates the full buffer after all bytes are actually consumed, so an unknown-size stream can no longer be tricked into a giant up-front allocation. Note that the advisory tagging references information disclosure, but the patched code paths and the assessed vector (C:N/I:N/A:H) confine the demonstrated impact to availability; the CPE cpe:2.3:a:borewit:music-metadata:*:*:*:*:*:*:*:* covers the affected npm package across all pre-11.16.0 releases regardless of the host runtime.
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 need only supply a crafted file (AV:L, AC:L, PR:N, UI:N); no confidentiality or integrity impact and a memory-exhaustion DoS yields C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
music-metadata is a metadata parser for audio and video media files. Prior to 11.16.0, the APEv2 parser reads an attacker-controlled tag-item size and allocates a Uint8Array for a binary item before proving that the declared item fits in the remaining tag or file data. A small crafted APE file can therefore trigger a disproportionate allocation, including through cover-art items, and repeated or concurrent parsing can exhaust process memory. The demonstrated impact is availability loss only. 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
Uncontrolled memory allocation in the music-metadata Node.js library (versions prior to 11.16.0) lets an attacker who su
EUVD-2026-95167
GHSA-53v6-4h7p-p4gj
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB