Description
Grav CMS 2.0.14 through 2.0.24 contains a privilege escalation vulnerability in the group and account blueprints. The access map is gated by a `security@: admin.super` guard that is resolved by the field's exact path, so a submitted flat dot-notation key such as `access.admin.super` (instead of the nested `access[admin][super]`) matches no blueprint rule, survives BlueprintSchema::filterArray() and flattening, and is written by FlexObject::update() via setNestedProperty(), which splits on `.` and reconstructs the nested value. An authenticated backend operator using the flex accounts backend who holds admin.users but not admin.super can therefore grant admin.super to their own account or to a group they belong to and escalate to full super-admin, gaining control over configuration, plugin and theme installation, the file manager, and all accounts. Fixed in 2.0.25, which drops any dotted key whose ancestor path is disabled or marked validate.ignore.
Published: 2026-09-26
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation to Full Super Admin
Action: Immediate Patch
AI Analysis

Impact

Grav CMS versions 2.0.14 through 2.0.24 contain a flaw in group and account blueprints that allows a logged‑in backend operator with only admin.users rights to create a dotted flat key such as access.admin.super. Because the blueprint guard checks the exact path, the dotted key bypasses the security guard, survives filtering, and is written to the backend, giving the user or a group admin.super permissions. The bug is a classic case of Missing Authorization and is catalogued as CWE‑639. The result is that the attacker can elevate privileges to full super‑admin, gaining control over configuration, plugin and theme installation, the file manager, and all user accounts.

Affected Systems

The affected product is Grav CMS provided by the vendor getgrav, specifically any release from 2.0.14 up to and including 2.0.24. No other versions are impacted, and the vulnerability is tied to the Flex accounts backend mechanism that handles user and group data.

Risk and Exploitability

The CVSS score of 8.7 places this vulnerability in the High severity range, indicating that once exploited it can compromise the entire CMS installation. The EPSS score is not available, so an exact exploitation probability cannot be assigned, but the lack of external constraints means that an authenticated backend user who can modify account data is sufficient to trigger the flaw. The vulnerability is not listed in the CISA KEV catalog, suggesting no widespread exploitation reports yet, but the high score and easy attack path make it a compelling priority. The fix is implemented in Grav 2.0.25, which removes support for dotted keys whose parent paths are disabled or marked validate.ignore.

Generated by OpenCVE AI on September 26, 2026 at 15:34 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the Grav CMS release 2.0.25 or later to eliminate the vulnerability.
  • If an upgrade is not immediately possible, restrict the use of Flex accounts backend to trusted administrators and remove the Admin.users role from operators who do not need it.
  • Consider disabling the admin.super permission for all users and auditing group memberships to ensure no account has unintended super‑admin access.

Generated by OpenCVE AI on September 26, 2026 at 15:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 30 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Sat, 26 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Description Grav CMS 2.0.14 through 2.0.24 contains a privilege escalation vulnerability in the group and account blueprints. The access map is gated by a `security@: admin.super` guard that is resolved by the field's exact path, so a submitted flat dot-notation key such as `access.admin.super` (instead of the nested `access[admin][super]`) matches no blueprint rule, survives BlueprintSchema::filterArray() and flattening, and is written by FlexObject::update() via setNestedProperty(), which splits on `.` and reconstructs the nested value. An authenticated backend operator using the flex accounts backend who holds admin.users but not admin.super can therefore grant admin.super to their own account or to a group they belong to and escalate to full super-admin, gaining control over configuration, plugin and theme installation, the file manager, and all accounts. Fixed in 2.0.25, which drops any dotted key whose ancestor path is disabled or marked validate.ignore.
Title Grav CMS 2.0.14 through 2.0.24 Privilege Escalation via Blueprint Guard Bypass
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-639
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-30T14:57:47.995Z

Reserved: 2026-09-26T02:34:55.635Z

Link: CVE-2026-100670

cve-icon Vulnrichment

Updated: 2026-09-30T14:57:42.432Z

cve-icon NVD

Status : Deferred

Published: 2026-09-26T14:16:50.583

Modified: 2026-09-30T15:22:15.837

Link: CVE-2026-100670

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T22:28:36Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key