<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-19T08:17:18.193003+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-107392</id>
    <title>fkie_cve-2026-107392</title>
    <updated>2026-10-19T08:17:18.212007+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>music-metadata is a metadata parser for audio and video media files. Prior to 11.15.0, the DSF parser handles an unrecognized chunk by calling tokenizer.ignore without awaiting the returned promise and without first rejecting a chunk size smaller than the 12-byte chunk header. A crafted DSF input can produce a negative ignore length; with strtok3 10.3.5 or later, the resulting RangeError is detached from the parseBuffer promise and becomes an unhandled rejection under Node.js default behavior. The parse call can appear to resolve before the process crashes, bypassing per-parse try/catch handling. The demonstrated impact is availability loss only and requires the DSF parsing path. This issue is fixed in version 11.15.0.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-107392"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-8j4c-6x6g-rq3j</id>
    <title>GHSA-8j4c-6x6g-rq3j — music-metadata: uncatchable process crash parsing a crafted `.dsf` (residual of GHSA-v6c2-xwv6-8xf7)</title>
    <updated>2026-10-19T08:17:18.212079+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: music-metadata</p>
<p>## Summary
`DsfParser.parseChunks` skips an unrecognised chunk's payload with an **un-awaited** call:
```js
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.</p>
<p>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.</p>
<p>## Root cause (`lib/dsf/DsfParser.js:34-56`)
```js
while (bytesRemaining &gt;= ChunkHeader.len) {               // ChunkHeader.len = 12
  const chunkHeader = await this.tokenizer.readToken(ChunkHeader);   // { id, size }
  switch (chunkHeader.id) {
    case 'fmt ': { ...; return; }
    default: this.tokenizer.ignore(Number(chunkHeader.size) - ChunkHeader.len); break;  // size&lt;12 -&gt; negative, no await
  }
  bytesRemaining -= chunkHeader.size;
}
```
strtok3 `AbstractTokenizer.ignore` (L78-79): `if (length &lt; 0) throw new RangeError('ignore length must be ≥ 0 bytes');…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-8j4c-6x6g-rq3j"/>
  </entry>
</feed>
