Scriban до 7.0.0 (затронутые версии <= 6.6.0) содержит уязвимость типа «отказ в обслуживании», при которой ограничение безопасности LimitToString (по умолчанию 1 МБ) можно обойти, поскольку ObjectToString сбрасывает счетчик длины каждого вызова (_currentToStringLength) при каждом вызове верхнего уровня, а StringBuilderOutput не применяет ограничения совокупного размера вывода. Злоумышленник, который может предоставить шаблон, может повторно отображать строку, близкую к пределу, в цикле, выделяя примерно 1 ГБ памяти и вызывая состояние нехватки памяти, которое приводит к сбою хост-приложения.
Показать оригинальное описание (EN)
Scriban before 7.0.0 (affected versions <= 6.6.0) contains a denial-of-service vulnerability in which the LimitToString safety limit (default 1MB) can be bypassed because ObjectToString resets the per-call length counter (_currentToStringLength) on every top-level call and StringBuilderOutput enforces no cumulative output-size limit. An attacker who can supply a template can render a near-limit string repeatedly in a loop, allocating approximately 1GB of memory and causing an out-of-memory condition that crashes the host application.
Характеристики атаки
Последствия
Строка CVSS v4.0