Skip to main content

Grav CMS CVE-2025-66843

MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2025-12-15 cve@mitre.org
5.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Obtain low-privileged editor account
  2. Delivery
    Inject JavaScript into editable page field
  3. Exploit
    Payload stored server-side in page
  4. Execution
    Admin or other user views/edits page
  5. Persist
    Script executes in victim's session
  6. Impact
    Hijack 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

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

composer getgrav/grav no fix

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

NVD PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

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.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
niche open-source flat-file CMS, modest footprint versus mainstream platforms
Exploit
POC
Public exploit code exists
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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

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

cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*

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