Skip to main content

Grav Guestbook CVE-2026-109322

| EUVDEUVD-2026-97624 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-12 VulnCheck GHSA-44rc-569f-hxfg
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Submit guestbook entry with markup payload
  2. Delivery
    Payload stored unescaped server-side
  3. Exploit
    Victim loads entries via AJAX Load more/Admin Load all
  4. Execution
    jQuery injects field as HTML, script executes
  5. Impact
    Session actions or data theft in victim/admin browser

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 that the Grav Guestbook plugin (before 0.5.2) be installed with public, unauthenticated entry submission enabled - the default guestbook use case - and that the vulnerable AJAX 'Load more' pagination handler or the admin 'Load all' moderation view be used to render stored entries, since those specific handlers insert the author/message fields as unescaped HTML via jQuery. Injection itself needs no authentication (PR:N). Execution is limited by required victim interaction (UI:P/UI:R): the payload only fires when another visitor triggers AJAX pagination, or, for the higher-value administrator-session impact, only on versions 0.5.0 and 0.5.1 when a moderator opens the admin view. Sites that do not use the AJAX load handlers, or that run 0.5.2+, are not exploitable.

Impact

This is a medium-severity stored XSS (CWE-79) in the Grav Guestbook plugin, scored CVSS 5.3 via the vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N). The signals are internally consistent: network vector, low complexity, no privileges, but passive user interaction (a victim must load the guestbook page/pagination), and impact is confined to the subsequent system (the victim browser) with low confidentiality and integrity impact and no availability impact - hence no direct server compromise. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the low raw score plus absent exploitation signals make this a routine-priority web hygiene issue rather than an emergency. The one factor that raises relative concern is that injection is unauthenticated and the stored payload can fire in administrator moderation sessions on 0.5.0/0.5.1, creating a privilege-boundary risk (admin session hijack/CSRF-style actions) that the aggregate CVSS score understates. Treat as a priority proportional to admin exposure: patch promptly on sites running 0.5.0/0.5.1 where moderators review submissions, lower priority otherwise.

Exploit ScenarioDerived

An unauthenticated visitor submits a guestbook entry whose author or message field contains HTML/JavaScript markup. When another visitor later loads additional entries via the AJAX 'Load more' handler - or an administrator opens the 'Load all' moderation view in 0.5.0/0.5.1 - jQuery inserts the stored field as unescaped HTML and the script executes in that user's browser. No public exploit code was identified, but the payload is trivial to craft given the unescaped-innerHTML sink.

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 – Oct 12, 2026

Stored cross-site scripting (CWE-79) in the Grav Guestbook plugin before 0.5.2 lets unauthenticated visitors persist markup in guestbook author and message fields that is later rendered as unescaped HTML through jQuery by the AJAX 'Load more' pagination handler and the admin 'Load all' moderation view. Because the CVSS vector carries PR:N, submission of the payload requires no authentication, but execution depends on victim interaction (UI:P/UI:R) - another visitor must trigger AJAX pagination, or, on versions 0.5.0 and 0.5.1 specifically, an administrator must open the moderation view, which elevates the impact to a moderation-session compromise. Rated CVSS 5.3 (vendor CVSS 4.0 AV:N/AC:L/AT:N/PR:N/UI:P/SC:L/SI:L) and independently assessed as CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N; no public exploit code and no confirmed active exploitation were identified at time of analysis.

RemediationAI

Upgrade the Grav Guestbook plugin to version 0.5.2 or later - this is the vendor-released fix per the GitHub Security Advisory https://github.com/getgrav/grav/security/advisories/GHSA-jgpj-gchm-6j29 - and confirm the upgrade actually replaced the plugin directory, since Grav's GPM may pin an older release in composer or a bundled vendor tree. If an immediate upgrade is not possible, the most effective compensating control is to disable the AJAX-driven rendering paths entirely: turn off the front-end 'Load more' pagination and avoid the admin 'Load all' moderation view (use the default paginated admin listing instead), which removes the unescaped-HTML insertion sinks at the cost of slower browsing of large guestbooks. Because the vulnerability is stored rather than reflected, patching alone does not cleanse already-persisted entries: review and purge existing guestbook submissions, or truncate the guestbook data store, to prevent previously stored payloads from firing against visitors or moderators after the upgrade. Disabling public unauthenticated submission (requiring moderation approval or CAPTCHA before entries are stored and rendered) reduces the attack surface but does not fix the underlying rendering flaw, and note that CAPTCHAs can be bypassed by manual submission. Finally, apply a restrictive Content-Security-Policy to the Grav site to blunt inline-script execution as defense in depth, recognizing that CSP will not prevent markup injection itself and may break legitimate theme scripts if enabled strictly. Additional technical detail on the vulnerable handlers is available at https://www.vulncheck.com/advisories/grav-guestbook-before-0.5.2-stored-xss-via-ajax-pagination-and-admin-views.

Affected VersionsENISA

grav-plugin-guestbook 0 <0.5.2

Affected Packages

euvd grav_plugin_guestbook fix: 0.5.2

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

The Grav Guestbook plugin is an add-on for the Grav flat-file CMS that provides a public entry-submission form plus a moderation interface. The root cause is classic CWE-79 improper neutralization of user-controlled input during web page generation: the plugin's jQuery-based AJAX handlers ('Load more' for front-end pagination and 'Load all' for the admin moderation view) concatenate the stored author and message fields directly into DOM insertion sinks such as .html()/.append() rather than escaping them or using .text(). Because the payload is written to the guestbook store first and rendered later, this is a persistent (stored) XSS rather than a reflected one, and the rendering surface differs by handler - the front-end pagination path fires for ordinary visitors, while the admin path fires in a privileged session on versions 0.5.0 and 0.5.1. The CVSS 4.0 vector supplied with the record shows a scope-limited downstream impact (SC:L/SI:L) consistent with script execution confined to the victim's browser session rather than server compromise. CPE data (cpe:2.3:a:getgrav:grav-plugin-guestbook:*:*:*:*:*:*:*:*) confirms the affected artifact is the getgrav-distributed guestbook plugin package, not the Grav core.

Know when Grav Plugin Guestbook 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.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 6.1 MEDIUM

Unauthenticated remote injection (PR:N, AV:N, AC:L) requiring a victim to load entries (UI:R); stored XSS crosses into the browser authority (S:C) with limited confidentiality/integrity impact and no availability loss.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/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
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 18:03 EUVD

DescriptionCVE.org

Grav Guestbook plugin before 0.5.2 contains a stored cross-site scripting vulnerability because its AJAX Load more and Admin Load all handlers insert stored author and message fields into the DOM as unescaped HTML via jQuery. Unauthenticated visitors can submit markup that executes in other visitors' browsers and, in versions 0.5.0 and 0.5.1, in administrator moderation sessions.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche optional plugin for the comparatively small Grav flat-file CMS
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 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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

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.

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