Citizen vulnerable to Stored XSS through short descriptions
Date: 2025-07
Affected: composer/starcitizentools/citizen-skin
Attack vector: xss
Category: vulnerability-disclosure
Severity: High
CVE: CVE-2025-53368
CVE-2025-53370
CWE: CWE-79
CVSS: 8.6 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L)

### Summary Short descriptions set via the [ShortDescription extension](https://www.mediawiki.org/wiki/Extension:ShortDescription) are inserted as raw HTML by the Citizen skin, allowing any user to insert arbitrary HTML into the DOM by editing a page. ### Details The `shortdesc` property, which contains unsanitized user input, is retrieved from the OutputPage and returned as the tagline: https://github.com/StarCitizenTools/mediawiki-skins-Citizen/blob/0d8a44011e02a081618359a1e90f462478e807aa/includes/Components/CitizenComponentPageHeading.php#L249-L251 The tagline is then provided to the template data: https://github.com/StarCitizenTools/mediawiki-skins-Citizen/blob/0d8a44011e02a081618359a1e90f462478e807aa/includes/Components/CitizenComponentPageHeading.php#L270-L275 The template then inserts the tagline into raw HTML without doing any escaping: https://github.com/StarCitizenTools/mediawiki-skins-Citizen/blob/0d8a44011e02a081618359a1e90f462478e807aa/templates/PageHeading.mustache#L12 ### PoC 1. Enable Citizen and ShortDescription 2. Add `{{SHORTDESC:&lt;img src="" onerror="alert('citizen shortdescription xss')"&gt;}}` to a page 3. Visit the page ![image](https://github.com/user-attachments/assets/d45f3626-c5eb-4477-86af-d15d3a1edb96) ![image](https://github.com/user-attachments/assets/84a8c447-d441-4bd6-b6d6-48e504527c4e) ### Impact Arbitrary HTML can be inserted into the DOM by any user, allowing for JavaScript to be executed.


Mitigations:

Architectural layers (MAESTRO):