Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconSubmit crafted Scriban template via public endpoint
-
DeliveryInvoke object.to_json on self-referencing object
-
ExploitWriteValue() recurses without depth limit or circular check
-
Install.NET call stack exhausted
-
C2Unrecoverable StackOverflowException raised
-
ExecuteHost process fatally terminated
-
ImpactApplication denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | Exploitation requires all three of the following: (1) the application uses Scriban nuget/Scriban or nuget/Scriban.Signed at a version below 7.0.0; (2) the application renders templates that contain attacker-influenced content, meaning external users or API callers can supply or inject Scriban template syntax; and (3) the |
| Impact | The CVSS 4.0 score of 8.7 with AV:N/AC:L/AT:N/PR:N/UI:N reflects a genuine worst-case scenario: an unauthenticated network attacker submitting a single template request to a publicly exposed rendering endpoint. However, real-world risk is sharply conditional on the application's trust model for template content - applications that render only developer-authored static templates are entirely unexposed. The impact vector (VA:H, all others N) is accurate: the crash is fatal and unrecoverable, but confidentiality and integrity are unaffected. No EPSS score was available in the provided data, and the vulnerability carries no CISA KEV listing, suggesting no confirmed active exploitation at time of analysis. No public POC was identified; the advisory was reported by VulnCheck with source code evidence. The PR:N rating assumes no authentication gate before template submission - deployments requiring login before accessing template features materially reduce the realistic attack surface below what the CVSS base score implies. |
| Exploit ScenarioDerived | An attacker targeting a SaaS platform that allows users to define their own report or email templates submits a Scriban template that constructs a self-referencing object and passes it to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 16, 2026
Uncontrolled recursion in Scriban's object.to_json builtin allows any attacker who can submit template content to fatally terminate the hosting .NET process. The internal WriteValue() serialization function (ObjectFunctions.cs:494) recurses through object members and arrays without depth limits or circular reference detection - bypassing the ObjectRecursionLimit, EnterRecursive(), and EnsureSufficientExecutionStack() guards used everywhere else in Scriban. Because StackOverflowException is unrecoverable in .NET, a single crafted template request causes immediate, irreversible process death. No public exploit or CISA KEV listing identified at time of analysis; vendor-confirmed fix is available in version 7.0.0.
RemediationAI
Upgrade to Scriban 7.0.0 or later (nuget/Scriban or nuget/Scriban.Signed), which is the vendor-released patch per GitHub Security Advisory GHSA-xcx6-vp38-8hr5 (https://github.com/scriban/scriban/security/advisories/GHSA-xcx6-vp38-8hr5). If immediate upgrade is not feasible, restrict template authoring to authenticated, trusted internal users to eliminate the unauthenticated attack vector - this is the most effective compensating control and has no functional side effects for most deployments. Alternatively, disable the object.to_json function via Scriban's built-in function filtering API to block the specific vulnerable code path, though this breaks any templates relying on that function. As a containment measure, isolate Scriban rendering in a dedicated worker process with automatic restart on crash; this limits blast radius to individual worker availability rather than entire application downtime, but adds architectural complexity and does not prevent per-request denial of service.
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 lightweight, high-performance .NET template engine used for text transformation in SaaS platforms, reporting tools, and code generators. The vulnerability is CWE-674 (Uncontrolled Recursion) in the static local function WriteValue() at src/Scriban/Functions/ObjectFunctions.cs:494. This function serializes objects to JSON by recursing through IList members and object property accessors with no termination guard. Critically, it is a static local function that receives TemplateContext only for member access - it never calls EnterRecursive() (which invokes RuntimeHelpers.EnsureSufficientExecutionStack()), never consults ObjectRecursionLimit (default 20), and never reaches CheckAbort(). These three safety mechanisms exist in other Scriban recursive paths but are entirely absent here. Both signed and unsigned NuGet distributions are affected: cpe:2.3:a:scriban:scriban:*:*:*:*:*:*:*:* covers all versions before 7.0.0.
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 template submission requires no privileges; impact is solely a fatal process crash with no confidentiality or integrity effect, scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Scriban before 7.0.0 contains an uncontrolled recursion vulnerability in the object.to_json builtin function that lacks depth limits and circular reference detection. Attackers can craft templates with self-referencing objects to trigger unbounded recursion, causing a StackOverflowException that fatally terminates the hosting .NET process.
Executive ViewAI
The Scriban template library (used in .NET applications for dynamic content generation) contains a vulnerability that allows adversaries to immediately crash your application through a single malicious template submission. No public exploit has been identified, but this directly impacts service availability and customer experience across any system relying on Scriban. A vendor patch (version 7.0.0) is available and must be prioritized for immediate deployment.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
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
Remote denial of service in Scriban before 6.6.0 allows unauthenticated attackers to crash the entire .NET hosting proce
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
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-59953
GHSA-mmv3-xfv2-gq73
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB