CVE Catalog

CVE-2026-72826

CriticalCVSS 9.8
Published: Translated: NVD NIST

Summary

The getgrav/grav-plugin-api plugin before 1.0.13 fails to validate that the scopes of a newly created API key are a subset of the caller's scopes in createApiKey. The self-target path of requireApiKeyPermission() requires only the baseline api.access scope, and the new key's scopes are read directly from the request body with no subset check. An attacker holding a minimal-scope API key on a super account can submit an empty scopes array to mint an unscoped, full-access super key, bypassing scope restrictions (and enabling further chains such as configuration write to RCE).

Risk Assessment

An attacker with a minimal API key could gain full administrative access, potentially leading to complete system compromise.

Recommendation

Update the Grav API plugin to version 1.0.13 or later. Implement validation of API key scopes.

Original NVD description (English source)

The getgrav/grav-plugin-api plugin before 1.0.13 fails to validate that the scopes of a newly created API key are a subset of the caller's scopes in createApiKey. The self-target path of requireApiKeyPermission() requires only the baseline api.access scope, and the new key's scopes are read directly from the request body with no subset check. An attacker holding a minimal-scope API key on a super account can submit an empty scopes array to mint an unscoped, full-access super key, bypassing scope restrictions (and enabling further chains such as configuration write to RCE).

Vulnerability data from NVD (NIST) · CISA KEV · EPSS