Grav CMS
CVE-2025-66843
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain low-privileged editor account
-
DeliveryInject JavaScript into editable page field
-
ExploitPayload stored server-side in page
-
ExecutionAdmin or other user views/edits page
-
PersistScript executes in victim's session
-
ImpactHijack session or act as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated low-privileged user account that holds permission to edit page content in the Grav admin/page-editing functionality - i.e. a multi-author or delegated-editor deployment; a single-admin install with no untrusted editors is not meaningfully exposed. The payload is injected into editable page fields and stored server-side, but execution is gated on required user interaction (UI:R): a second user must view or edit the affected page before the script runs. Affected versions are Grav prior to v1.7.49.5; upgrading to v1.7.49.5 or later remediates. The principal limiting factors are the pre-existing editor privilege and the victim-interaction requirement, which together reduce realistic risk below the raw network-vector reading. |
| Impact | This is a moderate-severity Stored XSS (CVSS 5.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) that realistically sits in the medium-priority band rather than the drop-everything tier. The CVSS vector confirms network reachability and low attack complexity, but materially constrains exploitation: PR:L means the attacker must already hold an authenticated low-privileged content-editor account, and UI:R means a second user must view or edit the poisoned page for the payload to fire. The scope change (S:C) and C:L/I:L reflect that the injected script executes in the browser context of other users - potentially including administrators - which is the real amplification path. On the exploitation side, publicly available exploit code exists (referenced GitHub issue), but there is no CISA KEV listing and no EPSS score was provided in the input, so there is no evidence of active or widespread exploitation; POC availability and active exploitation are distinct signals and should not be conflated. No SSVC decision data was supplied. Net: a credible, patchable abuse-of-privilege web flaw whose real-world risk is gated by the need for a pre-existing low-priv account and victim interaction, most dangerous in multi-author Grav installs where a low-trust editor can escalate against higher-privileged users. |
| Exploit ScenarioDerived | A multi-author Grav site grants a low-trust contributor edit permissions on content. That contributor saves a page with a malicious <script> payload in an editable field; the payload persists server-side and executes in the browser of any admin or editor who later opens or previews that page, enabling session/cookie theft or actions in the victim's authenticated context. Public exploit code for this issue is already available, lowering the barrier to reproduction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Stored cross-site scripting in Grav CMS before 1.7.49.5 allows an authenticated low-privileged user with page-editing permissions to inject malicious JavaScript into editable fields, which is stored server-side and executes when another user views or edits the affected page. This requires user interaction from a second user and is only meaningful in multi-author or delegated-editor deployments; publicly available exploit code exists. The vendor has addressed the issue in Grav 1.7.49.5, and the CVSS vector (5.4, PR:L, UI:R) indicates moderate severity that is best prioritized as medium risk.
RemediationAI
Upgrade to Grav 1.7.49.5 or later, which contains the vendor's fix for the stored XSS vulnerability. This is the primary remediation and should be applied immediately in multi-author or delegated-editor deployments where untrusted users have page-editing permissions. If immediate upgrade is not possible, consider restricting page-editing permissions to fully trusted users only, as the vulnerability requires an authenticated low-privileged account with edit rights; however, this may impact collaborative workflows. Additionally, enforce a strong Content Security Policy (CSP) to mitigate script execution effects, but note that CSP is a defense-in-depth measure and not a replacement for patching. The public exploit code at https://github.com/Yohane-Mashiro/grav_cve/issues/1 underscores the urgency for exposed instances.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in composer
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 content management system (CMS) written in PHP. The vulnerability resides in the page editing functionality, where user-supplied content is stored without proper sanitization and later rendered without output encoding, leading to stored cross-site scripting (CWE-79). The CPE string cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* indicates all versions prior to 1.7.49.5 are affected. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N shows that an attacker with low privileges (PR:L) can inject a payload over the network (AV:N) with low attack complexity (AC:L), but a victim must interact (UI:R) by viewing or editing the page. The scope is changed (S:C) because the injected script runs in the context of the victim's browser, potentially affecting resources beyond the vulnerable component. Confidentiality and integrity impacts are low (C:L/I:L), and availability is not impacted (A:N).
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
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Authenticated editor privilege gives PR:L, stored payload needs a victim to view the page so UI:R, cross-context script execution in another user's browser gives S:C with C:L/I:L and no availability impact.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
grav before v1.7.49.5 has a Stored Cross-Site Scripting (Stored XSS) vulnerability in the page editing functionality. An authenticated low-privileged user with permission to edit content can inject malicious JavaScript payloads into editable fields. The payload is stored on the server and later executed when any other user views or edits the affected page.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Affected Products (CPE)NVD
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
NVD
CVE.org
EPSS
GitHub
Exploit-DB