CVE-2026-61453

MEDIUM

Grav before 2.0.1 XSS via Twig String Concatenation

Title source: cna
STIX 2.1

Description

Grav v2.0.0 contains a cross-site scripting vulnerability (fixed in 2.0.1). The XSS blueprint validator (Security::detectXss()) runs on raw page content before Twig processing. When Twig content processing is enabled (twig_content.process_enabled: true), an attacker with page-write API permission can use Twig's string concatenation operator (~) to dynamically construct event handler names, dangerous tag names, or dangerous protocols at render time (e.g. {% set x = "on" ~ "error" %}). The validator sees only the harmless Twig expression and allows the content, but after Twig rendering the output (rendered via {{ page.content|raw }}) contains an active payload such as <img src=1 onerror=alert(1)>, executing arbitrary JavaScript in visitors' browsers.

References (2)

Core 2
Core References
Vendor Advisory vendor-advisory
GitHub Security Advisory (GHSA-2c4f-86xc-cr74)
https://github.com/getgrav/grav/security/advisories/GHSA-2c4f-86xc-cr74
Third Party Advisory third-party-advisory
VulnCheck Advisory: Grav before 2.0.1 XSS via Twig String Concatenation
https://www.vulncheck.com/advisories/grav-before-xss-via-twig-string-concatenation

Scores

CVSS v3 6.1
EPSS 0.0015
EPSS Percentile 5.1%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

CISA SSVC

Vulnrichment
Exploitation poc
Automatable no
Technical Impact partial

Details

CWE
CWE-79
Status published
Products (2)
getgrav/grav < 2.0.1
getgrav/grav 2.0.1
Published Jul 15, 2026
Tracked Since Jul 15, 2026