Scriban до версии 7.0.0 (затронутые версии <= 6.6.0) содержит уязвимость неконтролируемого выделения памяти в функциях шаблона string.pad_left и string.pad_right, которые не выполняют проверку параметра ширины перед делегированием функции String.PadLeft/PadRight .NET. Когда приложение предоставляет Scriban доступ к ненадежным входным данным шаблона, злоумышленник может указать сколь угодно большое значение ширины (например, 500 000 000), чтобы инициировать выделение ~1 ГБ памяти за один вызов, что приведет к исключению OutOfMemoryException и отказу в обслуживании. Ограничение TemplateContext.LimitToString не предотвращает этого, поскольку оно применяется только после полного выделения строки.
Показать оригинальное описание (EN)
Scriban before 7.0.0 (affected versions <= 6.6.0) contains an uncontrolled memory allocation vulnerability in the string.pad_left and string.pad_right template functions, which perform no validation on the width parameter before delegating to .NET's String.PadLeft/PadRight. When an application exposes Scriban to untrusted template input, an attacker can supply an arbitrarily large width value (e.g., 500,000,000) to trigger ~1GB memory allocations in a single call, resulting in OutOfMemoryException and denial of service. The TemplateContext.LimitToString limit does not prevent this because it is only enforced after the string has been fully allocated.
Характеристики атаки
Последствия
Строка CVSS v4.0