CVE-2026-65896
HIGH
CVSS 7.1
grav
Verified Advisory
Path traversal in Grav API Plugin POST /pages/{route}/move endpoint (CVE-2026-65896)
The Grav API Plugin fails to properly sanitize the `slug` field in the `PagesController::move()` method, stripping only leading period characters via `ltrim()` while leaving `/` and `..` path segments unfiltered. An authenticated API caller holding the `api.pages.write` permission can supply path traversal sequences to relocate an entire page directory, including its content and media files, to an arbitrary writable location outside the `user/pages/` tree and potentially outside the entire Grav installation.
Affected versions:
- <=1.0.9
We recommend updating to: 1.0.10.
CVSS 7.1 · our assessment: this_week
Reference: https://github.com/getgrav/grav/security/advisories/GHSA-qjq4-jp55-4mx2
Details: https://vuln.today/cve/CVE-2026-65896
Verified by vuln.today against published advisories.
Affected versions
- – <=1.0.9
Fixed in: 1.0.10
More advisories for grav
- CVE-2026-65608 – Remote code execution in Grav CMS via unchecked callable in FlexDirectory (CVE-2026-65608)
- CVE-2026-65895 – Broken access control in Grav API Plugin configuration scopes (CVE-2026-65895)
- CVE-2026-65897 – Privilege escalation via unvalidated groups field in Grav API Plugin (CVE-2026-65897)
- CVE-2026-65603 – Privilege Escalation via profile self-update in Grav Login plugin (CVE-2026-65603)
- CVE-2026-65008 – Remote code execution via unrestricted callable in Grav CMS (CVE-2026-65008)
- CVE-2026-65007 – Missing authorization on API key generation in Grav API plugin (CVE-2026-65007)
- CVE-2026-62230 – Case-sensitive extension filtering bypass in Grav CMS (CVE-2026-62230)
- CVE-2026-62231 – Authorization bypass in Grav API plugin (CVE-2026-62231)