Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged admin user
-
DeliveryCall /api/v1/flex-objects/pages API route
-
ExploitBypass page-level permission check
-
ExecutionRead, modify, or delete restricted page
-
ImpactUnauthorized content disclosure or tampering
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Alternate path protection
|
| Exploitation Conditions | Exploitation requires an authenticated, non-super Grav user account that has been granted the api.access permission together with either admin.pages or admin.configuration.pages, and the installation must run Flex Objects plugin versions 1.4.0 through 1.4.16. The bypass is triggered specifically through the generic /api/v1/flex-objects/pages API routes, which enforce only directory-level admin.pages checks and skip the api.pages.read/write and page-level permission rules. The key limiting factor is that the attacker must already possess a valid restricted admin/editor account - there is no anonymous or unauthenticated path - so the flaw primarily enables privilege escalation past intended per-page restrictions rather than external compromise. Super-user accounts and sites not exposing the Flex Objects Pages API are unaffected. |
| Impact | This is a moderate-priority authorization-bypass flaw, not a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network-reachable, low-complexity exploitation but requires an already-authenticated low-privileged account (PR:L) that holds api.access plus admin.pages or admin.configuration.pages - so the attacker must already be a provisioned, non-super back-end user, which sharply narrows the realistic threat to insiders or compromised editor accounts rather than anonymous internet attackers. There is no EPSS score, no CISA KEV listing, and no public POC referenced in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. A notable conflict exists in the impact metrics: the supplied CVSS 4.0 vector rates only VC:H (confidentiality) with VI:N/VA:N, yet the description explicitly states attackers can 'modify content or delete pages,' which is an integrity (and arguably availability) impact - the vendor's own vector appears to understate integrity impact; verify with the GHSA advisory. Overall this is a legitimate privilege-boundary bug worth patching on a normal cycle, but the authentication prerequisite keeps real-world risk below what the 7.1 score alone might suggest. |
| Exploit ScenarioDerived | A content editor or other non-super user who has been granted api.access and admin.pages (but intentionally restricted from certain pages) sends requests to the generic /api/v1/flex-objects/pages endpoint. Because those routes only check directory-level admin.pages permissions and ignore the Pages API's api.pages.read/write and page-level rules, the user reads frontmatter/source, edits, or deletes pages they were explicitly denied. No public exploit code is referenced, but the attack requires only ordinary authenticated API calls with low complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Authorization bypass in the Grav Flex Objects plugin 1.4.0 through 1.4.16 lets authenticated, non-super users holding api.access plus either admin.pages or admin.configuration.pages read page source and frontmatter, modify content, and delete pages they are explicitly denied, because the generic /api/v1/flex-objects/pages routes enforce only directory-level admin.pages checks instead of the Pages API's api.pages.read/write and page-level permission rules. Scored 7.1 with an independent assessment of high confidentiality and high integrity impact (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N), the flaw is a privilege-escalation problem past intended per-page restrictions rather than an anonymous compromise path - the attacker must already hold a valid restricted admin or editor account, and super-user accounts are unaffected. No public exploit code has been identified at time of analysis and the issue is not in CISA KEV, so this is a moderate-priority remediation item rather than a drop-everything emergency.
RemediationAI
Vendor-released patch: upgrade the Flex Objects plugin to 1.4.17 or later per the Grav security advisory at https://github.com/getgrav/grav/security/advisories/GHSA-2pvc-r9gj-mcpf, and verify the installed plugin version through the Grav admin plugin list or composer before assuming the fix is in place. Where upgrading must be staged, compensating controls are: revoke api.access from any non-super account that does not strictly require API access (side effect: those accounts lose all programmatic/API functionality, including legitimate editor tooling); strip admin.pages and admin.configuration.pages from low-trust roles and confine page editing to accounts that already have full trust (side effect: editors lose the ability to create or reorganize pages through the admin UI); and block or restrict /api/v1/flex-objects/pages at the reverse proxy for non-privileged source ranges or sessions (side effect: legitimate Flex Objects admin and automation workflows that rely on that endpoint will break, so scope the rule rather than removing the route entirely). Super-user accounts are unaffected by the bypass, so review any recent page content, frontmatter, and deletions authored by non-super accounts and enable request logging on the Flex Objects API routes to detect attempts. Relying on page-level ACLs alone is not a valid mitigation, since the flaw is precisely that the Flex Objects route does not evaluate them.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Grav is a flat-file PHP CMS whose admin authorization model layers account groups, the admin.* permission family (admin.pages, admin.configuration.pages, admin.super), and an api.access gate with finer-grained api.pages.read/write scopes; page-level ACLs are normally inherited down the page hierarchy. The Flex Objects plugin exposes generic CRUD-style routes under /api/v1/flex-objects/<type>, and for directory type 'pages' those routes resolved permissions against the directory-level admin.pages setting only. That makes the generic route an alternate path (CWE-424, Improper Protection of Alternate Path) that reaches the same page objects as the dedicated Pages API while skipping the api.pages.read/write scopes and per-page rules - so a restricted editor who is denied a specific page via page-level ACLs can still reach it via the Flex Objects route. CPE data (cpe:2.3:a:getgrav:grav-plugin-flex-objects:*:*:*:*:*:*:*:*) confirms the affected component is the plugin itself rather than the Grav core, with the vulnerable range spanning 1.4.0 to 1.4.16 and 1.4.17 as the first fixed release.
Know when Grav gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated low-priv API user (PR:L), network/low-complexity; description states read, modify, and delete of denied pages, so both C:H and I:H, unlike the input's VI:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Grav Flex Objects plugin 1.4.0 before 1.4.17 contains an authorization bypass because its generic /api/v1/flex-objects/pages API routes check only directory-level admin.pages permissions, without enforcing the Pages API's api.pages.read/write permissions or page-level permissions rules. Authenticated non-super users with api.access and admin.pages or admin.configuration.pages permissions can read page source and frontmatter, modify content, or delete pages they are denied.
Technical POC Analysis
CWE-424 (Improper Protection of Alternate Path), with the advisory also tagging CWE-863 (Incorrect Authorization).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The Grav Flex Objects plugin (versions 1.4.0 through 1.4.16) contains an authorization bypass that lets restricted admin and editor accounts exceed their intended per-page permissions - reading page source and frontmatter, altering content, and deleting pages they are explicitly denied. Only delegated non-super users holding both api.access and admin.pages or admin.configuration.pages can exploit it; anonymous visitors and super-user accounts are unaffected. Leadership should care because it undermines the delegated-editor permission model that governs CMS content integrity and confidentiality across any site running the affected plugin.
No vendor-released patch identified at time of analysis. Interim mitigations: strip api.access and admin.pages/admin.configuration.pages from non-super accounts that do not require them, restrict or block access to /api/v1/flex-objects/pages routes at the web server, proxy, or WAF layer, temporarily disable the plugin's API routes where operationally feasible, and closely monitor page revision history and API logs for unauthorized content reads, modifications, or deletions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Server-side template injection (SSTI) in Grav (getgrav/grav) prior to 1.8.0-beta.27 allows an authenticated attacker hol
Broken access control in Grav CMS (CWE-285) before 1.8.0-beta.27 lets an authenticated editor-level user escalate their
A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug
Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a
GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv
Remote code execution in Grav CMS 2.0.4 (fixed in 2.0.7) lets an authenticated user holding the admin.pages or api.pages
Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri
Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm
Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past
Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make
Grav is a file-based Web platform. Prior to 1.8.0-beta.27, Grav CMS is vulnerable to a Server-Side Template Injection (S
Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary
EUVD-2026-107901
GHSA-7hqv-ch9q-jw4v
NVD
CVE.org
EPSS
Exploit-DB