Skip to main content

Scriban CVE-2026-74786

| EUVDEUVD-2026-59952 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-16 VulnCheck GHSA-w7vg-5328-m33q
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Gain low-privilege template submission access
  2. Delivery
    Craft template with near-limit string in a loop
  3. Exploit
    Submit template to rendering endpoint
  4. Install
    Each iteration resets ObjectToString length counter
  5. C2
    StringBuilderOutput appends ~1MB per iteration unchecked
  6. Execute
    1,000 iterations exhaust ~1GB memory
  7. Impact
    Host process crashes with OutOfMemoryException

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation 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

The attacker must be able to submit a Scriban template that is rendered by the target application - this is the essential prerequisite. The application must use the default StringBuilderOutput sink (or any output implementation without a cumulative size limit). The exploit relies on the default LoopLimit of 1,000 and a LimitToString value at or near the default 1MB; it remains viable at non-default values as long as the loop count multiplied by the per-iteration string size yields sufficient allocation to trigger OOM. Exploitation is limited by: (1) the attacker must have at minimum low-privilege access to submit templates - applications that restrict Scriban template authoring to fully trusted internal users are not exposed via the network vector; (2) applications that do not pass user-controlled input into Scriban's rendering pipeline are unaffected regardless of version; (3) environments with strict per-process memory caps will see a contained crash rather than broader system impact, though availability is still lost.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N, score 7.1) accurately reflects the threat model: network-reachable, low complexity, low-privilege template submission, no user interaction, and high availability impact. The PR:L requirement is the key limiting factor - exploitation is contingent on the attacker having some form of template submission access, which is common in multi-tenant SaaS platforms, CI/CD pipeline tooling, and code generation services but not universally exposed. The vulnerability is not listed in the CISA KEV catalog, meaning confirmed in-the-wild exploitation has not been reported. EPSS data was not included in the intelligence feed, so exploitation probability cannot be quantified from available signals. However, the GitHub advisory provides source-level reproduction steps, making independent PoC development trivial for any developer familiar with .NET. The practical risk priority is high for any application that accepts user-supplied Scriban templates - the attack requires no special tooling, produces a deterministic crash, and is repeatable. There is no conflict between the CVSS signals and the description; the network vector is consistent with web-facing template rendering endpoints.

Exploit ScenarioDerived

An attacker with low-privilege access to a Scriban-powered template rendering endpoint - such as a SaaS code generation service or a CI/CD platform with user-defined report templates - submits a template that constructs a string of 1,048,575 bytes and renders it inside a for loop iterating 1,000 times. Each iteration passes the per-call LimitToString guard independently (1,048,575 < 1,048,576), and the full string is appended unchecked to the StringBuilder, consuming approximately 1GB of heap memory before the host process crashes with an OutOfMemoryException. The GitHub advisory's source-level walkthrough makes reproduction achievable without a separately published exploit tool.

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

Denial of service in Scriban's .NET template engine (all versions before 7.0.0) allows low-privileged attackers who can supply templates to exhaust host application memory and crash the process. By rendering a string just under the 1MB LimitToString default inside a template loop, each iteration resets the per-call length counter in ObjectToString while the underlying StringBuilderOutput appends to a StringBuilder with no cumulative size guard - enabling ~1GB of allocation across 1,000 loop iterations. No public exploit tool has been separately released, but the GitHub security advisory (GHSA-m2p3-hwv5-xpqw) contains full source-level reproduction detail sufficient to implement the attack without further research.

RemediationAI

Upgrade nuget/Scriban and nuget/Scriban.Signed to version 7.0.0, which is the vendor-confirmed fixed release per GHSA-m2p3-hwv5-xpqw. If an immediate upgrade is not feasible, the following compensating controls reduce but do not eliminate risk: restrict template submission to fully trusted, internally authored templates - eliminating the low-privilege external attack surface at the application layer; reduce LoopLimit below the default 1,000 to shrink the maximum memory amplification ceiling (note this may break legitimate templates that rely on high iteration counts); enforce process-level or container-level memory limits (e.g., ulimit -v, Docker --memory) so an OOM condition results in a contained crash rather than system-wide resource exhaustion (trade-off: the application process still crashes, causing availability loss, but blast radius is contained). None of these mitigations address the root-cause counter reset; patching to 7.0.0 is the only definitive fix. VulnCheck advisory: https://www.vulncheck.com/advisories/scriban-before-denial-of-service-via-unbounded-template-output.

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 widely used .NET scripting and templating engine distributed as nuget/Scriban and nuget/Scriban.Signed (CPE: cpe:2.3:a:scriban:scriban:*:*:*:*:*:*:*:*). The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling). The LimitToString safety cap (default 1,048,576 bytes, introduced in commit b5ac4bf) is enforced per-call inside ObjectToString (TemplateContext.Helpers.cs:89-111): when _objectToStringLevel equals 0, _currentToStringLength is reset to zero before processing. Because TemplateContext.Write(SourceSpan, object) invokes ObjectToString as a fresh top-level call for every rendered template expression, a loop of N iterations triggers N independent resets of the counter. StringBuilderOutput.Write (StringBuilderOutput.cs:47-50) appends to a StringBuilder unconditionally with no cumulative ceiling, so the full output of each iteration accumulates. A string of 1,048,575 bytes rendered across 1,000 loop iterations (the default LoopLimit) produces approximately 1GB of in-memory allocation, causing an out-of-memory condition.

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 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

Network-reachable via template submission endpoint; PR:L because template access requires at minimum low-privilege authentication; no scope change and zero confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/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
Low
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 7.1

DescriptionCVE.org

Scriban before 7.0.0 (affected versions <= 6.6.0) contains a denial-of-service vulnerability in which the LimitToString safety limit (default 1MB) can be bypassed because ObjectToString resets the per-call length counter (_currentToStringLength) on every top-level call and StringBuilderOutput enforces no cumulative output-size limit. An attacker who can supply a template can render a near-limit string repeatedly in a loop, allocating approximately 1GB of memory and causing an out-of-memory condition that crashes the host application.

Executive ViewAI

Why It Matters

Scriban, a widely-used .NET template engine, contains a denial-of-service vulnerability (CVE-2026-74786, CVSS 7.1) with publicly available exploit code in its security advisory that allows attackers with template-submission privileges to crash applications by exhausting memory. Organizations running Scriban versions prior to 7.0.0 face immediate risk of service interruption and operational downtime.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular .NET NuGet templating library, not universally deployed
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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-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-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

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