{"dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": {"cveId": "CVE-2026-59830", "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa", "state": "PUBLISHED", "assignerShortName": "GitHub_M", "dateReserved": "2026-07-07T15:00:50.979Z", "datePublished": "2026-09-21T21:17:38.733Z", "dateUpdated": "2026-09-21T21:17:38.733Z"}, "containers": {"cna": {"title": "Discourse: Stored XSS via unescaped actor name in post actions", "problemTypes": [{"descriptions": [{"cweId": "CWE-79", "lang": "en", "description": "CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')", "type": "CWE"}]}], "metrics": [{"cvssV3_1": {"attackComplexity": "LOW", "attackVector": "NETWORK", "availabilityImpact": "NONE", "baseScore": 5.4, "baseSeverity": "MEDIUM", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "privilegesRequired": "LOW", "scope": "CHANGED", "userInteraction": "REQUIRED", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "version": "3.1"}}], "references": [{"name": "https://github.com/discourse/discourse/security/advisories/GHSA-x6mf-p7cg-69rw", "tags": ["x_refsource_CONFIRM"], "url": "https://github.com/discourse/discourse/security/advisories/GHSA-x6mf-p7cg-69rw"}, {"name": "https://github.com/discourse/discourse/commit/dd786594ddd088657a7e6f9fefba5bd889965fe4", "tags": ["x_refsource_MISC"], "url": "https://github.com/discourse/discourse/commit/dd786594ddd088657a7e6f9fefba5bd889965fe4"}, {"name": "https://github.com/discourse/discourse/releases/tag/v2026.7.0", "tags": ["x_refsource_MISC"], "url": "https://github.com/discourse/discourse/releases/tag/v2026.7.0"}], "affected": [{"vendor": "discourse", "product": "discourse", "versions": [{"version": "< 2026.7.0", "status": "affected"}]}], "providerMetadata": {"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa", "shortName": "GitHub_M", "dateUpdated": "2026-09-21T21:17:38.733Z"}, "descriptions": [{"lang": "en", "value": "Discourse is an open-source discussion platform. Prior to 2026.7.0, the post action component failed to escape user-controlled display names before interpolating them into an HTML string passed to trustHTML. A user who could choose a crafted display name could persist markup in post action descriptions. Viewing the affected user activity streams could execute attacker-controlled script in another user's browser. This issue is fixed in version 2026.7.0."}], "source": {"advisory": "GHSA-x6mf-p7cg-69rw", "discovery": "UNKNOWN"}}}}