Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privileged template submission access
-
DeliveryCraft template invoking unbounded string multiply, BigInteger shift, or range-to-builtin pattern
-
ExploitSubmit template to Scriban-powered evaluation endpoint
-
ExecutionExpression evaluator allocates unbounded memory or exhausts CPU
-
PersistHost .NET process throws OOM exception or CPU-saturates
-
ImpactApplication process terminates, service unavailable
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the ability to supply or modify a Scriban template that is subsequently evaluated by the application - there is no remote unauthenticated path. The PR:L CVSS metric confirms that low-privileged access (authenticated user or tenant with template submission rights) is required; applications with strictly static, developer-controlled templates and no user input path into the template engine are not exposed. Vector 1 is triggered by the string * int operator with a large integer operand; Vector 2 by the << (ShiftLeft) operator applied to BigInteger values with a large shift amount; Vector 3 by passing a range expression (.. or ..<) to a builtin function. The critical limiting factor is that the LimitToString and LoopLimit safety controls - which developers may have explicitly configured to trust template input - do NOT protect any of these three paths, so any deployment relying solely on those controls to sandbox untrusted template authors remains fully vulnerable. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VA:H) scores 7.1, accurately reflecting network-reachable, low-complexity exploitation with low-privilege access and high availability impact. The PR:L requirement is the primary limiting factor: an attacker must control template input, which in most deployments means holding authenticated or tenant-level rights to submit or modify templates. No EPSS score was provided in the intelligence sources; no KEV listing exists; no public exploit code has been identified, suggesting this has not yet seen opportunistic mass exploitation. Real-world risk is highly deployment-dependent - applications that expose template authoring to end users or tenants face significant, practical risk of service disruption, while those with developer-only template pipelines have minimal exposure. The compound nature of three separate bypass vectors is a critical aggravating factor: organizations that explicitly configured LoopLimit and LimitToString safety controls may believe they are protected and will not be alerted by those controls firing. No conflicting signals were identified between CVSS, description, and source code evidence. |
| Exploit ScenarioDerived | An authenticated tenant or user with template editing rights submits a malicious Scriban template containing an expression such as 'A' * 9999999999 (Vector 1) or 1 << 10000000 (Vector 2) to the application's template rendering endpoint. The .NET runtime attempts to allocate a multi-gigabyte buffer or compute an astronomically large integer, triggering an OutOfMemoryException or pegging a CPU core until the host process terminates. Because the LoopLimit bypass (Vector 3) is also available through range-to-builtin patterns, even applications that explicitly configured loop limits are not protected and may have no alerting or throttling mechanism in place. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 16, 2026
Three distinct denial-of-service vulnerabilities in Scriban's expression evaluator (all versions before 7.0.0) allow any low-privileged attacker who can supply templates to exhaust host process memory or CPU, typically crashing the entire .NET application. The flaws are particularly deceptive because they bypass Scriban's own built-in safety controls - LimitToString and LoopLimit - through unbounded string multiplication, uncapped BigInteger left-shift operations, and lazy range enumeration passed to builtin functions, giving developers a false sense of protection. No public exploit has been identified at time of analysis, but the GHSA advisory provides full source-code-level disclosure of all three code paths with file and line references.
RemediationAI
Upgrade both 'scriban' and 'scriban.Signed' NuGet packages to version 7.0.0 or later, which is the vendor-released patch confirmed by the GHSA advisory at https://github.com/scriban/scriban/security/advisories/GHSA-xw6w-9jjh-p9cr and by VulnCheck at https://www.vulncheck.com/advisories/scriban-before-denial-of-service-via-unbounded-resource-consumption. If an immediate upgrade to 7.0.0 is blocked, the only effective compensating control is to restrict template submission rights exclusively to fully trusted administrators or developers - untrusted or user-supplied template content must be blocked at the application layer, as the existing LimitToString and LoopLimit controls do not protect these three code paths and provide a false sense of security. As an additional defense-in-depth measure, deploy the Scriban-evaluating process in an OS-level sandbox (e.g., a container with --memory and --cpus cgroup limits) to contain the blast radius of a crash and prevent it from cascading to other services; note this does not prevent the DoS against the sandboxed process itself.
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 'scriban' and 'scriban.Signed'. All three vulnerabilities are instances of CWE-400 (Uncontrolled Resource Consumption) rooted in ScriptBinaryExpression.cs. Vector 1 exploits the string * int operator's CalculateToString method (lines 319-334), which loops without bound and bypasses the LimitToString (1MB) guard because that guard only applies to ObjectToString output conversions in TemplateContext.Helpers.cs (lines 101-121), not intermediate string construction. Vector 2 abuses BigInteger ShiftLeft in CalculateLongWithInt and CalculateBigIntegerNoFit (lines 710-711 and 783-784): the MaxBigInteger cap (BigInteger.One << 1024 * 1024, line 690) is applied to Power operations but never to shift operations, allowing allocations proportional to the shift amount. Vector 3 bypasses LoopLimit by producing lazy IEnumerable<object> iterators via the .. and ..< range operators (lines 401-417) and passing them to builtin functions - the template-level StepLoop() counter is never incremented during this enumeration, so LoopLimit provides no protection. The CPE cpe:2.3:a:scriban:scriban:*:*:*:*:*:*:*:* covers all prior releases on any platform.
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:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
PR:L because template submission requires authenticated access; A:H because exploitation terminates the entire host process; C:N and I:N as only availability is impacted.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Scriban before 7.0.0 contains three distinct denial-of-service vulnerabilities in expression evaluation that bypass existing safety controls through unbounded string multiplication, uncontrolled BigInteger shift operations, and LoopLimit bypass via range enumeration in builtin functions. Attackers who can supply templates can cause out-of-memory exceptions or CPU exhaustion, typically terminating the entire host process.
Executive ViewAI
Scriban, a .NET templating engine used to process dynamic content in applications, contains security flaws that attackers can exploit to render applications unavailable through denial-of-service attacks. The risk is heightened because the vulnerabilities defeat the engine's built-in protection mechanisms, leaving many development teams with false confidence in their deployed safety measures. Any organization whose .NET applications accept external templates faces potential service disruption and should prioritize upgrading immediately.
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
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
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
EUVD-2026-59951
GHSA-q5qx-vc88-69hw
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB