CVE-2026-75829

grav-plugin-api before 1.0.15 Twig SSTI via translate endpoint

Published Aug 18, 2026 CVSS 4.0 · 8.6 High EPSS < 1% KEV · Not listed
Description
grav-plugin-api versions before 1.0.15 fail to validate Twig content in the translate() endpoint, allowing attackers with api.pages.write permission to persist pages with process.twig enabled. Attackers can submit crafted header and content parameters to execute server-side template injection payloads that are evaluated at render time.

Analysis

AI-generated

Technical impact

The vulnerability is a server‑side template injection in the translate() endpoint of grav‑plugin‑api. Attackers who can write pages through the API can inject arbitrary Twig code that is executed when the page is rendered, potentially allowing full code execution on the server. The weakness is identified as CWE‑1336, highlighting improper validation of template content.

Affected Systems

The flaw exists in grav‑plugin‑api versions before 1.0.15 for the Grav CMS. Users running Grav CMS with the grav-plugin‑api plugin older than version 1.0.15 are impacted. Only the translate() API endpoint is vulnerable; the impact requires that the attacker has api.pages.write permission or an equivalent capability on the site.

Risk and Exploitability

With a CVSS score of 8.6, this flaw represents a high severity vulnerability. The EPSS score is not available, and the issue is not listed in the CISA KEV catalog, yet the potential for remote code execution makes it a critical concern for exposed API endpoints. Attackers can reach the vulnerable endpoint over HTTP, and with sufficient permissions to write to pages, can persist malicious Twig templates that execute during rendering. The lack of input validation allows the injection of payloads that run server‑side and can compromise the host.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update grav‑plugin‑api to version 1.0.15 or newer.
  • Restrict the api.pages.write permission to only trusted administrators and review role assignments.
  • If an immediate update is not possible, disable the process.twig option for the endpoint or sanitize/validate incoming Twig content before saving to the page.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
Description grav-plugin-api versions before 1.0.15 fail to validate Twig content in the translate() endpoint, allowing attackers with api.pages.write permission to persist pages with process.twig enabled. Attackers can submit crafted header and content parameters to execute server-side template injection payloads that are evaluated at render time.
Title grav-plugin-api before 1.0.15 Twig SSTI via translate endpoint
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-1336
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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

Weaknesses
  • CWE-1336

    Improper Neutralization of Special Elements Used in a Template Engine

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Aug 18, 2026, 1:36 PM
Reserved
Aug 18, 2026, 10:57 AM
Status
Deferred
Published
Aug 18, 2026, 12:19 PM
Modified
Oct 22, 2026, 10:10 PM