CVE-2026-31859

Medium

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.

SeverityMedium
CVSS6.1
Exploit probability—
ProductCraftcms Craft Cms
PublishedMar 11, 2026
First seenMar 11, 2026

How to fix

Update
  • craftcms craft_cms4.17.3, 5.9.7 or later
  • craftcms/cms4.17.3, 5.9.7 or later

Affected products

ProductAffected versionsFixed in
craftcms craft_cms4.15.3 ≤ v < 4.17.3, 5.7.5 ≤ v < 5.9.74.17.3, 5.9.7
craftcms/cmsPackagist4.15.3 ≤ v < 4.17.3, 5.7.5 ≤ v < 5.9.74.17.3, 5.9.7

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.