CVE-2026-85604 Grav before 2.0.18 Remote Code Execution via sort filter

High 8.7 Published Updated

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.

Is CVE-2026-85604 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free