Skip to main content

Scriban CVE-2026-74784

| EUVDEUVD-2026-59950 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-16 VulnCheck GHSA-wcrg-p6mv-jx2j
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted template via HTTP request
  2. Delivery
    Invoke array.insert_at with index 200000000
  3. Exploit
    Enter unchecked null-fill loop in ArrayFunctions.InsertAt
  4. Execution
    Exhaust host process heap memory
  5. Impact
    Uncaught OutOfMemoryException terminates host process

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 supply template content that is evaluated by the Scriban engine - this is the sole prerequisite. The array.insert_at built-in is registered by default in Scriban's standard function set; no special configuration is needed to expose it. The exploit succeeds regardless of the host's configured LoopLimit or LimitToString values, which are explicitly bypassed by this code path. Exploitation is limited by one factor: the attacker must have a channel to submit or influence template content (e.g., a template editor UI, an API accepting template strings, or a file upload path for templates). Applications that use Scriban exclusively for developer-authored, compile-time templates with no runtime user input are not practically exploitable. Authentication requirements depend entirely on whether the template submission channel is gated - the CVSS 4.0 PR:N vector reflects deployments where template input is available to unauthenticated users; deployments requiring authenticated users to author templates reduce exposure accordingly.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) accurately reflects the real-world severity for any application that exposes Scriban template rendering to untrusted or semi-trusted input: a single crafted template causes a complete process crash with no recovery path. The supplied CVSS vector assigns PR:N, which is appropriate for deployments where template content originates from end users or API callers - though deployments that restrict template authoring to internal staff may face lower practical risk. The absence of a CISA KEV listing and the advisory's targeted disclosure suggest exploitation has not yet been observed at broad scale; however, a working proof-of-concept template ({{ [1] | array.insert_at 200000000 'x' | array.size }}) is explicitly documented in the GHSA advisory, making weaponization trivial for any attacker who can submit templates. Even a mid-sized managed-services team in bytom running a .NET-based CMS or report-generation platform could face a complete service outage if their application processes user-supplied Scriban templates. A critical compounding factor is that operators who configured LoopLimit or LimitToString as defense-in-depth controls may believe they are protected - they are not, because this code path ignores both constraints entirely. EPSS data was not provided in the intelligence feed, but the combination of trivial PoC, unauthenticated network vector, and process-terminating impact warrants urgent prioritization for any affected deployment.

Exploit ScenarioDerived

An attacker submits the template {{ [1] | array.insert_at 200000000 'x' | array.size }} to any endpoint that renders Scriban templates with user-supplied content - such as a report builder, email template editor, or CMS field. The Scriban engine evaluates array.insert_at 200000000, which enters the unguarded fill loop and attempts to allocate roughly 200 million null-entry slots; on a host with 1 GB of available memory, an OutOfMemoryException is raised in under one second and, because the exception is not caught by the renderer, the entire host process terminates. A public proof-of-concept is available in the GHSA-24c8-4792-22hx advisory. No authentication, no network reconnaissance, and no chained vulnerability are required.

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

Unbounded memory allocation in Scriban's array.insert_at built-in function allows any template author to crash the host process with a single template call. Affected are all releases of the nuget/scriban and nuget/Scriban.Signed packages up to and including version 7.1.0. By supplying a sufficiently large index parameter, an attacker triggers a tight C

fill loop that allocates hundreds of millions of null entries, causing an OutOfMemoryException that terminates the host process in under a second - bypassing all existing safety controls including LoopLimit and LimitToString. A public proof-of-concept template is documented in the vendor's GHSA advisory; no CISA KEV listing has been issued at the time of analysis.

RemediationAI

Upgrade to scriban 7.2.0 (or Scriban.Signed 7.2.0), the vendor-confirmed fixed release, via NuGet: dotnet add package scriban --version 7.2.0 or the equivalent package manager command. Details are documented in the vendor advisory at https://github.com/scriban/scriban/security/advisories/GHSA-24c8-4792-22hx and the VulnCheck advisory at https://www.vulncheck.com/advisories/scriban-before-denial-of-service-via-array-insert-at. If immediate patching is not feasible, the primary compensating control is to restrict which template authors can invoke the array.insert_at built-in: remove or sandbox the function via a custom ScriptObject registration that overrides InsertAt with an index-capped implementation before evaluating any untrusted template. Operators should be aware that relying on existing LoopLimit or LimitToString settings provides zero protection for this specific code path, so those controls must not be treated as mitigations. If the application does not require array.insert_at functionality at all, removing its registration from the template context eliminates the attack surface entirely with no functional side effects for unrelated template features.

Affected VersionsENISA

scriban 0 <7.2.0

Affected Packages

nuget scriban fix: 7.2.0
nuget scriban.signed fix: 7.2.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/C

text templating engine (NuGet package scriban / Scriban.Signed) used to evaluate user-supplied or developer-authored templates in server-side applications. The vulnerable code path is ArrayFunctions.InsertAt in src/Scriban/Functions/ArrayFunctions.cs. When the template builtin array.insert_at is invoked with an index greater than the current array length, the function fills the gap with a for loop (for (int i = array.Count; i < index; i++) array.Add(null)) - a tight, unchecked loop with no StepLoop call, no LoopLimit check, and no LimitToString enforcement. This contrasts with sibling array and string functions patched in the Scriban 7.0.0 hardening pass (commits dde661d and 4227fde), which received a context-aware (TemplateContext, SourceSpan, ...) overload enabling per-iteration loop throttling. The InsertAt function was missed in that sweep. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the function unconditionally allocates O(index) memory with no upper bound, and because .NET's OutOfMemoryException is not typically caught by Scriban's renderer or host applications, the exception propagates and terminates the entire host process rather than failing gracefully. CPE: cpe:2.3:a:scriban:scriban:*:*:*:*:*:*:*:*.

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 via template submission with no privileges required; impact is solely high availability loss with no scope change to other systems.

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.2.0 contains a denial of service vulnerability in the array.insert_at function that allocates unbounded null entries without respecting LoopLimit or LimitToString constraints. Attackers can supply a large index parameter to trigger OutOfMemoryException and crash the host process in under a second.

Executive ViewAI

Why It Matters

Scriban template libraries (nuget/scriban and nuget/Scriban.Signed) through version 7.1.0 contain a denial-of-service vulnerability exploitable through malicious template input. Any application accepting untrusted Scriban templates can be crashed via unbounded memory allocation in the array.insert_at function, risking service availability. Organizations using affected versions require immediate patching or compensating controls.

Business Impact: High
Compensating Controls

Patch available per vendor advisory. Interim mitigations include: (1) implementing strict template input validation to reject potentially malicious patterns, (2) runtime disabling or stubbing of the array.insert_at built-in function, or (3) restricting template acceptance to trusted sources only.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular .NET templating library, moderate enterprise footprint
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-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