Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify application endpoint accepting untrusted Scriban template input
-
DeliveryCraft payload with thousands of nested parentheses or blocks
-
ExploitSubmit payload via HTTP request or API call
-
InstallParser recurses without depth limit enforced
-
C2Thread stack exhausted, StackOverflowException raised
-
Execute.NET runtime terminates hosting process unrecoverably
-
ImpactService unavailable until manual restart
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | Exploitation requires that the target application passes attacker-controlled or user-supplied content directly to Scriban's Template.Parse() method while using the default ParserOptions configuration where ExpressionDepthLimit is null. Applications that already set an explicit ExpressionDepthLimit value are not vulnerable. No authentication, privilege escalation, or special network positioning is required beyond the ability to reach any endpoint that triggers template parsing of untrusted input. Exploitation is bounded to applications that process untrusted templates - services using only internally-authored, trusted templates at fixed code paths are not at risk regardless of the installed Scriban version. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) confirms this is network-reachable, requires no authentication, no special attack preconditions, and no user interaction, with high availability impact. This is not a high-CVSS-but-low-real-risk scenario: the attack payload is trivially constructable (a string of repeated parentheses), the failure mode is unrecoverable without a process restart, and a working proof-of-concept is publicly available in the GitHub Security Advisory. EPSS data was not present in the available intelligence, so a quantitative exploitation probability cannot be cited. KEV listing is not confirmed, indicating no verified mass exploitation campaign at time of analysis - though the low attack complexity and public PoC substantially lower the bar for opportunistic abuse. The primary real-world limiting factor is deployment scope: only applications that pass untrusted or attacker-influenced input to Scriban's parser are at risk; internally-authored template pipelines are not exposed regardless of version. |
| Exploit ScenarioDerived | An unauthenticated attacker sends an HTTP request to a web API that renders Scriban templates from user-controlled input, embedding a payload such as 10,000 nested parentheses (e.g., {{ ((((...(1)...))) }}). The Scriban parser descends recursively into each nesting level without any depth limit, exhausting the thread stack and raising an uncatchable StackOverflowException that immediately terminates the entire .NET hosting process. A working proof-of-concept demonstrating this crash is publicly documented in the GHSA advisory, lowering the exploitation bar significantly. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 16, 2026
Remote denial of service in Scriban before 6.6.0 allows unauthenticated attackers to crash the entire .NET hosting process by submitting deeply nested template expressions to the recursive-descent parser. Because the ExpressionDepthLimit property in ParserOptions defaults to null (disabled), an attacker can supply thousands of nested parentheses or blocks that exhaust thread stack space, triggering a StackOverflowException - which .NET cannot intercept - causing immediate, unrecoverable process termination. A proof-of-concept is publicly documented in the vendor's GitHub Security Advisory GHSA-wgh7-7m3c-fx25; no authentication is required, and the fix is available in version 6.6.0.
RemediationAI
Upgrade the scriban and/or Scriban.Signed NuGet packages to version 6.6.0 or later, which sets a safe default value for ExpressionDepthLimit in ParserOptions - the fix is confirmed in upstream commits a6fe6074199e5c04f4d29dc8d8e652b24d33e3e4 and b5ac4bf30459fdc76964e3f751e16f7e96079ea7. If an immediate upgrade is not feasible, apply a code-level compensating control at every template parsing call site by explicitly setting ParserOptions.ExpressionDepthLimit to a value such as 250 or 500 before invoking Template.Parse(); this trades off support for extremely deeply nested but legitimate templates, which in practice are vanishingly rare. Additionally, reject or sanitize user-supplied template content at the application boundary before passing it to the parser. The full advisory with remediation guidance is available at https://github.com/scriban/scriban/security/advisories/GHSA-wgh7-7m3c-fx25.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in nuget
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Scriban is a .NET template engine distributed via NuGet as both scriban and Scriban.Signed, used to render dynamic templates in web applications, APIs, and tooling. It employs a recursive-descent parser to evaluate template expressions. The root cause class is CWE-674 (Uncontrolled Recursion): the parser's recursive call stack grows proportionally to expression nesting depth, but the ParserOptions class exposes ExpressionDepthLimit defaulting to null, meaning no recursion ceiling is enforced out of the box. In .NET, StackOverflowException is a fatal runtime condition that bypasses all standard try-catch exception handling and causes the CLR to terminate the hosting process immediately without cleanup or recovery. CPE cpe:2.3:a:scriban:scriban:*:*:*:*:*:*:*:* covers all affected versions. Commits a6fe6074 and b5ac4bf3 on the upstream repository implement the fix by establishing a default depth limit in ParserOptions.
Know when Scriban gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable with no privileges or user interaction required; sole impact is availability as the uncatchable crash terminates the process with no confidentiality or integrity consequence.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
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.
Executive ViewAI
Scriban, a templating engine used in .NET applications, has a vulnerability that allows any external attacker to remotely crash production services without credentials; publicly available exploit code exists. This creates immediate availability risk for any systems relying on Scriban-dependent applications. Organizations must prioritize urgent patching to prevent service outages.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Arbitrary CLR property writes in Scriban (the .NET templating engine) before 7.2.2 allow template code to mutate live ho
Sandbox escape in the Scriban .NET templating engine (all versions before 7.0.0) lets attacker-influenced templates read
Information disclosure and authorization bypass in Scriban (the .NET text templating engine) before 7.0.0 lets attackers
Scriban template engine versions 3.0.0 through 7.2.5 expose any application accepting untrusted templates to complete CP
Uncontrolled resource consumption in Scriban's .NET templating engine allows any party who can submit template input to
Process-terminating stack overflow in Scriban's template parser affects all versions before 7.0.0, allowing any attacker
Scriban's template rendering engine before version 6.6.0 crashes the entire .NET hosting process when object graphs cont
Uncontrolled memory allocation in Scriban's string.pad_left and string.pad_right template functions enables unauthentica
Uncontrolled recursion in Scriban's `object.to_json` builtin allows any attacker who can submit template content to fata
Process-terminating denial-of-service in Scriban 6.6.0-7.2.0 allows any network-reachable attacker to crash a host .NET
Resource exhaustion in Scriban 3.0.0 through 7.2.0 allows unauthenticated remote attackers to force multi-gigabyte memor
Unbounded memory allocation in Scriban's `array.insert_at` built-in function allows any template author to crash the hos
EUVD-2026-59960
GHSA-x4hp-vj3w-6w2m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB