GitHub Advisoryadvisory · Packagist
GHSA-g3cp-pq72-hjpv starcitizentools/citizen-skin allows stored XSS in menu heading message
MEDIUM
Official page ↗
- Aliases
- CVE-2025-49579
- Ecosystem
- Packagist
- Packages
- starcitizentools/citizen-skin
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
- Weaknesses
- CWE-79
- Reviewed
- 2025-06-13
Affected packages
• Packagist starcitizentools/citizen-skin: >= 2.4.2, < 3.3.1 → fixed in 3.3.1
Description
Summary
All system messages in menu headings using the Menu.mustache template are inserted as raw HTML, allowing anybody who can edit those messages to insert arbitrary HTML into the DOM.
Details
The system messages for menu headings are inserted unescaped into raw HTML:
https://github.com/StarCitizenTools/mediawiki-skins-Citizen/blob/072e4365e9084e4b153eac62d3666566c06f5a49/templates/Menu.mustache#L8-L10
PoC
1. Go to any article using citizen with the `uselang` parameter set to `x-xss`
2. A large number of alerts will be shown for various messages, e.g.:
On the main page of my test wiki, the following messages were shown: `navigation`, `notifications`, `user-interface-preferences`, `personaltools`, `variants`, `views`, `associated-pages`, `cactions` and `toolbox`.
Impact
This impacts wikis where a group has the `editinterface` but not the `editsitejs` user right.
Related
Alias · CVE (1)
- CVE-2025-49579 Citizen is a MediaWiki skin that makes extensions part of the cohesive experience. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen/security/advisories/GHSA-g3cp-pq72-hjpv web
- https://nvd.nist.gov/vuln/detail/CVE-2025-49579 advisory
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen/commit/54c8717d45ce1594918f11cb9ce5d0ccd8dfee65 web
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen/commit/93c36ac778397e0e7c46cf7adb1e5d848265f1bd web
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen package