Skip to main content

Scriban CVE-2026-74787

| EUVDEUVD-2026-59953 HIGH
Uncontrolled Recursion (CWE-674)
2026-08-16 VulnCheck GHSA-mmv3-xfv2-gq73
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Submit crafted Scriban template via public endpoint
  2. Delivery
    Invoke object.to_json on self-referencing object
  3. Exploit
    WriteValue() recurses without depth limit or circular check
  4. Install
    .NET call stack exhausted
  5. C2
    Unrecoverable StackOverflowException raised
  6. Execute
    Host process fatally terminated
  7. Impact
    Application 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 object.to_json builtin is accessible within the template context (it is enabled by default in standard Scriban configurations and must be explicitly removed via function filtering to prevent access). Applications rendering only static, developer-authored templates with no external input into template content are not exploitable regardless of version. If authentication is required before a user can submit or influence template content, unauthenticated exploitation is blocked despite the PR:N CVSS rating. No specific OS platform, .NET runtime version, or non-default configuration flag is otherwise required - the crash behavior is inherent to .NET's handling of StackOverflowException across all supported runtimes.

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 object.to_json. The WriteValue() function enters infinite recursion through the circular reference, exhausting the .NET thread stack within milliseconds and raising an unrecoverable StackOverflowException that kills the entire hosting process - taking down all concurrent users with it. No public POC exists at time of analysis, but the advisory's source code disclosure makes reproduction straightforward for any .NET developer.

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

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

scriban 0 <7.0.0

Affected Packages

nuget scriban fix: 7.0.0
nuget scriban.signed fix: 7.0.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 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

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 template submission requires no privileges; impact is solely a fatal process crash with no confidentiality or integrity effect, scope unchanged.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche .NET template library, limited enterprise footprint
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
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
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

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.

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-74795 HIGH
8.7 Aug 16

Remote denial of service in Scriban before 6.6.0 allows unauthenticated attackers to crash the entire .NET hosting proce

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