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.
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
{{SHORTDESC:<img src="" onerror="alert('citizen shortdescription xss')">}}
to a pageArbitrary HTML can be inserted into the DOM by any user, allowing for JavaScript to be executed.
{ "nvd_published_at": "2025-07-03T20:15:23Z", "cwe_ids": [ "CWE-79" ], "github_reviewed": true, "github_reviewed_at": "2025-07-03T21:29:16Z", "severity": "HIGH" }