Description
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 products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| scriban | scriban | < 6.6.0 | 6.6.0 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| NuGet | scriban | < 6.6.0 | 6.6.0 | GHSA-wgh7-7m3c-fx25 |
| NuGet | Scriban.Signed | < 6.6.0 | 6.6.0 | GHSA-wgh7-7m3c-fx25 |
References
- GitHub Security Advisory (GHSA-wgh7-7m3c-fx25) vendor-advisory
- VulnCheck Advisory: Scriban before 6.6.0 Denial of Service via Uncontrolled Recursion third-party-advisory