<?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://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-06T18:22:17.738846+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" 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://cve.radiocsirt.org/vuln/euvd-2026-277571</id>
    <title>EUVD-2026-277571</title>
    <updated>2026-10-06T18:22:17.808967+00:00</updated>
    <content>EUVD-2026-277571</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-277571"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-33287</id>
    <title>fkie_cve-2026-33287</title>
    <updated>2026-10-06T18:22:17.809030+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to version 10.25.1, the `replace_first` filter in LiquidJS uses JavaScript's `String.prototype.replace()` which interprets `$&amp;` as a back reference to the matched substring. The filter only charges `memoryLimit` for the input string length, not the amplified output. An attacker can achieve exponential memory amplification (up to 625,000:1) while staying within the `memoryLimit` budget, leading to denial of service. Version 10.25.1 patches the issue.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-33287"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-6q5m-63h6-5x4v</id>
    <title>GHSA-6q5m-63h6-5x4v — LiquidJS has Exponential Memory Amplification through its replace_first Filter $&amp; Pattern</title>
    <updated>2026-10-06T18:22:17.809102+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: liquidjs</p>
<p>### Summary
The `replace_first` filter in LiquidJS uses JavaScript's `String.prototype.replace()` which interprets `$&amp;` as a backreference to the matched substring. The filter only charges `memoryLimit` for the input string length, not the amplified output. An attacker can achieve exponential memory amplification (up to 625,000:1) while staying within the `memoryLimit` budget, leading to denial of service.</p>
<p>### Details
The `replace_first` filter in `src/builtin/filters/string.ts:130-133` delegates to JavaScript's native `String.prototype.replace()`. This native method interprets special replacement patterns including `$&amp;` (insert the matched substring), `$'` (insert the portion after the match), and `` $` `` (insert the portion before the match).</p>
<p>The filter calls `memoryLimit.use(str.length)` to account for the **input** string's memory cost, but the **output** string — potentially many times larger due to `$&amp;` expansion — is never charged against the memory limit.</p>
<p>An attacker can build a 1MB string (within `memoryLimit` budget), then use `replace_first` with a replacement string containing 50 repetitions of `$&amp;`. Each `$&amp;` expands to the full matched string (1MB), producing a 50MB output that is not charged to the memory counter.</p>
<p>By chaining this technique across multiple variable assignments, exponential amplification is achieved:</p>
<p>| Stage | Input Size | `$&amp;` Repetitions | Output Size | Cumulative `memoryLimit` Charge |
|-------|-----------|-------------------|---------…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-6q5m-63h6-5x4v"/>
  </entry>
</feed>
