Citizen Short Description stored XSS vulnerability through wikitext
High severity
GitHub Reviewed
Published
Jul 3, 2025
in
StarCitizenTools/mediawiki-extensions-ShortDescription
•
Updated Jul 3, 2025
Package
Affected versions
>= 4.0.0, < 4.0.1
Patched versions
4.0.1
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 are not properly sanitized by the ShortDescription before being inserted as HTML using
mw.util.addSubtitle
, allowing any user to insert arbitrary HTML into the DOM by editing a page.Details
The description provided by the user via the
{{SHORTDESC:}}
parser function is insufficiently sanitized by thesanitize()
function, as html entities are decoded:https://github.com/StarCitizenTools/mediawiki-extensions-ShortDescription/blob/7244b1e8b5cb6dbd7e546c5be7fed8a56e33d065/includes/Hooks/ParserHooks.php#L147-L159
Via JS, the short description is then passed to
mw.util.addSubtitle
, which inserts it as raw HTML:https://github.com/StarCitizenTools/mediawiki-extensions-ShortDescription/blob/7244b1e8b5cb6dbd7e546c5be7fed8a56e33d065/modules/ext.shortDescription.js#L8
https://github.com/wikimedia/mediawiki/blob/96372101b3c579d9992e8a31a3ccd90a937cac47/resources/src/mediawiki.util/util.js#L552-L563
PoC
$wgShortDescriptionEnableTagline
is set totrue
(this is the default){{SHORTDESC:<img src="" onerror="alert('shortdescription xss')">}}
Impact
Arbitrary HTML can be inserted into the DOM by any user, allowing for JavaScript to be executed.
References