CVE-2026-33287

HIGH CVSS 3.1: 7,5 EPSS 0.10%
Обновлено 30 марта 2026
Shopify
Параметр Значение
CVSS 7,5 (HIGH)
Уязвимые версии до 10.25.1
Устранено в версии 10.25.1
Тип уязвимости CWE-400 (Неконтролируемое потребление ресурсов), CWE-20 (Неправильная проверка ввода)
Поставщик Shopify
Публичный эксплойт Нет

LiquidJS — это шаблонизатор, совместимый с Shopify/GitHub Pages, на чистом JavaScript. До версии 10.25.1 фильтр replace_first в LiquidJS использовал JavaScript String.prototype.replace(), который интерпретировал $& как обратную ссылку на совпавшую подстроку. Фильтр взимает плату с `memoryLimit` только за длину входной строки, а не за усиленный выходной сигнал.

Злоумышленник может добиться экспоненциального увеличения памяти (до 625 000:1), оставаясь при этом в пределах бюджета «memoryLimit», что приведет к отказу в обслуживании. Версия 10.25.1 исправляет проблему.

Показать оригинальное описание (EN)

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 `$&` 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.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Liquidjs Liquidjs
cpe:2.3:a:liquidjs:liquidjs:*:*:*:*:*:node.js:*:*
10.25.1