Skip to main content

Grav CMS EUVDEUVD-2026-107902

| CVE-2026-114660 HIGH
Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') (CWE-470)
2026-10-22 VulnCheck GHSA-78r2-qf6v-6gr4
7.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged page author
  2. Delivery
    Inject flex-*@ delete directives into page frontmatter
  3. Exploit
    Higher-privileged user opens crafted page
  4. Execution
    Directives execute in victim's session
  5. Impact
    Protected 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

grav 2.0.0 <2.2.5

Affected Packages

euvd grav fix: 2.2.5

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

Vendor (VulnCheck) PRIMARY 7.0 HIGH
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
vuln.today AI 6.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 22, 2026 - 03:01 EUVD
CVE Published
Oct 22, 2026 - 01:43 cve.org
HIGH 7.0

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche flat-file PHP CMS, limited enterprise deployment footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Grav

View all
CVE-2025-66294 HIGH POC
8.7 Dec 01

Server-side template injection (SSTI) in Grav (getgrav/grav) prior to 1.8.0-beta.27 allows an authenticated attacker hol

CVE-2025-66301 HIGH POC
8.6 Dec 01

Broken access control in Grav CMS (CWE-285) before 1.8.0-beta.27 lets an authenticated editor-level user escalate their

CVE-2025-50286 HIGH POC
8.1 Aug 06

A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug

CVE-2024-34082 CRITICAL POC
9.9 May 15

Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a

CVE-2021-47812 CRITICAL POC
9.8 Jan 16

GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv

CVE-2026-65008 CRITICAL POC
9.3 Jul 21

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

CVE-2026-75827 CRITICAL POC
9.3 Aug 18

Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri

CVE-2026-75837 CRITICAL POC
9.3 Aug 18

Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm

CVE-2026-75828 CRITICAL POC
9.3 Aug 18

Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past

CVE-2025-66844 CRITICAL POC
9.1 Dec 15

Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make

CVE-2025-66299 HIGH POC
8.8 Dec 01

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

CVE-2026-72819 HIGH POC
8.7 Aug 14

Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy