Scriban до версии 6.6.0 содержит уязвимость неконтролируемой рекурсии в своем анализаторе рекурсивного спуска. Анализатор не применяет ограничение глубины выражения по умолчанию (свойство ExpressionDepthLimit в ParserOptions по умолчанию имеет значение null/disabled), поэтому злоумышленник, контролирующий ввод шаблона, может предоставить глубоко вложенный шаблон (например, тысячи вложенных круглых скобок или блоков), который исчерпывает пространство стека потока и вызывает исключение StackOverflowException. Поскольку исключение StackOverflowException не может быть перехвачено в .NET, это приводит к немедленному и безвозвратному завершению процесса размещения, что приводит к отказу в обслуживании.
Приложения, обрабатывающие ненадежные или предоставленные пользователем шаблоны, могут быть использованы удаленно без аутентификации.
Показать оригинальное описание (EN)
Scriban before 6.6.0 contains an uncontrolled recursion vulnerability in its recursive-descent parser. The parser does not enforce a default expression depth limit (the ExpressionDepthLimit property in ParserOptions defaults to null/disabled), so an attacker who controls template input can supply a deeply nested template (e.g., thousands of nested parentheses or blocks) that exhausts thread stack space and raises a StackOverflowException. Because a StackOverflowException cannot be caught in .NET, this causes immediate, unrecoverable termination of the hosting process, resulting in a denial of service. Applications that process untrusted or user-supplied templates can be exploited remotely without authentication.
Характеристики атаки
Последствия
Строка CVSS v4.0