LiquidJS — это шаблонизатор, совместимый с Shopify/GitHub Pages, на чистом JavaScript. До версии 10.25.1 механизм безопасности «memoryLimit» LiquidJS можно было полностью обойти, используя выражения обратного диапазона (например, «(100000000..1)»), что позволяло злоумышленнику выделять неограниченную память. В сочетании с операцией выравнивания строк (например, фильтром replace) это вызывает фатальную ошибку V8, которая приводит к сбою процесса Node.js, что приводит к полному отказу в обслуживании по одному HTTP-запросу.
Версия 10.25.1 исправляет проблему.
Показать оригинальное описание (EN)
LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to version 10.25.1, LiquidJS's `memoryLimit` security mechanism can be completely bypassed by using reverse range expressions (e.g., `(100000000..1)`), allowing an attacker to allocate unlimited memory. Combined with a string flattening operation (e.g., `replace` filter), this causes a V8 Fatal error that crashes the Node.js process, resulting in complete denial of service from a single HTTP request. Version 10.25.1 patches the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Liquidjs Liquidjs
cpe:2.3:a:liquidjs:liquidjs:*:*:*:*:*:node.js:*:*
|
— |
10.25.1
|