Skip to main content

Grav CMS CVE-2026-72697

| EUVDEUVD-2026-65211 HIGH
Path Traversal (CWE-22)
7.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain low-privilege page author credentials
  2. Delivery
    Edit page template to call media_directory() with traversal path
  3. Exploit
    CMS renders template server-side without path validation
  4. Execution
    Invoke Medium object filepath accessor on arbitrary target file
  5. Impact
    Exfiltrate file contents matching configured media extension allow-list

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated session with page authoring (contributor or editor-level) privileges within Grav CMS - the CVSS PR:L metric confirms that low-privilege authentication is necessary, and unauthenticated exploitation is not possible. The attacker must have write access to page templates or content that invokes the media_directory() Twig function with attacker-controlled path arguments; installations where authors are restricted to content-only editing without template access are not exploitable. File contents are accessible only for files whose extensions match the CMS's configured media extension allow-list, which constrains (but does not eliminate) the set of exfiltrable files - the specific risk depends on which extensions are enabled in the target deployment. Exploitation is further bounded by the OS-level file permissions of the web server process; files owned exclusively by root or other non-web-server accounts are out of scope. Grav instances that sandbox or disable custom Twig function calls in author-facing templates would not be exploitable through this vector.

Impact

The CVSS 4.0 score of 7.1 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N) accurately characterizes the risk profile: network-accessible exploitation against any Grav instance that exposes its authoring interface, low attack complexity, and high confidentiality impact. The PR:L requirement is the primary constraint - exploitation is limited to accounts holding page authoring (contributor or editor-level) privileges, ruling out unauthenticated attacks and making this a trusted-insider or compromised-account scenario rather than an opportunistic mass-exploitation risk. EPSS data was not provided in the source intelligence; no active exploitation signal exists (not in CISA KEV) and no public POC has been identified, suggesting this is a newly disclosed research finding rather than an actively targeted flaw. Despite the absence of active exploitation, the practical risk in multi-tenant Grav deployments or platforms that grant authoring access to external collaborators is real: sensitive configuration files, credential stores, or private keys accessible to the web server process and matching the media extension allow-list could be silently exfiltrated. The file extension constraint is a partial mitigating factor but is environment-dependent and does not reliably prevent exposure.

Exploit ScenarioDerived

An attacker holding a contributor account on a Grav CMS site before 2.0.16 edits a page template to call media_directory('/var/www/html/../etc/') (or a similar traversal path) and then accesses the filepath property of the returned Medium object to read the contents of a target file - for example, a .yml configuration file containing database credentials or an API key that matches the media extension allow-list. The attack requires no special tooling beyond familiarity with Grav's Twig templating syntax, and because it executes server-side within the CMS rendering pipeline, it produces no obvious client-side indicators. No public proof-of-concept code has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 25, 2026

Path traversal in Grav CMS before 2.0.16 exposes arbitrary server-side files to authenticated page authors through the media_directory() Twig function, which fails to validate attacker-supplied filesystem paths. Users holding page authoring privileges can supply arbitrary paths to media_directory() and then invoke the allow-listed filepath accessor on the resulting Medium object to read the contents of any file accessible to the web server process whose extension matches the CMS media allow-list. No public exploit has been identified at time of analysis and the vulnerability is not listed in CISA KEV, but the low privilege requirement and high confidentiality impact make this a meaningful risk in any multi-author or externally-accessible Grav deployment.

RemediationAI

The primary remediation is to upgrade Grav CMS to version 2.0.16 or later, which patches the path validation defect in the media_directory() Twig function; the vendor advisory is at https://github.com/getgrav/grav/security/advisories/GHSA-47ch-6w46-6xm7. If immediate upgrade is not possible, restrict page authoring privileges exclusively to fully trusted internal users - removing contributor or editor access from any external, semi-trusted, or shared accounts eliminates the attack surface entirely while the patch is pending. As an additional layer, tighten the OS-level file permissions on the web server process account so it cannot read files outside the web root or designated content directories; this limits the blast radius of a successful traversal to the web application's own files rather than broader server contents. Narrowing the configured media file extension allow-list to the minimum required types also reduces the set of files an attacker could exfiltrate. These workarounds reduce risk but do not address the underlying vulnerability.

