GitHub Advisoryadvisory · Packagist
GHSA-86xf-2mgp-gv3g starcitizentools/citizen-skin allows stored XSS in search no result messages
MEDIUM
Official page ↗
- Aliases
- CVE-2025-49576
- 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.31.0, < 3.3.1 → fixed in 3.3.1
Description
Summary
The `citizen-search-noresults-title` and `citizen-search-noresults-desc` system messages are inserted into raw HTML, allowing anybody who can edit those messages to insert arbitrary HTML into the DOM.
Details
The system messages are inserted as raw HTML by the mustache template:
https://github.com/StarCitizenTools/mediawiki-skins-Citizen/blob/407052e7069bdeae927d6f1a2a1c9a45b473bf9a/resources/skins.citizen.search/templates/TypeaheadPlaceholder.mustache#L8-L9
PoC
1. Edit `citizen-search-noresults-title` and `citizen-search-noresults-desc` to `` and `` (script tags don't work here due to the way the HTML is inserted)
2. Open the search bar and search for a page that doesn't exist to get the "no results" messages to show up
Impact
This impacts wikis where a group has the `editinterface` but not the `editsitejs` user right.
Related
Alias · CVE (1)
- CVE-2025-49576 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-86xf-2mgp-gv3g web
- https://nvd.nist.gov/vuln/detail/CVE-2025-49576 advisory
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen/commit/93c36ac778397e0e7c46cf7adb1e5d848265f1bd web
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen/commit/a0296afaedbe1a277337a2d8f1da83cb3a79b9ab web
- https://github.com/StarCitizenTools/mediawiki-skins-Citizen package