CVE-2026-65896: External Control of File Name or Path in getgrav grav
Grav API Plugin (Composer package getgrav/grav-plugin-api) before 1.0.10 fails to properly validate the slug field in the POST /pages/{route}/move endpoint. PagesController::move() sanitizes the slug only with ltrim($body['slug'], '.'), which strips leading periods but does not neutralize '/' or '..' segments. An authenticated API caller with the api.pages.write permission can supply path traversal sequences (e.g., 01.home/../../../pwned) to move an entire page directory (content and media) to an arbitrary writable location outside user/pages/, including outside the Grav installation.
AI Analysis
Technical Summary
The Grav API Plugin before 1.0.10 fails to properly validate the slug parameter in the POST /pages/{route}/move endpoint. The PagesController::move() method sanitizes the slug only by stripping leading periods using ltrim, but does not prevent path traversal sequences such as '/' or '..'. An authenticated API caller with the api.pages.write permission can exploit this to move entire page directories to arbitrary writable locations outside the designated user/pages/ directory, including locations outside the Grav installation. This represents an external control of file name or path vulnerability.
Potential Impact
An attacker with authenticated API access and the api.pages.write permission can move page directories and their contents to arbitrary writable locations outside the intended directory structure. This could lead to unauthorized file system modifications outside the Grav installation, potentially impacting system integrity and security. The vulnerability has a CVSS 4.0 score of 7.1 (high severity), indicating significant risk if exploited.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, restrict API access to trusted users only and monitor for suspicious use of the move endpoint. Avoid granting api.pages.write permission broadly. Review and harden file system permissions to limit writable locations accessible by the Grav process.
CVE-2026-65896: External Control of File Name or Path in getgrav grav
Description
Grav API Plugin (Composer package getgrav/grav-plugin-api) before 1.0.10 fails to properly validate the slug field in the POST /pages/{route}/move endpoint. PagesController::move() sanitizes the slug only with ltrim($body['slug'], '.'), which strips leading periods but does not neutralize '/' or '..' segments. An authenticated API caller with the api.pages.write permission can supply path traversal sequences (e.g., 01.home/../../../pwned) to move an entire page directory (content and media) to an arbitrary writable location outside user/pages/, including outside the Grav installation.
CVSS v4.0
Score 7.1high
Affected software
pkg:composer/getgrav/grav-plugin-apiRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Grav API Plugin before 1.0.10 fails to properly validate the slug parameter in the POST /pages/{route}/move endpoint. The PagesController::move() method sanitizes the slug only by stripping leading periods using ltrim, but does not prevent path traversal sequences such as '/' or '..'. An authenticated API caller with the api.pages.write permission can exploit this to move entire page directories to arbitrary writable locations outside the designated user/pages/ directory, including locations outside the Grav installation. This represents an external control of file name or path vulnerability.
Potential Impact
An attacker with authenticated API access and the api.pages.write permission can move page directories and their contents to arbitrary writable locations outside the intended directory structure. This could lead to unauthorized file system modifications outside the Grav installation, potentially impacting system integrity and security. The vulnerability has a CVSS 4.0 score of 7.1 (high severity), indicating significant risk if exploited.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, restrict API access to trusted users only and monitor for suspicious use of the move endpoint. Avoid granting api.pages.write permission broadly. Review and harden file system permissions to limit writable locations accessible by the Grav process.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-07-23T11:03:13.092Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a6207989c2644c7f80b69fe
Added to database: 07/23/2026, 12:22:48 UTC
Last enriched: 07/23/2026, 12:37:05 UTC
Last updated: 07/23/2026, 13:22:42 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.