Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate with admin.pages permission
-
DeliveryCraft bracket-free JS payload in shortcode attribute
-
ExploitSave page - payload persists server-side
-
InstallVictim admin views page in browser
-
C2Angle-bracket filter bypassed, script executes
-
ExecuteAdmin nonce exfiltrated to attacker
-
ImpactAttacker hijacks admin session
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 the attacker to hold the admin.pages permission within Grav CMS - this is a non-default permission granted explicitly to user accounts and is not available to unauthenticated visitors or standard subscriber-level users. The shortcode-core plugin must be installed and active (it is included in the default Grav package). A second user - specifically one who can trigger page rendering, such as an administrator - must view the page containing the injected shortcode attribute after it is saved. The impact of nonce theft is limited to the session of the viewing user at the time of execution; it does not provide persistent server-side access on its own. Exploitation is limited to installations where the admin.pages permission has been delegated to users who are not fully trusted. |
| Impact | The CVSS 4.0 score of 5.1 (AV:N/AC:L/AT:N/PR:L/UI:P/SC:L/SI:L) correctly positions this as medium severity. The low-privilege requirement (admin.pages permission, PR:L) is a meaningful barrier - this is not a zero-auth vulnerability. The passive user interaction (UI:P) is also a realistic constraint, though for stored XSS it is virtually guaranteed since admins regularly review content. The most dangerous element is the impact chain: a content editor (lower privilege) can compromise an administrator (higher privilege) through nonce theft, representing a privilege-escalation-via-XSS pattern that CVSS alone understates. No EPSS data was provided, no KEV listing exists, and no POC has been identified in available intelligence. Real-world risk is moderate for organizations where content editing permissions are granted broadly; risk is low for installations with tightly controlled admin.pages delegation. The missing version ceiling in CPE data means the scope of affected deployments cannot be precisely bounded from current intelligence alone. |
| Exploit ScenarioDerived | An attacker who holds admin.pages permission - such as a lower-privileged content editor - crafts a shortcode attribute containing a bracket-free JavaScript payload (e.g., an event handler like |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 21, 2026
Stored XSS in Grav CMS shortcode-core attribute handlers allows authenticated users with admin.pages permission to inject persistent JavaScript payloads that bypass the CMS's XSS detection filter and execute in any visitor's browser. The filter flaw is root-cause critical: it only flags payloads containing literal angle brackets, leaving event-handler and attribute-based injection vectors entirely unblocked. When an administrator views an affected page, the injected script can steal admin session nonces, enabling full account takeover. No public exploit code or CISA KEV listing has been identified at time of analysis, but the impact chain - from low-privilege content editor to admin session hijack - is straightforward.
RemediationAI
Consult the vendor's GitHub Security Advisory at https://github.com/getgrav/grav/security/advisories/GHSA-q5fw-vpqc-fgph for the specific patched version - an exact fixed release version was not independently confirmed in the available intelligence, so the advisory is the authoritative source. Until a patch is applied, the most effective compensating control is to revoke or tightly restrict the admin.pages permission to only fully trusted users, since this permission is the sole prerequisite for exploitation. Disabling the shortcode-core plugin entirely removes the attack surface but will break any pages relying on shortcode syntax. Deploying a Content Security Policy (CSP) header that disallows inline scripts (script-src 'self') reduces the impact of any injected payload, though CSP configuration must be tested against legitimate Grav functionality to avoid breakage. Generic WAF rules that block angle brackets in request bodies will not mitigate this vulnerability, as the bypass specifically avoids angle brackets.
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. The shortcode-core plugin provides a templating shortcode syntax that allows page authors to embed rich content via bracketed parameters. The attribute handlers in shortcode-core parse and render user-supplied parameter values into HTML output. The CWE-79 root cause is an incomplete input sanitization strategy: the XSS scan relies on detecting literal '<' or '>' characters in attribute values, which blocks only the most naive payloads (e.g., <script>) while leaving event-handler injections (e.g., onmouseover=fetch(...)) and other bracket-free payloads unexamined. The affected CPE is cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* - no version ceiling is specified in the available intelligence, meaning all tracked Grav versions are potentially affected until a patched release is confirmed.
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:N/VA:N/SC:L/SI:L/SA:N
Network-reachable stored XSS; low privileges (admin.pages); passive viewer required; scope changes to victim browser; low C and I for session/nonce impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Grav contains a stored cross-site scripting vulnerability in shortcode-core attribute handlers where the XSS detection scan only matches payloads containing literal angle brackets, allowing shortcode parameters to bypass validation. Attackers with admin.pages permission can inject malicious JavaScript through shortcode attributes that execute in any viewer's browser, including administrators, enabling session hijacking via admin nonce theft.
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.
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-46181
GHSA-r7ww-mw2x-mj59
NVD
CVE.org
EPSS
Exploit-DB