Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privilege page author credentials
-
DeliveryEdit page template to call media_directory() with traversal path
-
ExploitCMS renders template server-side without path validation
-
ExecutionInvoke Medium object filepath accessor on arbitrary target file
-
ImpactExfiltrate 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 |
| 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 |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
Network-accessible Twig function exploitable by authenticated low-privilege authors; pure confidentiality impact with no integrity, availability, or scope-change component.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Related Vulnerabilities in Grav CMS Access Control and Traversal Flaws
View all 9Server-side template injection (SSTI) in Grav (getgrav/grav) prior to 1.8.0-beta.27 allows an authenticated attacker hol
Broken access control in Grav CMS (CWE-285) before 1.8.0-beta.27 lets an authenticated editor-level user escalate their
A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug
Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a
GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv
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
Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri
Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm
Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past
Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make
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
Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary
EUVD-2026-65211
GHSA-47ch-6w46-6xm7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB