Skip to main content

Grav Form Plugin EUVDEUVD-2026-60590

| CVE-2026-75107 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-18 VulnCheck GHSA-vggh-9vqg-95jr
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate with low-privilege form-authoring account
  2. Delivery
    Inject JavaScript payload into field property (prepend/append/spacer/section/option label)
  3. Exploit
    Malicious form definition stored server-side
  4. Install
    Victim loads page containing compromised form
  5. C2
    Browser renders unescaped |raw property value
  6. Execute
    Injected script executes in victim browser context
  7. Impact
    Session token or credential exfiltration to attacker

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 a valid Grav CMS account with form-authoring privileges (PR:L per CVSS 4.0 vector). The attacker must have write access to form field-definition properties - specifically prepend, append, spacer text, section text, or select option labels - within the Grav administrative interface or equivalent configuration mechanism. Passive user interaction is required: a victim must load any page that renders the compromised form (UI:P per CVSS 4.0), but no active deception of the victim is necessary. Exploitation is limited to Grav deployments where form-authoring access is granted to users who are not fully trusted administrators; single-administrator sites are not at risk unless admin credentials are separately compromised. The vulnerability is not triggerable by anonymous form submitters - the injection point is exclusively in the form schema authoring workflow, not in form submission handling.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) scoring 5.1 accurately captures the risk profile: network-accessible, low-complexity stored XSS gated on low-level privileges. The PR:L requirement is the dominant real-world risk limiter - exploitation is strictly contingent on the attacker holding a form-authoring account within Grav, ruling out anonymous exploitation. The UI:P (passive user interaction) metric is a notable risk amplifier relative to reflected XSS: victims need only load a page hosting the compromised form, with no phishing or active deception required. No EPSS score was provided in the input data, so exploitation probability cannot be quantified beyond the CVSS signal. No KEV listing exists, confirming no confirmed active exploitation at time of analysis. The subsequent-system impact metrics (SC:L/SI:L) in the CVSS 4.0 vector appropriately reflect the cross-origin JavaScript execution context affecting victim browser sessions. In multi-tenant, agency, or community Grav deployments where contributor-level users are granted form-editing rights, the PR:L threshold is easily met; single-administrator installations are not vulnerable unless admin credentials are separately compromised.

Exploit ScenarioDerived

An attacker with a contributor-level Grav CMS account opens a contact or registration form in the admin interface and inserts a JavaScript payload - such as a session-stealing script - into the 'prepend' property of a select field or the spacer text of a form section. The Grav Form Plugin renders this value through a |raw Twig filter without sanitization, embedding the live script tag in every subsequent page load of that form. All visitors - including unauthenticated public users - who load the form page execute the attacker's script in their browser context, enabling session token theft, credential harvesting, or redirection to attacker-controlled infrastructure.

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

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

Alert me

AnalysisAIv1 – Aug 18, 2026

Stored cross-site scripting in the Grav Form Plugin before version 9.1.19 allows authenticated form authors to embed persistent JavaScript payloads by supplying malicious content in field-definition properties - including prepend, append, spacer text, section text, and select option labels - which the form templates render verbatim via unescaped |raw filters and unquoted attributes. The injected script executes in every subsequent visitor's browser without any active deception required, making this a persistent, multi-victim condition for the life of the form definition. No CISA KEV listing or public exploit code has been identified at time of analysis, but the low-complexity exploitation path and PR:L privilege requirement make this a realistic threat in any Grav deployment where form-authoring access is granted to partially trusted users.

RemediationAI

Upgrade the Grav Form Plugin to version 9.1.19 or later, which introduces proper HTML escaping for all affected field-definition properties. The vendor security advisory at https://github.com/getgrav/grav/security/advisories/GHSA-5jrr-wfgh-mhg9 is the authoritative reference for patch details. If an immediate upgrade is not feasible, restrict form-authoring privileges to fully trusted administrators only, removing that capability from contributor-level or externally-supplied accounts - this eliminates the PR:L attack path entirely while the patch is staged. As a complementary measure, audit all existing form definitions for unexpected raw HTML or script tags in prepend, append, spacer, section, and select option label fields, and sanitize any discovered payloads. No functional side effects are expected from the patch, as proper escaping of decorative label fields does not alter form behavior.

Affected VersionsENISA

grav 0 <9.1.19

Affected Packages

euvd grav fix: 9.1.19

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 CMS (CPE: cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*) that renders user-facing forms through its Form Plugin using Twig templates. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) is the application of Twig's |raw filter to user-controlled field-definition properties, which explicitly bypasses Twig's automatic HTML output escaping, combined with rendering of property values in unquoted HTML attributes - a secondary injection surface. The affected properties are form field decorators and layout elements: prepend labels, append labels, spacer text, section text, and select option labels. Because these properties reside in the form schema authored by privileged users at design time, the injection is stored server-side and replayed to every visitor who loads the form, distinguishing this from reflected XSS and elevating the potential victim count significantly.

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

Vendor (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Network-reachable stored XSS requiring a low-privilege form-author account (PR:L) and passive victim page load (UI:R); scope change reflects JavaScript executing in victim browser security context.

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:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

1
Patch available
Aug 18, 2026 - 12:02 EUVD

DescriptionCVE.org

Grav Form Plugin before 9.1.19 fails to escape field-definition properties including prepend, append, spacer text, section text, and select option labels in form templates. Attackers with form authoring privileges can inject arbitrary HTML and JavaScript that executes for all form visitors through unescaped |raw filters and unquoted attributes.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche flat-file CMS with smaller enterprise footprint than major CMS platforms
Data Quality
6 sources
Confidence: High

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 No
EPSS 0.2%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

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