Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged page author
-
DeliveryInject flex-*@ delete directives into page frontmatter
-
ExploitHigher-privileged user opens crafted page
-
ExecutionDirectives execute in victim's session
-
ImpactProtected pages deleted
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
|
| Exploitation Conditions | Requires an authenticated Grav account with page-edit rights (PR:L) to author a page containing malicious flex-*@ frontmatter directives, plus a second user who also holds page-edit rights opening that page (UI:P, passive interaction) so the directives execute in their session via FlexDirectory::dynamicFlexField(). Applies to Grav 2.0.0 before 2.2.5, where the flex directive handling is reachable by default. Limiting factors: this is a confused-deputy attack that cannot be triggered without a victim viewing the crafted page, both parties must already have edit access, and the payoff is specifically unauthorized deletion of protected pages rather than code execution or data theft. |
| Impact | The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:L) yields a 7.0 'High' score, but the real-world urgency is tempered by two attacker-unfavorable metrics: PR:L means the attacker must already hold an authenticated Grav account with page-edit rights, and UI:P means a second user with edit rights must actively open the crafted page before the directives fire. This is a classic confused-deputy / access-control bypass (CWE-470 unsafe reflection) rather than a remotely automatable server takeover. No EPSS score was provided in the input, there is no CISA KEV listing, and no public exploit was referenced, so there is no evidence of active or at-scale exploitation - consistent with a vulnerability that requires an insider-like foothold plus victim interaction. One data conflict to note: the input Tags label this 'Information Disclosure,' but the CVSS vector sets VC:N (no confidentiality impact) and the impact is unauthorized page deletion (integrity/availability), so the tag is misleading and should not drive triage. Net: a genuine privilege-boundary flaw worth patching, but a targeted/insider-dependent issue rather than a mass-exploitation emergency. |
| Exploit ScenarioDerived | A low-privileged page author embeds flex-*@ directives in a page's frontmatter that invoke setStorageKey() and delete() on arbitrary Flex objects. When a different user with page-edit rights (e.g. an editor or admin) opens that page, the directives execute within the victim's session and privileges, deleting protected pages that neither the author nor the victim was authorized to remove. No public exploit code was identified at time of analysis, and the attack depends on the victim opening the malicious page. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Authenticated page editors in Grav CMS 2.0.0 through 2.2.4 can abuse flex-*@ frontmatter directives to invoke Flex object methods in another editor's session when that editor opens a crafted page, allowing unauthorized deletion of protected pages. The flaw is an access-control/confused-deputy issue in FlexDirectory::dynamicFlexField() and carries a High CVSS 4.0 score of 7.0, though exploitation requires an existing page-edit account plus a second editor opening the page. No public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Upgrade Grav CMS to 2.2.5 or later, which is the first version outside the affected range, and verify the installed version against the GHSA-95jr-q4xh-27vr advisory. If immediate upgrade is not possible, restrict page-edit rights to a small set of trusted users and review or sanitize page frontmatter for flex-*@ directives, especially calls to setStorageKey() and delete(); disabling Flex directive processing may break legitimate custom-field workflows, while tightening edit rights reduces CMS collaboration flexibility. Because the attack depends on a second page-editing user opening the crafted page, audit page revisions and newly created or modified pages for suspicious directives and monitor for unexpected deletion of protected pages. Refer to https://github.com/getgrav/grav/security/advisories/GHSA-95jr-q4xh-27vr for vendor guidance.
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 CMS whose Flex subsystem provides object storage and method dispatch for content structures. Page frontmatter can contain flex-*@ directives that are processed through FlexDirectory::dynamicFlexField(); insufficient access control allows a page author to name methods such as setStorageKey() and delete(), which then execute against Flex objects in the session of a user who later views or edits the page. CWE-470 describes the root cause class: externally controlled input is used to select which class or method is invoked, creating an unsafe-reflection-style pathway and a confused-deputy effect rather than a memory-safety vulnerability. The CPE cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* covers the Grav product, and the version-specific scope from the advisory is 2.0.0 before 2.2.5. Although a supplied tag references Information Disclosure, the described and assessed impact centers on integrity and limited availability through page deletion, not confidentiality or remote code execution.
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:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
A low-privileged page author (PR:L) plants directives that run only when another editor opens the page (UI:R); the impact is unauthorized page deletion, so C:N, I:H, A:L.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Grav from 2.0.0 before 2.2.5 contains an improper access control vulnerability in FlexDirectory::dynamicFlexField() that allows page authors to call arbitrary Flex object methods via flex-*@ directives in page frontmatter. When a user with page edit rights opens the page, directives calling setStorageKey() and delete() run in their session, deleting protected pages neither account may delete.
Technical POC Analysis
CWE-470 (unsafe reflection), with a missing-authorization component (CWE-862) noted in the same advisory.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Grav CMS releases 2.0.0 through 2.2.4 contain an unpatched access-control weakness that allows a user holding page-editing rights to have protected pages deleted under a second editor's authority, meaning a relatively low-trust contributor can destroy content they were never permitted to touch. No vendor fix is currently available, so every affected Grav site - especially those where editorial access is shared across staff, agencies, or contractors - carries ongoing risk of content loss, defacement, or removal of compliance-relevant published material. Leadership should care because the exposure is persistent rather than transient, it is driven by internal accounts rather than external attackers, and the damage surfaces on public-facing pages where reputational and regulatory consequences are immediate.
No vendor-released patch is identified at time of analysis. Interim mitigations: restrict page-edit accounts to trusted named users and remove dormant or shared editor logins; review and strip flex-*@ frontmatter directives from page content, and block them at the WAF or reverse proxy; enable deletion and content-change auditing with alerting; and maintain tested offline backups of pages and configuration to enable rapid restoration.
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
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-107902
GHSA-78r2-qf6v-6gr4
NVD
CVE.org
EPSS
Exploit-DB