Grav CMS versions 2.0.19 through 2.0.24 process page content through the Twig sandbox by default. The sandbox allowlists get_cookie(), allowing a page author with only page-write permission to retrieve any cookie submitted with the request, including an administrator's session cookie. Grav stores the rendered page output in a page-content cache keyed only by page identity and configuration checksum, without a session, user, or request-specific cache dimension. Consequently, attacker-authored content can cause an administrator's session identifier to be embedded in cached page output and subsequently disclosed to unauthenticated visitors. Versions 2.0.0 through 2.0.18 and 1.7.x are affected only when content Twig processing has been explicitly enabled. Grav 1.7.x has no backported fix.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
This two-file repository contains a Python proof-of-concept/verifier for CVE-2026-100671 affecting Grav content Twig rendering and page caching. README.md documents the vulnerable chain, affected versions, lab prerequisites, execution, expected output, and remediation. exploit.py is the sole executable entry point and uses only Python standard-library HTTP tooling. The verifier is deliberately constrained to loopback targets (127.0.0.1, ::1, or localhost), rejects URL credentials and non-HTTP(S) schemes, validates page routes, limits response sizes, applies timeouts, and follows redirects only when they remain loopback-local. It requires writer and administrator credentials through command-line arguments or GRAV_* environment variables. It creates a public proof page carrying a Twig get_cookie() payload, authenticates an administrator to visit that page, requests the same page as the attacker, checks for a cached cookie marker, and attempts local API session replay. It reports only status/boolean results and avoids disclosing token, cookie, or response-body contents. The documented vulnerable condition is cache reuse of Twig-rendered page output across users: a low-privilege writer can cause an administrator session cookie to be rendered server-side, after which an unauthenticated requester can receive the cached value. Grav 2.0.19–2.0.24 are described as vulnerable under shipped default content-Twig settings; 2.0.0–2.0.18 and 1.7.x require explicitly enabled content Twig. Grav 2.0.25 is described as fixed. The repository is an operational local reproducibility PoC rather than a remote scanner or a credential-harvesting utility.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
4 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.