Citizen vulnerable to Stored XSS through short descriptions
High severity
GitHub Reviewed
Published
Jul 3, 2025
in
StarCitizenTools/mediawiki-skins-Citizen
•
Updated Jul 3, 2025
Package
Affected versions
>= 1.9.4, < 3.4.0
Patched versions
3.4.0
Description
Published by the National Vulnerability Database
Jul 3, 2025
Published to the GitHub Advisory Database
Jul 3, 2025
Reviewed
Jul 3, 2025
Last updated
Jul 3, 2025
Summary
Short descriptions set via the ShortDescription extension 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
{{SHORTDESC:<img src="" onerror="alert('citizen shortdescription xss')">}}
to a pageImpact
Arbitrary HTML can be inserted into the DOM by any user, allowing for JavaScript to be executed.
References