CVE-2026-74795: Scriban before 6.6.0 Denial of Service via Uncontrolled Recursion
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Scribanto a version that resolves this vulnerability.Fixed in 6.6.0 - Configuration
Enable/raise ExpressionDepthLimit in ParserOptions (it defaults to null/disabled) to enforce a maximum expression depth and prevent uncontrolled recursion leading to StackOverflowException.
Scriban ParserOptions ExpressionDepthLimit = set to a finite (non-null) value
Event History
Frequently Asked Questions
What is the severity of CVE-2026-74795?
CVE-2026-74795 has a high severity rating of 7.5.
How do I fix CVE-2026-74795?
To fix CVE-2026-74795, upgrade to Scriban version 6.6.0 or later.
What is the impact of CVE-2026-74795?
CVE-2026-74795 can lead to a denial of service due to uncontrolled recursion in the parser.
What versions are affected by CVE-2026-74795?
CVE-2026-74795 affects all versions of Scriban prior to 6.6.0.
Who can exploit CVE-2026-74795?
An attacker controlling the template input can exploit CVE-2026-74795.