---
id: CVE-2026-112779
title: Grav API Plugin before 1.0.42 Cache Exhaustion and Page Permission Bypass
summary: >-
  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…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-770
vendor: getgrav
product: grav-plugin-api
affected:
  - grav-plugin-api >= 1.0.16 < 1.0.42
published: '2026-10-19'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T19:10:55.987Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-112779'
references:
  - url: 'https://github.com/getgrav/grav/security/advisories/GHSA-8pcm-97fc-4xwh'
    label: GitHub Security Advisory (GHSA-8pcm-97fc-4xwh)
  - url: >-
      https://www.vulncheck.com/advisories/grav-api-plugin-before-1.0.42-cache-exhaustion-and-page-permission-bypass
    label: >-
      VulnCheck Advisory: Grav API Plugin before 1.0.42 Cache Exhaustion and
      Page Permission Bypass
tags:
  - cve.org
ingestedAt: '2026-10-19T19:38:06.460Z'
---

## Overview

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.

## Affected

- `grav-plugin-api >= 1.0.16 < 1.0.42`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
