Scriban до версии 7.0.0 (затронутый <= 6.6.0) применяет ограничение LoopLimit только к операторам цикла скрипта, а не к дорогостоящим итерациям, выполняемым внутри встроенных операторов и функций. В результате получается одно выражение, например {{ 1..1000000 | array.size }} — или выражение увеличения памяти, такое как {{ 'A' * 200000000 }} — может вызвать большое потребление процессора или памяти, даже если LoopLimit настроен на очень маленькое значение, что приведет к отказу в обслуживании. Затронуты приложения, которые отображают шаблоны, контролируемые злоумышленниками, и используют LoopLimit для безопасного выполнения.
Показать оригинальное описание (EN)
Scriban before 7.0.0 (affected <= 6.6.0) applies its LoopLimit constraint only to script loop statements and not to expensive iteration performed inside built-in operators and functions. As a result, a single expression such as {{ 1..1000000 | array.size }} — or a memory-amplification expression such as {{ 'A' * 200000000 }} — can force large CPU or memory consumption even when LoopLimit is configured to a very small value, resulting in denial of service. Applications that render attacker-controlled templates and rely on LoopLimit for safe execution are affected.
Характеристики атаки
Последствия
Строка CVSS v4.0