Affected VersionsENISA

grav 0 <2.0.16

Affected Packages

composer getgrav/grav fix: 2.0.16
euvd grav fix: 2.0.16

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Grav CMS is a flat-file PHP content management system that uses the Twig templating engine for page rendering. The media_directory() Twig function is designed to serve media assets from designated directories, but its path handling does not sanitize or restrict the filesystem path supplied by the caller - a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) defect. Once an arbitrary path is accepted, the Medium object's filepath accessor reads file contents from that location, constrained only by the web server process's OS-level file permissions and the CMS's configured media file extension allow-list. The affected CPE is cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*, meaning all Grav CMS releases prior to 2.0.16 carry this flaw. The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N is consistent with the Twig template execution model: network-accessible, low complexity, requiring only authenticated low-privilege access with high confidentiality impact and no integrity or availability consequence.

Know when Grav gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network-accessible Twig function exploitable by authenticated low-privilege authors; pure confidentiality impact with no integrity, availability, or scope-change component.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 03:16 EUVD
CVE Published
Aug 25, 2026 - 01:30 cve.org
HIGH 7.1

DescriptionCVE.org

Grav CMS before 2.0.16 contains a path traversal vulnerability in the media_directory() Twig function that fails to validate filesystem paths, allowing authenticated users to enumerate and access files outside intended scope. Attackers with page authoring privileges can supply arbitrary filesystem paths to media_directory() and use the allow-listed filepath accessor on Medium objects to read file contents of any file matching configured media extensions that the web server process can access.

Executive ViewAI

Why It Matters

Grav CMS before version 2.0.16 exposes a confidentiality risk through page author privileges, allowing authenticated users to read arbitrary server files including potential credentials and configuration data. This impact extends to any organization granting authoring rights to multiple internal team members or external contributors. The absence of an available patch requires immediate compensating controls to restrict access until a fix is deployed.

Business Impact: High
Compensating Controls

Until patch is released: (1) Revoke or restrict page author privileges to a minimal set of trusted administrators only; (2) Disable the media_directory() Twig function if not actively used in templating; (3) Implement OS-level file access controls to prevent the web server process from reading sensitive files outside intended directories; (4) Deploy network segmentation to limit exposure if external authoring is enabled; (5) Enable and monitor web server access logs for patterns indicating path traversal attempts targeting file extensions in the CMS media allow-list.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche flat-file PHP CMS, limited enterprise adoption
Threat Intel
1
1 sources
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

More in Grav

View all
CVE-2025-66294 HIGH POC
8.7 Dec 01

Server-side template injection (SSTI) in Grav (getgrav/grav) prior to 1.8.0-beta.27 allows an authenticated attacker hol

CVE-2025-66301 HIGH POC
8.6 Dec 01

Broken access control in Grav CMS (CWE-285) before 1.8.0-beta.27 lets an authenticated editor-level user escalate their

CVE-2025-50286 HIGH POC
8.1 Aug 06

A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug

CVE-2024-34082 CRITICAL POC
9.9 May 15

Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a

CVE-2021-47812 CRITICAL POC
9.8 Jan 16

GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv

CVE-2026-65008 CRITICAL POC
9.3 Jul 21

Remote code execution in Grav CMS 2.0.4 (fixed in 2.0.7) lets an authenticated user holding the admin.pages or api.pages

CVE-2026-75827 CRITICAL POC
9.3 Aug 18

Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri

CVE-2026-75837 CRITICAL POC
9.3 Aug 18

Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm

CVE-2026-75828 CRITICAL POC
9.3 Aug 18

Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past

CVE-2025-66844 CRITICAL POC
9.1 Dec 15

Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make

CVE-2025-66299 HIGH POC
8.8 Dec 01

Grav is a file-based Web platform. Prior to 1.8.0-beta.27, Grav CMS is vulnerable to a Server-Side Template Injection (S

CVE-2026-72819 HIGH POC
8.7 Aug 14

Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary

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