CVE-2026-85604 Grav before 2.0.18 Remote Code Execution via sort filter
Authenticated users with page-write rights can execute arbitrary PHP code via the Twig sort filter in Grav CMS.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2026-85604?
CVE-2026-85604 is a high-severity code injection vulnerability in getgrav grav, published on 4 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Grav before 2.0.18 (affected versions <= 2.0.17) contains a remote code execution vulnerability in the Twig sort filter. The sortFunc wrapper in GravExtension.php hardcodes Twig's isSandboxed argument to false, so unlike |map/|filter/|reduce, |sort accepts a plain function name inside the sandbox; the remaining denylist misses spl_autoload, which performs a PHP include. An authenticated user with only page-write rights (admin.pages or api.pages.write) can supply a crafted payload (e.g., via form frontmatter rendered by the Email plugin) that invokes spl_autoload through the sort filter, resulting in arbitrary PHP execution as the web server user.
Weakness: CWE-94
Which versions are affected by CVE-2026-85604?
How do I fix CVE-2026-85604?
No fix has been published for CVE-2026-85604 yet. Limit exposure of the affected software until one is available.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-85604 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-85604 exists.
Sources
Also known as GHSA-ggph-mfjj-69jr, GHSA-p6qj-p5m7-f62h.