CVE-2026-32273
Stored XSS in Discourse Category Description API Updates
Publication date: 2026-03-31
Last updated on: 2026-04-09
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| discourse | discourse | 2026.3.0 |
| discourse | discourse | From 2026.1.0 (inc) to 2026.1.3 (exc) |
| discourse | discourse | From 2026.2.0 (inc) to 2026.2.2 (exc) |
| discourse | discourse | 2026.3.0 |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |
Attack-Flow Graph
AI Powered Q&A
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The vulnerability is a Cross-Site Scripting (XSS) issue that allows malicious script injection via the API when updating category descriptions. This can lead to limited data exposure and limited data modification, as indicated by the CVSS impact metrics.
While the CVE description and resources do not explicitly mention compliance with standards such as GDPR or HIPAA, XSS vulnerabilities can potentially impact compliance by exposing user data or enabling unauthorized data manipulation, which may violate data protection and privacy requirements.
Mitigating this vulnerability by applying the provided patches and enforcing strict Content Security Policies (CSP) can help reduce the risk of non-compliance related to data confidentiality and integrity.
Can you explain this vulnerability to me?
CVE-2026-32273 is a Cross-Site Scripting (XSS) vulnerability in the Discourse open-source discussion platform. It occurs because the API endpoint that updates category descriptions does not properly sanitize the description string. This allows an attacker to inject malicious script code into the category description, which can then be executed in the context of the web application.
The vulnerability affects Discourse versions from 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. The issue was fixed by adding input sanitization on the update endpoint and synchronizing the category description with the linked category topic's original post to maintain consistency.
How can this vulnerability impact me? :
This vulnerability can allow an attacker with some privileges to inject malicious scripts into category descriptions via the API. When other users view these descriptions, the injected scripts can execute in their browsers, potentially leading to unauthorized actions such as stealing session cookies, performing actions on behalf of users, or displaying misleading content.
The CVSS v3.1 base score of 5.4 indicates a moderate severity, with low confidentiality and integrity impacts but no availability impact. Exploitation requires network access, low complexity, some privileges, and user interaction.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability involves Cross-Site Scripting (XSS) via the API endpoint used to update category descriptions in Discourse. Detection can focus on monitoring API requests that update category descriptions for suspicious or malicious script tags in the description field.
You can detect attempts to exploit this vulnerability by inspecting API traffic for payloads containing script tags or other potentially malicious HTML content in the category description updates.
- Use web server or proxy logs to search for API calls to the category update endpoint with suspicious input, for example, by searching for '<script>' or similar patterns.
- Example command to search logs for suspicious script tags in API requests (assuming logs are in access.log):
- grep -i '<script>' /path/to/access.log
- If you have access to the database, query the category descriptions for presence of script tags or unsanitized HTML content.
- Example SQL snippet to find suspicious descriptions:
- SELECT id, description FROM categories WHERE description LIKE '%<script>%';
What immediate steps should I take to mitigate this vulnerability?
The primary mitigation is to update Discourse to a patched version where this vulnerability is fixed. The patched versions are 2026.1.3, 2026.2.2, and 2026.3.0.
Until you can update, it is recommended to enforce a strict Content Security Policy (CSP) to reduce the risk of XSS exploitation.
Additionally, monitor and restrict API access to trusted users only, as the vulnerability requires some privileges and user interaction.