CVE-2026-107392: music-metadata: uncatchable process crash parsing a crafted `.dsf` (residual of GHSA-v6c2-xwv6-8xf7)
DsfParser.parseChunks skips an unrecognised chunk’s payload with an un-awaited call:
this.tokenizer.ignore(Number(chunkHeader.size) - ChunkHeader.len); // lib/dsf/DsfParser.js:51 — no await
ChunkHeader.len is 12. A crafted .dsf chunk with id != 'fmt ' and size in 0..11 makes the
argument negative; strtok3 (≥ 10.3.5) throws RangeError on a negative ignore. Because the call
is fire-and-forget, the rejection is detached from the parseBuffer() promise chain → unhandled
rejection → Node’s default (≥ 15) crashes the process — after parseBuffer() already
resolved, so a caller’s try/catch catches nothing and is still taken down.
Residual of GHSA-v6c2-xwv6-8xf7: the ASF site was fixed in 11.12.3 (size validation) and strtok3
now throws on negative ignore; the DSF site was never validated, and its missing await
escalates that throw into an uncatchable crash.
References
- github.com/Borewit/music-metadata/commit/e7fc27a96e789d41ece41fdac590fc7618274a41
- github.com/Borewit/music-metadata/pull/2700
- github.com/Borewit/music-metadata/releases/tag/v11.15.0
- github.com/Borewit/music-metadata/security/advisories/GHSA-8j4c-6x6g-rq3j
- github.com/advisories/GHSA-8j4c-6x6g-rq3j
- nvd.nist.gov/vuln/detail/CVE-2026-107392
Code Behaviors & Features
Detect and mitigate CVE-2026-107392 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →