LiquidJS — это шаблонизатор, совместимый с Shopify/GitHub Pages, на чистом JavaScript. До версии 10.27.1 фильтр всплывающего массива в src/filters/array.ts выделял полный клон своего входного массива через [...toArray(v)] без вызова this.context.memoryLimit.use(...), позволяя выполнять рендеринг шаблона, например {{ Huge_array | pop }} для выделения O(N) клона массива, находящегося под влиянием злоумышленника, за пределами настроенного бюджета MemoryLimit. Эта проблема исправлена в версии 10.27.1.
Показать оригинальное описание (EN)
LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. Prior to 10.27.1, the pop array filter at src/filters/array.ts allocated a full clone of its input array via [...toArray(v)] without calling this.context.memoryLimit.use(...), allowing a template render such as {{ huge_array | pop }} to allocate an O(N) clone of an attacker-influenced array outside the configured memoryLimit budget. This issue is fixed in version 10.27.1.
Характеристики атаки
Последствия
Строка CVSS v4.0