Skip to main content

Grav Admin Plugin EUVDEUVD-2025-200098

| CVE-2025-66312 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2025-12-01 security-advisories@github.com GHSA-rmw5-f87r-w988
6.2
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to Grav admin panel
  2. Delivery
    POST payload to /admin/accounts/groups/Grupo via data[readableName]
  3. Exploit
    Script stored server-side
  4. Execution
    Victim admin opens group/user page
  5. Persist
    Payload executes in victim browser
  6. Impact
    Session 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv2 – 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)
v1 Mar 15, 2026 - 13:34 CVSS 5.4

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

grav < 1.11.0-beta.1

Affected Packages

composer getgrav/grav fix: 1.8.0-beta.27
euvd grav fix: 1.11.0-beta.1

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

Vendor (github) PRIMARY 6.2 MEDIUM
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
vuln.today AI 4.8 MEDIUM

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

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

5
CVSS changed
Sep 26, 2026 - 00:22 NVD
5.4 (MEDIUM) 6.2 (MEDIUM)
Patch released
Mar 15, 2026 - 13:34 nvd
Patch available
PoC Detected
Dec 03, 2025 - 21:56 vuln.today
Public exploit code
CVE Published
Dec 01, 2025 - 22:15 cve.org
MEDIUM 6.2
CVE Published
Dec 01, 2025 - 22:15 nvd
MEDIUM 5.4

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

Why It Matters

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.

Business Impact: Low
Compensating Controls

Apply vendor patch. If patching is delayed: implement CSP headers, enable HttpOnly cookies, deploy WAF XSS rules.

Threat Intelligence Overview

EPSS Score
0.0%
Top 89% exploitable
Prevalence
Low
Grav is a niche open-source flat-file CMS, mostly small sites and hobbyists
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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.0%
Patch available Yes
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
Low

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +31
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.

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