{"id":"EUVD-2026-37823","revision":"0dabbf11f97c4e3ab3dbc3f81434d2c0","records":[{"revision":"0dabbf11f97c4e3ab3dbc3f81434d2c0","observedAt":"2026-10-30T07:56:58.82+00:00","statement":{"source":"euvd","id":"EUVD-2026-37823","aliases":["CVE-2026-45617","GHSA-r7g9-xpmj-5fcq"],"title":"LiquidJS is a Shopify/GitHub Pages compatible template engine written in pure JavaScript. In versions 10.25.7 and below, the built-in strip_html filter uses a regex containing four flawed lazy-quantified alternatives, leading to ReDoS via q…","description":"LiquidJS is a Shopify/GitHub Pages compatible template engine written in pure JavaScript. In versions 10.25.7 and below, the built-in strip_html filter uses a regex containing four flawed lazy-quantified alternatives, leading to ReDoS via quadratic backtracking. When the input contains many <script, <style, or <!-- opener tokens without matching closers, the V8 regex engine performs O(N²) backtracking, blocking the Node.js event loop. A single ~350 KB request ('<script'.repeat(50000)) stalls the process for ~10 seconds; cost grows quadratically with input size. The default memoryLimit: Infinity does not bound regex CPU, and even when configured strip_html only charges str.length to the limit — the regex itself runs unbounded.  A single unauthenticated request containing crafted untrusted input can cause severe event-loop blocking and CPU amplification that saturates Node.js workers while bypassing memoryLimit protections. This issue has been fixed in version 10.26.0.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":7.5,"severity":null}],"references":["https://github.com/harttle/liquidjs/security/advisories/GHSA-r7g9-xpmj-5fcq","https://github.com/harttle/liquidjs/commit/3616a744b9abeb425c217b340a2397d46176afb8","https://github.com/harttle/liquidjs/releases/tag/v10.26.0"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-37823","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Jun 17, 2026, 10:14:38 PM","dateUpdated":"Jun 18, 2026, 3:46:28 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-37823","identifiers":["EUVD-2026-37823","CVE-2026-45617","GHSA-r7g9-xpmj-5fcq"]},"retained":false,"historicalAffected":[]}],"coverage":[]}