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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-116",
"CWE-79"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31859.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "4.15.3"
},
{
"fixed": "4.17.3"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "5.7.5"
},
{
"fixed": "5.9.7"
}
],
"source": "CPE_RANGE"
}
]
}