<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 30 Sep 2026 21:52:46 +0000</lastBuildDate>
    <item>
      <title>bdu:2026-14263</title>
      <link>https://db.gcve.eu/vuln/bdu:2026-14263</link>
      <description>bdu:2026-14263</description>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/bdu:2026-14263</guid>
    </item>
    <item>
      <title>fkie_cve-2026-71429</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-71429</link>
      <description>&lt;p&gt;stream-json is a micro-library of stream components for processing JSON and JSONC with a minimal memory footprint. Prior to 3.5.0, the path filters pick, ignore, filter, and replace in src/core/filters/filter-base.js recompute the full path string from the nesting stack for every checkable token. Because the stack length equals the current nesting depth and a checkable token is emitted at every level, a depth D document costs O(D²) rather than O(D) to process. The issue is triggered by nesting depth rather than byte volume, including the documented pick({filter: &amp;#39;data&amp;#39;}) traversal-until-match path, so an application that sends untrusted JSON through a string or RegExp filter can block the Node.js event loop and cause denial of service with a small deeply nested document. The streamArray, streamObject, and streamValues streamers are not affected because they use the constant-time asm.depth getter. This issue is fixed in version 3.5.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;stream-json is a micro-library of stream components for processing JSON and JSONC with a minimal memory footprint. Prior to 3.5.0, the path filters pick, ignore, filter, and replace in src/core/filters/filter-base.js recompute the full path string from the nesting stack for every checkable token. Because the stack length equals the current nesting depth and a checkable token is emitted at every level, a depth D document costs O(D²) rather than O(D) to process. The issue is triggered by nesting depth rather than byte volume, including the documented pick({filter: &amp;#39;data&amp;#39;}) traversal-until-match path, so an application that sends untrusted JSON through a string or RegExp filter can block the Node.js event loop and cause denial of service with a small deeply nested document. The streamArray, streamObject, and streamValues streamers are not affected because they use the constant-time asm.depth getter. This issue is fixed in version 3.5.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-71429</guid>
    </item>
    <item>
      <title>GHSA-528h-pc64-c93x — stream-json: pick/ignore/filter/replace filters are O(depth²) on nested input — small crafted JSON blocks the event loo…</title>
      <link>https://db.gcve.eu/vuln/ghsa-528h-pc64-c93x</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: stream-json&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The path filters `pick`, `ignore`, `filter`, and `replace` — the library&amp;#39;s headline &amp;#34;surgical extraction&amp;#34; feature — recompute the full path string from the nesting stack on **every checkable token**. Because the stack length equals the current nesting depth, and a checkable token is emitted at every level, processing a document of depth *D* costs **O(D²)**, not O(D).&lt;/p&gt;
&lt;p&gt;This is triggered by document **structure (nesting depth), not byte volume**, so a tiny payload achieves outsized CPU cost, and it is the ordinary &amp;#34;traverse until the filter matches&amp;#34; path — including the exact README flagship example `pick({filter: &amp;#39;data&amp;#39;})`. Any service that uses these filters to extract a field from an untrusted (or larger-than-memory) JSON body — the primary documented use case — can be made to block its event loop.&lt;/p&gt;
&lt;p&gt;### Affected code (v3.4.0)&lt;/p&gt;
&lt;p&gt;`src/core/filters/filter-base.js`:&lt;/p&gt;
&lt;p&gt;```js
// L26-32 — string filter: rejoins the ENTIRE stack on every call
const stringFilter = (string, separator) =&amp;gt; {
  const stringWithSeparator = string + separator;
  return stack =&amp;gt; {
    const path = stack.join(separator);              // O(depth) — every call
    return path === string || path.startsWith(stringWithSeparator);
  };
};&lt;/p&gt;
&lt;p&gt;// L34-39 — regexp filter: same
const regExpFilter = (regExp, separator) =&amp;gt; {
  return stack =&amp;gt; {
    regExp.lastIndex = 0;
    return regExp.test(stack.join(separator));       // O(depth) — every call
  };
};
```&lt;/p&gt;
&lt;p&gt;```js
// L194 — filter(stack, chunk) is invoked f…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: stream-json&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The path filters `pick`, `ignore`, `filter`, and `replace` — the library&amp;#39;s headline &amp;#34;surgical extraction&amp;#34; feature — recompute the full path string from the nesting stack on **every checkable token**. Because the stack length equals the current nesting depth, and a checkable token is emitted at every level, processing a document of depth *D* costs **O(D²)**, not O(D).&lt;/p&gt;
&lt;p&gt;This is triggered by document **structure (nesting depth), not byte volume**, so a tiny payload achieves outsized CPU cost, and it is the ordinary &amp;#34;traverse until the filter matches&amp;#34; path — including the exact README flagship example `pick({filter: &amp;#39;data&amp;#39;})`. Any service that uses these filters to extract a field from an untrusted (or larger-than-memory) JSON body — the primary documented use case — can be made to block its event loop.&lt;/p&gt;
&lt;p&gt;### Affected code (v3.4.0)&lt;/p&gt;
&lt;p&gt;`src/core/filters/filter-base.js`:&lt;/p&gt;
&lt;p&gt;```js
// L26-32 — string filter: rejoins the ENTIRE stack on every call
const stringFilter = (string, separator) =&amp;gt; {
  const stringWithSeparator = string + separator;
  return stack =&amp;gt; {
    const path = stack.join(separator);              // O(depth) — every call
    return path === string || path.startsWith(stringWithSeparator);
  };
};&lt;/p&gt;
&lt;p&gt;// L34-39 — regexp filter: same
const regExpFilter = (regExp, separator) =&amp;gt; {
  return stack =&amp;gt; {
    regExp.lastIndex = 0;
    return regExp.test(stack.join(separator));       // O(depth) — every call
  };
};
```&lt;/p&gt;
&lt;p&gt;```js
// L194 — filter(stack, chunk) is invoked f…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-528h-pc64-c93x</guid>
    </item>
  </channel>
</rss>
