Description
grav-plugin-api (getgrav/grav-plugin-api) versions >= 1.0.0-beta.10 and <= 1.0.14 contain a path traversal vulnerability in the PagesController::batchCopy() method. An incomplete fix for GHSA-qjq4-jp55-4mx2 left the user-controlled 'suffix' parameter (via POST /api/v1/pages/batch) unvalidated. An authenticated user with the api.pages.write permission (editor-level, not super-admin) can supply path traversal sequences (e.g. /../../../) in the suffix parameter to escape the intended user/pages/ directory and write attacker-controlled page content and page media to arbitrary filesystem locations writable by the web server process. The vulnerability is fixed in 1.0.15.
Published: 2026-08-18
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The grav-plugin-api provides an API endpoint at /api/v1/pages/batch that allows authenticated editors to duplicate pages. A bug in versions 1.0.0‑beta.10 through 1.0.14 left the "suffix" parameter unvalidated, allowing path‑traversal sequences. An authenticated user with api.pages.write permission can craft a request containing sequences such as /../../../ and write arbitrary page content and media files to any directory writable by the web‑server process. This means the attacker could overwrite critical files or deploy web shells, affecting confidentiality, integrity, or availability of the site.

Affected Systems

The vulnerability affects installations of the Grav CMS framework that include the grav-plugin-api plugin, specifically versions 1.0.0‑beta.10 up to and including 1.0.14. All users of getgrav:grav who have that plugin version are potentially impacted.

Risk and Exploitability

The CVSS score of 7.1 indicates a high severity risk. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog, suggesting it is not a known exploited vulnerability yet. However, the attack requires only authenticated editors with api.pages.write permission, which are relatively common roles on a site. The path traversal flaw allows writing to arbitrary locations, meaning an attacker could replace files, inject malicious code, or disrupt site functionality. The lack of a public exploit does not reduce the potential risk; administrators should treat it as a high‑impact vulnerability until mitigated.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade grav-plugin-api to 1.0.15 or later on all sites.
  • If immediate upgrade is not feasible, restrict API access by revoking the api.pages.write role from non-trusted users or limiting the /api/v1/pages/batch endpoint so that only trusted accounts can use it.
  • As an interim measure, disable the grav-plugin-api plugin or remove the batchCopy functionality from the API until the patched version is deployed.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 18 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
Description grav-plugin-api (getgrav/grav-plugin-api) versions >= 1.0.0-beta.10 and <= 1.0.14 contain a path traversal vulnerability in the PagesController::batchCopy() method. An incomplete fix for GHSA-qjq4-jp55-4mx2 left the user-controlled 'suffix' parameter (via POST /api/v1/pages/batch) unvalidated. An authenticated user with the api.pages.write permission (editor-level, not super-admin) can supply path traversal sequences (e.g. /../../../) in the suffix parameter to escape the intended user/pages/ directory and write attacker-controlled page content and page media to arbitrary filesystem locations writable by the web server process. The vulnerability is fixed in 1.0.15.
Title grav-plugin-api before 1.0.15 Path Traversal via batchCopy
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-73
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-18T15:09:11.660Z

Reserved: 2026-08-18T10:57:39.580Z

Link: CVE-2026-75830

cve-icon Vulnrichment

Updated: 2026-08-18T15:09:08.069Z

cve-icon NVD

Status : Received

Published: 2026-08-18T12:19:32.960

Modified: 2026-08-18T15:17:14.023

Link: CVE-2026-75830

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T13:15:12Z

Weaknesses
  • CWE-73

    External Control of File Name or Path