VDB
Sign up
HIGH8.6

GHSA-prmv-7r8c-794g

Citizen vulnerable to Stored XSS through short descriptions

Quick fix

GHSA-prmv-7r8c-794g — starcitizentools/citizen-skin: upgrade to the fixed version with the command below.

composer require starcitizentools/citizen-skin:^3.4.0

Details

### 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:<img src="" onerror="alert('citizen shortdescription xss')">}}` 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.

Are you affected?

Enter the version of the package you're using.

Affected packages

Packagist/starcitizentools/citizen-skin
Introduced in: 1.9.4Fixed in: 3.4.0
Fixcomposer require starcitizentools/citizen-skin:^3.4.0

References