CVE-2023-34252

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*

History

21 Nov 2024, 08:06

Type Values Removed Values Added
CVSS v2 : unknown
v3 : 7.2
v2 : unknown
v3 : 8.8
References () https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Twig/Extension/GravExtension.php#L1692-L1698 - Issue Tracking () https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Twig/Extension/GravExtension.php#L1692-L1698 - Issue Tracking
References () https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Utils.php#L1956-L2074 - Issue Tracking () https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Utils.php#L1956-L2074 - Issue Tracking
References () https://github.com/getgrav/grav/commit/244758d4383034fe4cd292d41e477177870b65ec - Patch () https://github.com/getgrav/grav/commit/244758d4383034fe4cd292d41e477177870b65ec - Patch
References () https://github.com/getgrav/grav/security/advisories/GHSA-96xv-rmwj-6p9w - Exploit, Vendor Advisory () https://github.com/getgrav/grav/security/advisories/GHSA-96xv-rmwj-6p9w - Exploit, Vendor Advisory

07 Nov 2023, 04:15

Type Values Removed Values Added
Summary Grav is a file-based Web platform. 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. 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.

23 Jun 2023, 18:04

Type Values Removed Values Added
CWE CWE-184
CWE-1336
CWE-94
CPE cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.2
First Time Getgrav
Getgrav grav
References (MISC) https://github.com/getgrav/grav/security/advisories/GHSA-96xv-rmwj-6p9w - (MISC) https://github.com/getgrav/grav/security/advisories/GHSA-96xv-rmwj-6p9w - Exploit, Vendor Advisory
References (MISC) https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Utils.php#L1956-L2074 - (MISC) https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Utils.php#L1956-L2074 - Issue Tracking
References (MISC) https://github.com/getgrav/grav/commit/244758d4383034fe4cd292d41e477177870b65ec - (MISC) https://github.com/getgrav/grav/commit/244758d4383034fe4cd292d41e477177870b65ec - Patch
References (MISC) https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Twig/Extension/GravExtension.php#L1692-L1698 - (MISC) https://github.com/getgrav/grav/blob/1.7.40/system/src/Grav/Common/Twig/Extension/GravExtension.php#L1692-L1698 - Issue Tracking

14 Jun 2023, 23:15

Type Values Removed Values Added
New CVE

Information

Published : 2023-06-14 22:15

Updated : 2024-11-21 08:06


NVD link : CVE-2023-34252

Mitre link : CVE-2023-34252

CVE.ORG link : CVE-2023-34252


JSON object : View

Products Affected

getgrav

  • grav
CWE
CWE-184

Incomplete List of Disallowed Inputs

CWE-1336

Improper Neutralization of Special Elements Used in a Template Engine

CWE-94

Improper Control of Generation of Code ('Code Injection')