CVE-2026-107392: music-metadata uncatchable process crash parsing DSF files

CVE-2026-107392 · Severity: medium · CVSS 6.2 · Published 2026-10-08

music-metadata is a Node.js library that parses audio file metadata. A crafted DSF (audio) file can crash the entire Node process with an unhandled exception that bypasses the application's error handling, even when properly wrapped in try-catch blocks. An attacker could exploit this by uploading a malicious audio file to take down a server or service that uses this library.

Technologies: Borewit Music-Metadata, Music-Metadata, music-metadata (npm). Vendors: Borewit, Music-Metadata, npm.

Quick answers

Is CVE-2026-107392 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107392 being exploited in the wild.
How severe is CVE-2026-107392?
Medium severity, with a CVSS score of 6.2, published 8 October 2026.
Which products and versions are affected?
Music-Metadata before fix; music-metadata (npm) <= 11.14.0, SEMVER:introduced=0,fixed=11.15.0.
Is there a fix for CVE-2026-107392?
Yes. music-metadata (npm): upgrade to 11.15.0 or later. Until then: Validate chunkHeader.size >= ChunkHeader.len (12 bytes) before calling tokenizer.ignore(), and add await to the ignore() call to ensure exceptions are caught within the promise chain. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107392 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-107392?
Check whether you run Borewit Music-Metadata, Music-Metadata or music-metadata (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • music-metadata (npm): upgrade to 11.15.0 or later
    npm install music-metadata@11.15.0

Validate chunkHeader.size >= ChunkHeader.len (12 bytes) before calling tokenizer.ignore(), and add await to the ignore() call to ensure exceptions are caught within the promise chain.

Technical details

The DsfParser.parseChunks() method calls tokenizer.ignore() without awaiting the promise, causing an unhandled rejection when strtok3 throws a RangeError for negative chunk sizes. A malicious DSF file with a chunk size less than 12 bytes triggers this condition. Because the promise rejection is detached from the main parsing promise chain, Node.js crashes the process with an unhandled rejection even when the caller has wrapped the parse in try-catch.

Affected products

  • music-metadata music-metadata before fix

Identifiers

  • CVE-2026-107392
  • GHSA-8j4c-6x6g-rq3j

Timeline

  • 2026-10-08: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.