Vulnerability · Published Mar 11, 2026 · Assigned by GitHub_M
CVE-2026-31859Craft has Reflective XSS via incomplete return URL sanitization
Medium 6.9
In plain English
A medium-severity cross-site scripting in cms from craftcms. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 12% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
Craft is a content management system (CMS). The fix for CVE-2025-35939 in craftcms/cms introduced a strip_tags() call in src/web/User.php to sanitize return URLs before they are stored in the session. However, strip_tags() only removes HTML tags (angle brackets) -- it does not inspect or filter URL schemes. Payloads like javascript:alert(document.cookie) contain no HTML tags and pass through strip_tags() completely unmodified, enabling reflected XSS when the return URL is rendered in an href attribute. This vulnerability is fixed in 5.9.7 and 4.17.3.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Packagist | craftcms/cms | 4.17.3 | GHSA-fvwq-45qv-xvhv |
| Packagist | craftcms/cms | 5.9.7 | GHSA-fvwq-45qv-xvhv |
Affected products (as reported)
Weakness: CWE-79, CWE-116 · Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
References
- https://github.com/craftcms/cms/security/advisories/GHSA-fvwq-45qv-xvhv x_refsource_CONFIRM