CVE-2026-74907

Grav before 2.0.15 Path Traversal via plugin-asset-map.php

Published Aug 18, 2026 CVSS 4.0 · 8.2 High EPSS < 1% KEV · Not listed
Description
Grav before 2.0.15 contains a path traversal vulnerability in the static asset server within index.php that uses string prefix matching instead of directory-boundary validation. Unauthenticated attackers can access files in sibling directories by exploiting directory names that extend the base path string, such as requesting assets-secret when assets is the configured base.

Analysis

AI-generated

Technical impact

Grav CMS versions prior to 2.0.15 suffer from a path traversal flaw in the static asset server within index.php. The server mistakenly uses string prefix matching instead of strict directory-boundary checks, allowing an attacker to craft requests that read files from sibling directories. If exploited, the attacker can recover sensitive or private files located beside the declared asset path, leading to confidentiality compromise and potential further exploitation.

Affected Systems

All installations of Grav (Getgrav) running versions earlier than 2.0.15 are affected. The flaw resides in the plugin asset map component of Grav CMS.

Risk and Exploitability

The vulnerability carries a CVSS score of 8.2, classifying it as high severity. Although no EPSS score is available, the public disclosure and lack of mitigation suggest that exploitation is feasible. Because the flaw can be triggered through standard HTTP requests, unauthenticated attackers can initiate the exploit remotely, making it a significant threat to systems that expose the asset serving endpoint to the internet.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Grav to version 2.0.15 or later
  • Verify that plugin-asset-map.php is not publicly accessible or that the static asset server is properly restricted
  • If upgrading is delayed, limit access to the asset directory with web‑server configuration to block traversal into sibling directories

Generated by OpenCVE AI on August 18, 2026 at 12:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-4v9q-p283-qc2m Grav: Unauthenticated Path Traversal via Missing Directory-Boundary Check in `plugin-asset-map.php` Static Asset Server (`index.php`)
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Grav before 2.0.15 contains a path traversal vulnerability in the static asset server within index.php that uses string prefix matching instead of directory-boundary validation. Unauthenticated attackers can access files in sibling directories by exploiting directory names that extend the base path string, such as requesting assets-secret when assets is the configured base.
Title Grav before 2.0.15 Path Traversal via plugin-asset-map.php
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-22
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Oct 8, 2026, 3:24 PM
Reserved
Aug 17, 2026, 10:48 AM
Status
Deferred
Published
Aug 18, 2026, 12:19 PM
Modified
Oct 22, 2026, 10:10 PM