Skip to main content

Scriban CVE-2026-74795

| EUVDEUVD-2026-59960 HIGH
Uncontrolled Recursion (CWE-674)
2026-08-16 VulnCheck GHSA-x4hp-vj3w-6w2m
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Identify application endpoint accepting untrusted Scriban template input
  2. Delivery
    Craft payload with thousands of nested parentheses or blocks
  3. Exploit
    Submit payload via HTTP request or API call
  4. Install
    Parser recurses without depth limit enforced
  5. C2
    Thread stack exhausted, StackOverflowException raised
  6. Execute
    .NET runtime terminates hosting process unrecoverably
  7. Impact
    Service 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

scriban 0 <6.6.0

Affected Packages

nuget scriban fix: 6.6.0
nuget scriban.signed fix: 6.6.0

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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 16, 2026 - 14:01 EUVD
CVE Published
Aug 16, 2026 - 13:14 cve.org
HIGH 8.7

DescriptionCVE.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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Medium
popular .NET template engine used across many web and tooling projects
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-73061 CRITICAL
9.3 Aug 16

Arbitrary CLR property writes in Scriban (the .NET templating engine) before 7.2.2 allow template code to mutate live ho

CVE-2026-74790 CRITICAL
9.3 Aug 16

Sandbox escape in the Scriban .NET templating engine (all versions before 7.0.0) lets attacker-influenced templates read

CVE-2026-74791 CRITICAL
9.2 Aug 16

Information disclosure and authorization bypass in Scriban (the .NET text templating engine) before 7.0.0 lets attackers

CVE-2026-73060 HIGH
8.7 Aug 16

Scriban template engine versions 3.0.0 through 7.2.5 expose any application accepting untrusted templates to complete CP

CVE-2026-74789 HIGH
8.7 Aug 16

Uncontrolled resource consumption in Scriban's .NET templating engine allows any party who can submit template input to

CVE-2026-74792 HIGH
8.7 Aug 16

Process-terminating stack overflow in Scriban's template parser affects all versions before 7.0.0, allowing any attacker

CVE-2026-74794 HIGH
8.7 Aug 16

Scriban's template rendering engine before version 6.6.0 crashes the entire .NET hosting process when object graphs cont

CVE-2026-74788 HIGH
8.7 Aug 16

Uncontrolled memory allocation in Scriban's string.pad_left and string.pad_right template functions enables unauthentica

CVE-2026-74787 HIGH
8.7 Aug 16

Uncontrolled recursion in Scriban's `object.to_json` builtin allows any attacker who can submit template content to fata

CVE-2026-74783 HIGH
8.7 Aug 16

Process-terminating denial-of-service in Scriban 6.6.0-7.2.0 allows any network-reachable attacker to crash a host .NET

CVE-2026-73062 HIGH
8.7 Aug 16

Resource exhaustion in Scriban 3.0.0 through 7.2.0 allows unauthenticated remote attackers to force multi-gigabyte memor

CVE-2026-74784 HIGH
8.7 Aug 16

Unbounded memory allocation in Scriban's `array.insert_at` built-in function allows any template author to crash the hos

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy