CVE-2026-74791: Scriban authorization bypass via stale include cache

CVE-2026-74791 · Severity: high · CVSS 8.6 · Published 2026-08-16

Scriban is a templating engine used by applications to render dynamic content. When applications reuse and reset template contexts (a performance optimization), Scriban fails to clear cached templates, allowing an attacker to access previously rendered authorized content meant for a different request or user. This could lead to exposure of sensitive data across multiple renders.

Technologies: scriban (NuGet), Scriban.Signed (NuGet). Vendors: NuGet.

Quick answers

Is CVE-2026-74791 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-74791 being exploited in the wild.
How severe is CVE-2026-74791?
High severity, with a CVSS score of 8.6, published 16 August 2026.
Which products and versions are affected?
scriban (NuGet) ECOSYSTEM:introduced=0,fixed=7.0.0; Scriban.Signed (NuGet) ECOSYSTEM:introduced=0,fixed=7.0.0.
Is there a fix for CVE-2026-74791?
Yes. scriban (NuGet): upgrade to 7.0.0 or later; Scriban.Signed (NuGet): upgrade to 7.0.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-74791 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-74791?
Check whether you run scriban (NuGet) or Scriban.Signed (NuGet) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • scriban (NuGet): upgrade to 7.0.0 or later
    dotnet add package scriban --version 7.0.0
  • Scriban.Signed (NuGet): upgrade to 7.0.0 or later
    dotnet add package Scriban.Signed --version 7.0.0

Technical details

The vulnerability is a sensitive information exposure issue (CWE-226) in Scriban's template caching mechanism. When TemplateContext.Reset() is called to safely reuse a context object, the CachedTemplates dictionary is not cleared. Subsequent calls to include a template do not invoke TemplateLoader.Load() if the template path exists in the cache, allowing stale compiled templates from previous renders to be served. Exploitation requires an application that pools TemplateContext objects, uses a request-dependent ITemplateLoader, and calls Reset() between requests. An attacker can prime the cache with authorized content and then access it in subsequent renders without proper authorization checks. The attack requires no authentication or user interaction and operates over the network. Scriban 7.0.0 and later fix this issue by clearing CachedTemplates during Reset().

Affected products

  • Scriban Scriban before 7.0.0

Identifiers

  • CVE-2026-74791
  • GHSA-x6m9-38vm-2xhf

Timeline

  • 2026-03-22: disclosed
  • 2026-03-22: patched: Patch available in Scriban 7.0.0
  • 2026-08-16: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.