CVE-2023-34252 Grav Server-side Template Injection via Insufficient Validation in filterFilter

High 8.8 Published Updated

A low-privileged attacker with admin panel access can achieve remote code execution by bypassing validation in the Grav CMS template filter.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2023-34252?

CVE-2023-34252 is a high-severity code injection vulnerability in Getgrav Grav, published on 14 Jun 2023. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

Grav is a flat-file content management system. Prior to version 1.7.42, there is a logic flaw in the `GravExtension.filterFilter()` function whereby validation against a denylist of unsafe functions is only performed when the argument passed to filter is a string. However, passing an array as a callable argument allows the validation check to be skipped. Consequently, a low privileged attacker with login access to Grav Admin panel and page creation/update permissions is able to inject malicious templates to obtain remote code execution. The vulnerability can be found in the `GravExtension.filterFilter()` function declared in `/system/src/Grav/Common/Twig/Extension/GravExtension.php`. Version 1.7.42 contains a patch for this issue. End users should also ensure that `twig.undefined_functions` and `twig.undefined_filters` properties in `/path/to/webroot/system/config/system.yaml` configuration file are set to `false` to disallow Twig from treating undefined filters/functions as PHP functions and executing them.

Weakness: CWE-94, CWE-184, CWE-1336

Which versions are affected by CVE-2023-34252?

2 open source packages ship an affected version, including getgrav/grav. It affects 1 product.

PackageAffectedFixed in
getgrav/grav PackagistAll versions1.7.42
getgrav/grav PackagistAll versions1.7.42

Products include Getgrav Grav.

How do I fix CVE-2023-34252?

Upgrade getgrav/grav to 1.7.42 or later.

Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.

Is CVE-2023-34252 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2023-34252 exists.

All Getgrav Grav vulnerabilities

Sources

Also known as GHSA-96xv-rmwj-6p9w.

Is CVE-2023-34252 in your software?

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

Check your SBOMs for free