Skip to content
OpenAdvisories
Medium · 6.9 CVE-2026-31859 EUVD-2026-11261GHSA-fvwq-45qv-xvhv

Craft has Reflective XSS via incomplete return URL sanitization

Published Mar 11, 2026 · Updated Mar 12, 2026 · Assigned by GitHub_M

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 products

VendorProductAffectedFixed
craftcms cms >= 4.15.3, < 4.17.3, >= 5.7.5, < 5.9.7 —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist craftcms/cms >= 4.15.3, < 4.17.3 4.17.3 GHSA-fvwq-45qv-xvhv
Packagist craftcms/cms >= 5.7.5, < 5.9.7 5.9.7 GHSA-fvwq-45qv-xvhv

References