Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Grav admin panel
-
DeliveryPOST payload to /admin/accounts/groups/Grupo via data[readableName]
-
ExploitScript stored server-side
-
ExecutionVictim admin opens group/user page
-
PersistPayload executes in victim browser
-
ImpactSession hijack or privileged actions
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 | Requires an authenticated Grav administrator (PR:H) able to reach the admin panel and submit POST /admin/accounts/groups/[group] with a crafted data[readableName] (Display Name) value; the stored payload only executes when another user subsequently views the affected group or user configuration page (UI:A/UI:R), so a second victim's page load is required. Exploitation is limited to Grav installations running grav-plugin-admin prior to the fixed release and is not reachable by unauthenticated or anonymous visitors, which substantially narrows real-world risk to multi-admin or compromised-admin scenarios. |
| Impact | This is a genuine-but-low-priority stored XSS. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:A/VC:L/VI:L/VA:N with subsequent-system SC:H/SI:H/SA:H) scores 6.2 (Medium), and the high privilege requirement (PR:H) is the dominant limiting factor: the injectable /admin/accounts/groups/[group] endpoint sits inside the authenticated Grav admin panel, so an attacker must already hold admin-level access to write the malicious data[readableName] value. UI:A means a victim (another admin/user) must load the affected group/user page for the payload to fire. EPSS is very low at 0.04% (11th percentile) and there is no CISA KEV listing, so there is no signal of widespread automated exploitation - consistent with a flaw that requires prior admin authentication. A public PoC does exist (in the GHSA advisory, with a working <ScRipT>alert('PoC-XSS')</ScRipT> payload), but publicly available exploit code is a distinct signal from active exploitation and does not raise this to an urgent priority. Net: a real, confirmed, vendor-patched issue best treated as a privilege-boundary/defense-in-depth fix rather than an internet-facing emergency, because it is gated behind admin authentication and user interaction. |
| Exploit ScenarioDerived | An attacker with admin-panel access (e.g., a low-trust co-administrator, or a hijacked admin session) edits a Grav group and sets the Display Name (data[readableName]) to a script payload, which is stored server-side. When another administrator later opens the Groups or Users view, the stored script executes in their browser session, enabling session/cookie theft or actions on their behalf. A working proof-of-concept is published in the GHSA-rmw5-f87r-w988 advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Sep 26, 2026
Stored cross-site scripting in the Grav Admin plugin (all versions prior to 1.11.0-beta.1) lets an authenticated administrator inject arbitrary JavaScript through the data[readableName] (Display Name) field of a user group, which is then persisted server-side and executed in the browser of any other user who later opens the affected group or user configuration page. The vulnerability is reachable only by a high-privileged, already-authenticated admin (CVSS v4 vector PR:H, and the independent assessment's CVSS:3.1 PR:H/UI:R), so exploitation hinges on a second victim loading the poisoned page and is effectively limited to multi-admin or compromised-admin scenarios. Publicly available exploit code exists, including a published proof-of-concept payload, but there is no indication of active exploitation; EPSS is very low at 0.04% (11th percentile), and the vendor has released a fixed version.
Earlier versions of this analysis (1)
RemediationAI
Vendor-released patch: upgrade the Grav Admin plugin to 1.11.0-beta.1 or later, and if the bundled core package is in scope, update composer/getgrav/grav to 1.8.0-beta.27 or later; the fix commit is https://github.com/getgrav/grav-plugin-admin/commit/99f653296504f1d6408510dd2f6f20a45a26f9b0 and the vendor advisory is at https://github.com/getgrav/grav/security/advisories/GHSA-rmw5-f87r-w988. Because the flaw requires an authenticated admin to plant the payload and a second user to view the poisoned page, the highest-value compensating control is to restrict access to the /admin path (for example, IP allowlisting or an authenticating reverse proxy), which trades off remote admin usability but removes the exposure window if upgrading is delayed. Additionally, audit existing groups for suspicious data[readableName] values and clear any injected markup, keep the number of admin accounts to a minimum and enforce unique per-admin credentials so session-hijack fallout from a successful XSS is limited, and log/monitor group and user configuration changes. Note that the same upstream commit also hardened Selectize rendering and fixed related XSS advisories (GHSA-65mj-f7p4-wggq, GHSA-7g78-5g5g-mvfj, GHSA-mpjj-4688-3fxg), so applying 1.11.0-beta.1 closes those variants as well.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, 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 PHP-based flat-file CMS whose Admin plugin (grav-plugin-admin) provides the web UI for configuring the platform and managing pages, users, and groups. CVE-2025-66312 is a classic CWE-79 improper neutralization of user-controlled input in an HTML output context: the group Display Name supplied in the admin form field data[readableName] is submitted via POST to /admin/accounts/groups/[group], stored in the site's configuration, and later echoed into the rendered page without output encoding, so the payload is replayed to every subsequent viewer. The upstream fix commit (99f653296504f1d6408510dd2f6f20a45a26f9b0) addresses this class of defect by adding default HTML-escaping render functions (SafeRender.option/SafeRender.item) to the Selectize-based form fields in themes/grav/app/forms/fields/selectize.js, alongside related hardening tracked under GHSA-65mj-f7p4-wggq, GHSA-7g78-5g5g-mvfj and GHSA-mpjj-4688-3fxg, and also includes an unrelated password-reset email-enumeration fix. The CPE string cpe:2.3:a:getgrav:grav-plugin-admin:*:*:*:*:*:*:*:* identifies the Admin plugin as the affected component, and the ENISA EUVD entry (EUVD-2025-200098) records the affected range as grav < 1.11.0-beta.1. Because the sink is the administrative UI itself, the practical exploitation path runs from a privileged admin session through a stored payload to a second privileged victim's browser, which is why the integrity and confidentiality impact is assessed as low per-instance but scoped-changed (S:C) due to the cross-user, cross-privilege execution context.
Know when Grav Plugin Admin 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:H/UI:A/VC:L/VI:L/VA:N/SC:H/SI:H/SA:H
Injection needs admin access to the groups endpoint (PR:H) and a victim must view the page (UI:R); stored script runs in another user's browser (S:C, C:L/I:L).
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
5DescriptionCVE.org
This admin plugin for Grav is an HTML user interface that provides a convenient way to configure Grav and easily create and modify pages. Prior to 1.11.0-beta.1, a Stored Cross-Site Scripting (XSS) vulnerability was identified in the /admin/accounts/groups/Grupo endpoint of the Grav application. This vulnerability allows attackers to inject malicious scripts into the data[readableName] parameter. The injected scripts are stored on the server and executed automatically whenever the affected page is accessed by users, posing a significant security risk. This vulnerability is fixed in 1.11.0-beta.1.
Executive ViewAI
Organizations using This admin should be aware of moderate risk from CVE-2025-66312, a cross-site scripting vulnerability rated CVSS 5.4. Attackers could inject scripts to steal sessions or perform actions as authenticated users. Proof-of-concept code is publicly available. A patch is available and should be applied during regular vulnerability management.
Apply vendor patch. If patching is delayed: implement CSP headers, enable HttpOnly cookies, deploy WAF XSS rules.
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.
Related Vulnerabilities in Grav Admin Plugin XSS and Information Disclosure
View all 6More in Grav Plugin Admin
View allGrav Admin Plugin is an HTML user interface that provides a way to configure Grav and create and modify pages. Rated cri
grav-plugin-admin is vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').
grav-plugin-admin is vulnerable to Improper Restriction of Rendered UI Layers or Frames. Rated medium severity (CVSS 5.4
EUVD-2025-200098
GHSA-rmw5-f87r-w988
NVD
CVE.org
EPSS
VulDB
Exploit-DB