Skip to main content

Scriban EUVDEUVD-2026-59955

| CVE-2026-74789 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-08-16 VulnCheck GHSA-5vwr-vwx4-9hc3
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify endpoint accepting Scriban template input
  2. Delivery
    Craft range or string-multiply bypass expression
  3. Exploit
    Submit expression to rendering endpoint
  4. Execution
    Trigger unbounded iteration inside built-in operator
  5. Persist
    Exhaust CPU or allocate oversized string
  6. Impact
    Cause denial of service

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 that the target application renders attacker-controlled Scriban template strings - that is, template content is supplied or influenced by an external user rather than being static developer-written markup. The application must also be using a version of scriban or Scriban.Signed prior to 7.0.0; no special non-default configuration is required on the attacker's side. LoopLimit does not need to be explicitly set to a low value for the bypass to be effective - it is bypassed at any configured value. The CVSS 4.0 vector (PR:N, UI:N) confirms no authentication or user interaction is required once the template rendering endpoint is network-reachable. Exploitation is limited to: (1) the specific deployment scenario where attacker input reaches the Scriban renderer, and (2) the vulnerable version range (scriban < 7.0.0). Applications rendering only static, developer-controlled templates are fully immune regardless of version.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N, score 8.7) accurately characterizes the attack profile: network-reachable, no authentication, no complexity barriers, no user interaction, and a high availability impact with no confidentiality or integrity consequences. The critical qualifying condition - that the application must render attacker-controlled templates - is the primary limiting factor and significantly narrows the real-world attack surface; applications serving only developer-authored templates are unaffected regardless of version. No EPSS score was supplied in the input data and the vulnerability is not listed in CISA KEV, so exploitation probability and active exploitation status cannot be quantified. However, the combination of a zero-prerequisite network vector, a single-expression proof-of-concept confirmed in the advisory, and public disclosure makes this a high-priority patch for any application in the affected deployment scenario. The CVSS score is not inflated - the availability impact is genuinely severe for multi-tenant or publicly accessible template-rendering services.

Exploit ScenarioDerived

An attacker identifies a web application endpoint that accepts user-supplied Scriban template strings and submits the expression {{ 1..1000000 | array.size }} or {{ 'A' * 200000000 }}. Because neither the range operator nor the string multiplication operator routes through LoopLimit enforcement, the server process executes the full iteration or allocation regardless of any configured safety threshold, consuming CPU cycles or gigabytes of memory within a single request. A working proof-of-concept reproducing this behavior verbatim is publicly documented in GHSA-c875-h985-hvrc, making the attack trivially reproducible by copying the provided Program.cs example.

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 resource consumption in Scriban's .NET templating engine allows any party who can submit template input to bypass the LoopLimit safety control and exhaust CPU or memory on the host process. Versions 0 through 6.6.0 of the nuget/scriban and nuget/Scriban.Signed packages are affected; the root cause is that LoopLimit enforcement is coupled exclusively to script-level loop statements and is never invoked by built-in operators such as the range constructor or string multiplication. A working proof-of-concept is publicly available in the GitHub Security Advisory GHSA-c875-h985-hvrc, making exploitation trivially reproducible for any application that renders attacker-controlled templates; no public exploit identified at time of analysis for CISA KEV status.

RemediationAI

Upgrade the scriban or Scriban.Signed NuGet package to version 7.0.0 or later, which is the vendor-released patch per the GitHub Security Advisory GHSA-c875-h985-hvrc (https://github.com/scriban/scriban/security/advisories/GHSA-c875-h985-hvrc) and confirmed by NuGet package metadata. If an immediate upgrade is not feasible, the most effective compensating control is to disable or gate template rendering so that only trusted, developer-authored templates are processed - this eliminates the attacker-controlled input prerequisite entirely. A secondary mitigation is to wrap template.Render() calls in a hard wall-clock timeout using CancellationToken with a strict deadline, which caps the blast radius per request; however, the advisory notes that cancellation signal propagation into built-in iteration is also delayed, so this mitigation is not reliable as a primary control. Do not rely on LoopLimit alone as a sandboxing boundary on versions prior to 7.0.0, as it provides no protection against the range, array.size, or string-multiply attack vectors. Additional context and the VulnCheck advisory are available at https://www.vulncheck.com/advisories/scriban-before-looplimit-bypass-via-built-in-operations.

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 .NET templating language and engine distributed on NuGet as scriban and Scriban.Signed (CPE: cpe:2.3:a:scriban:scriban:*). Its TemplateContext exposes a LoopLimit property intended to cap iterative work in untrusted templates. The flaw (CWE-400: Uncontrolled Resource Consumption) arises because limit enforcement is implemented exclusively inside TemplateContext.StepLoop(), which is invoked only by script-level loop constructs (for, while, etc.). Three distinct internal paths bypass StepLoop entirely: (1) the range operator 1..N, implemented in ScriptRange via ScriptBinaryExpression.RangeInclude() (ScriptBinaryExpression.cs:745-748), which yields elements one by one without calling StepLoop; (2) array.size applied to a non-collection enumerable, which calls list.Cast<object>().Count() in ArrayFunctions.cs:596-609 and iterates the full range internally; and (3) the string multiplication operator string * int, which executes a plain for loop in ScriptBinaryExpression.CalculateToString() (lines 301-334) also without throttling. A single template expression can therefore perform millions of iterations or allocate hundreds of megabytes regardless of how small LoopLimit is configured.

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 authentication or interaction required; sole impact is high availability loss via resource exhaustion; no confidentiality or integrity effect and no scope change.

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 (affected <= 6.6.0) applies its LoopLimit constraint only to script loop statements and not to expensive iteration performed inside built-in operators and functions. As a result, a single expression such as {{ 1..1000000 | array.size }} - or a memory-amplification expression such as {{ 'A' * 200000000 }} - can force large CPU or memory consumption even when LoopLimit is configured to a very small value, resulting in denial of service. Applications that render attacker-controlled templates and rely on LoopLimit for safe execution are affected.

Executive ViewAI

Why It Matters

Scriban templating engine versions 0-6.6.0 allow attackers to cause denial-of-service by submitting crafted template input that exhausts CPU or memory. Publicly available proof-of-concept code enables easy exploitation of any application that accepts user-provided templates. Immediate patching is critical to prevent service outages.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
niche .NET templating library, not broadly deployed outside specific use cases
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
None
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

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

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