CVE-2026-86195
nichePrivilege Escalation in Grav CMS API Plugin via Dot-Keyed Super Flag Bypass
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.
| grav-plugin-api (API plugin for Grav CMS) | all versions before 1.0.20 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.