Skip to main content

Grav CMS CVE-2026-7317

| EUVDEUVD-2026-26154 LOW
Improper Input Validation (CWE-20)
2026-04-28 cna@vuldb.com
1.3
CVSS 4.0 · Vendor: vuldb

Severity by source

Vendor (vuldb) PRIMARY
1.3 LOW
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.0 MEDIUM

Cache file poisoning requires low-privilege auth and high complexity; impacts are Low without a confirmed RCE gadget chain in Grav's dependencies.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (vuldb).

CVSS VectorVendor: vuldb

CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

5
Source Code Evidence Fetched
Jul 24, 2026 - 04:06 vuln.today
Analysis Generated
Jul 24, 2026 - 04:06 vuln.today
CVSS changed
Apr 29, 2026 - 01:12 NVD
2.3 (LOW) 1.3 (LOW)
EUVD ID Assigned
Apr 28, 2026 - 22:22 euvd
EUVD-2026-26154
CVE Published
Apr 28, 2026 - 22:16 nvd
LOW 1.3

DescriptionCVE.org

A vulnerability was found in Grav CMS up to 1.7.49.5/2.0.0-beta.1. Affected by this vulnerability is the function FileCache::doGet of the file system/src/Grav/Framework/Cache/Adapter/FileCache.php of the component Cache Value Handler. The manipulation results in deserialization. The attack may be launched remotely. The attack requires a high level of complexity. The exploitation appears to be difficult. The exploit has been made public and could be used. Upgrading to version 2.0.0-beta.2 addresses this issue. The patch is identified as c66dfeb5f. The affected component should be upgraded.

AnalysisAI

Insecure deserialization in Grav CMS FileCache exposes low-privilege authenticated users to PHP object injection through the FileCache::doGet() method, which calls unserialize() with ['allowed_classes' => true] on cache file contents without integrity verification. Versions 1.7.44 through 1.7.49.5 and 2.0.0-beta.0/beta.1 are affected; the component is not on Grav's default cache path but is reachable by plugins and downstream consumers. Publicly available exploit code exists demonstrating the deserialization primitive, though no active exploitation is recorded in CISA KEV and EPSS sits at 0.05%, reflecting negligible widespread exploitation risk.

Technical ContextAI

Grav CMS's Framework\Cache\Adapter\FileCache class (system/src/Grav/Framework/Cache/Adapter/FileCache.php) reads cached values in doGet() using PHP's native unserialize() with ['allowed_classes' => true], which permits full PHP class instantiation and triggers object magic methods (__wakeup, __destruct, __toString) on attacker-controlled input. The CVE attributes CWE-20 (Improper Input Validation), but the GHSA advisory GHSA-gwfr-jfjf-92vv more precisely identifies CWE-502 (Deserialization of Untrusted Data) as the root cause - the lack of data validation is a consequence of the unsafe deserialization pattern, not the primary weakness. An important architectural note from the GHSA maintainer: this FileCache adapter is not wired into Grav's primary cache path, which uses Symfony's FilesystemAdapter; however, it is reachable by plugins and downstream consumers, making exposure installation-dependent. CPE data confirms affected products as Grav CMS 1.7.44-1.7.49.5 and 2.0.0-beta.0/beta.1. The fix (commit c66dfeb5f) retrofits HMAC integrity using Security::getNonceKey(), versioning the on-disk cache format to prevent deserialization of unsigned or tampered payloads.

RemediationAI

Vendor-released patch: 2.0.0-beta.2, available via Composer (composer require getgrav/grav:^2.0.0-beta.2). The fix in commit c66dfeb5f adds HMAC signing to every cache payload on write using Security::getNonceKey() and verifies the signature on read; tampered, forged, or pre-upgrade cache files are treated as cache misses and removed rather than deserialized. The new on-disk format is versioned (v2\n<expires>\n<key>\n<hmac>\n<serialized>), and existing caches rebuild transparently on first read - no manual cache wipe is required. Patch references: https://github.com/getgrav/grav/commit/c66dfeb5f and https://github.com/getgrav/grav/security/advisories/GHSA-gwfr-jfjf-92vv. If upgrading to 2.0.0-beta.2 is not immediately possible, operators should harden filesystem permissions on Grav's cache directory to prevent unauthorized file writes (e.g., restrict ownership to the web server process user and remove write access for any other accounts); this eliminates the cache-poisoning precondition but does not fix the underlying unsafe unserialize() call. Additionally, auditing and disabling any plugins that explicitly use Framework\Cache\Adapter\FileCache rather than the default Symfony adapter reduces the attack surface, though this may impact plugin functionality.

More in PHP

View all
CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-46506 CRITICAL POC
10.0 May 13

NetAlertX (formerly PiAlert) versions 23.01.14 through 24.x before 24.10.12 allow unauthenticated command injection thro

Share

CVE-2026-7317 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy