ZeroHour

CVE-2026-86195

niche

Privilege Escalation in Grav CMS API Plugin via Dot-Keyed Super Flag Bypass

CVSS 4.0
8.7 high
EPSS
<1%p14
Published
()
Modified
AI analysis

grav-plugin-api versions before 1.0.20 contain a privilege escalation flaw (CWE-269) in the InvitationsController, where the stripSuperFlags() guard removes nested super flags but fails to strip their dot-keyed equivalents such as 'api.super'. A non-super user manager holding api.access and api.users.write permissions can create an invitation whose access payload includes a dot-keyed super flag, bypassing the guard so the flag persists onto the account created by that invitation. Because the invitation can be accepted through a public endpoint without any interaction from the real invitee, an attacker can mint a super-admin account and immediately obtain a valid JWT granting full control of the site. Any Grav CMS deployment running the API plugin below version 1.0.20, particularly where user-management API permissions have been delegated to non-super users, is affected. Exploitation is not currently observed: there is no known public PoC, the issue is not in CISA KEV, and EPSS estimates only a 0.2% probability of exploitation within 30 days.

What to do: Upgrade grav-plugin-api to version 1.0.20 or later. Until patched, restrict or review accounts holding api.access and api.users.write, and consider disabling the API plugin or the public invitation-acceptance endpoint if delegated user management is not required. Administrators should also audit recently created accounts for unexpected 'api.super' style flags and rotate/shorten the lifetime of any JWTs issued via invitations.

Affected
grav-plugin-api (API plugin for Grav CMS)all versions before 1.0.20
Estimated exposure
nichelikely low thousands of sites at most (niche flat-file CMS, optional non-core plugin, with exploitation further gated on delegated user-management permissions) — Grav CMS is a niche flat-file CMS with deployments generally estimated in the low tens of thousands, the API plugin is an optional add-on rather than core, and exploitation additionally requires a non-super user with api.access and…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

grav-plugin-api versions before 1.0.20 contain a privilege escalation vulnerability in the InvitationsController where the stripSuperFlags() method only removes nested super flags but fails to strip dot-keyed equivalents like api.super. A non-super user manager with api.access and api.users.write permissions can create an invitation with a dot-keyed super flag in the access payload that bypasses the guard and persists to the new account. Attackers can accept the invitation through the public endpoint without real invitee interaction to create a super-admin account and immediately receive a valid JWT for full site control.

Weakness
CWE-269
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.