Read the docs

Cache exhaustion and page permission bypass in Grav API plugin

Priority MEDIUM 49CWE-770Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-770.

Summary

The Grav API plugin (grav-plugin-api) from 1.0.16 before 1.0.42 is affected. Its unauthenticated GET /api/v1/translations/{lang} endpoint caches a full translation dictionary for every well-formed language code, from version 1.0.40 before 1.0.42, which allows unlimited resource allocation (CWE-770). Unauthenticated remote attackers can send small requests that each store about 560 KB to exhaust disk or APCu. Accounts with api.pages.write can also overwrite translations or create pages that page-level rules deny, because the sync and batch copy endpoints do not check target and destination page rules.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

Description from the CNA

Grav API plugin (grav-plugin-api) 1.0.40 before 1.0.42 caches a full translation dictionary for every well-formed language code sent to the unauthenticated GET /api/v1/translations/{lang} endpoint, and 1.0.16 before 1.0.42 fails to check target and destination page rules in the sync and batch copy endpoints. Unauthenticated attackers can send small requests that each store about 560 KB to exhaust disk or APCu, while accounts with api.pages.write can overwrite translations or create pages that page-level rules deny.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00761 55th percentileScored 2026-11-07
Fix Fixed grav-plugin-api (getgrav): 1.0.42

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
getgravgrav-plugin-api1.0.16 to before 1.0.421.0.42Patch availableCNA
  • grav-plugin-api Vendorgetgrav Affected 1.0.16 to before 1.0.42 Fixed in 1.0.42 Patch available CNA

Remediation

Upgrade getgrav grav-plugin-api to 1.0.42, the fixed version listed for this product.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

  • Fix · CNA grav-plugin-api (getgrav) Fixed in 1.0.42

Timeline

  1. 2026-10-20 Threatist record created from CVE-2026-112779
  2. 2026-10-20 Alias added: GHSA-5hrq-qph9-cjf6
  3. 2026-10-20 CISA SSVC decision points changed
  4. 2026-10-25 EPSS moved to the 50th–90th percentile

References

  • TI-2026-30893 Grav: Privilege Escalation via Missing Server-Side Validation of groups/access CVSS 3.1CRITICAL 9.4
  • TI-2025-28971 Cross Site Scripting vulnerability in grav v.1.7.48 and before allows an attacker to… CVSS 3.1CRITICAL 9.8
  • TI-2021-04523 Unauthenticated Arbitrary YAML Write/Update leads to Code Execution CVSS 3.1CRITICAL 9.8
  • TI-2026-50940 Grav CMS before 2.0.16 Origin Validation Bypass via Referer CVSS 4.0CRITICAL 9.3
  • TI-2026-46446 Grav before 2.0.7 Remote Code Execution via Blueprint dynamicData CVSS 4.0CRITICAL 9.3
  • TI-2021-22428 GravCMS 1.10.7 - Arbitrary YAML Write/Update (Unauthenticated) (2) CVSS 4.0CRITICAL 9.3
See all 228 →

Sources