Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-25303

CVE-2025-25303: MouseTooltipTranslator SSRF Vulnerability

CVE-2025-25303 is a server-side request forgery flaw in the MouseTooltipTranslator Chrome extension that allows attackers to force arbitrary URL requests. This article covers technical details, impact, and why patching was declined.

Published:

CVE-2025-25303 Overview

CVE-2025-25303 is a Server-Side Request Forgery (SSRF) vulnerability [CWE-918] affecting the MouseTooltipTranslator Chrome extension. The extension bundles a copy of PDF.js in pdf.mjs, which is loaded by viewer.html. Because viewer.html is declared as accessible to all URLs in the extension manifest, any web page can force the user's browser to fetch an attacker-chosen URL through the extension context. The maintainer has declined to patch the issue, stating that a fix would require disabling a core feature of the extension.

Critical Impact

Attackers can coerce the victim's browser to issue arbitrary outbound HTTP requests through the extension, enabling reconnaissance and interaction with internal or authenticated endpoints. No vendor patch is planned.

Affected Products

  • MouseTooltipTranslator Chrome extension (version 0.1.127 referenced in the advisory)
  • Any browser profile that has the extension installed and enabled
  • Web pages loaded while the extension is active

Discovery Timeline

Technical Details for CVE-2025-25303

Vulnerability Analysis

The MouseTooltipTranslator extension ships an embedded PDF viewer based on Mozilla's PDF.js. The viewer entry point viewer.html loads pdf.mjs, which reads a file (URL) parameter from its own location and fetches that resource. In a defensive configuration, this viewer page would be restricted so that only extension-internal callers could load it. Instead, the extension's manifest.json lists viewer.html under web_accessible_resources with a match pattern covering all URLs.

As a result, any attacker-controlled web page can embed or navigate to the extension's viewer URL with an arbitrary file parameter. The browser then issues the request from the extension's privileged context rather than the origin of the calling page. This allows the attacker to bypass some cross-origin restrictions and reach URLs the calling page could not reach directly.

The vulnerability is classified under CWE-918: Server-Side Request Forgery. While it does not disclose response bodies to the attacker directly, it turns every user of the extension into an unwitting request proxy.

Root Cause

The root cause is an overly permissive web_accessible_resources declaration in the extension manifest combined with unvalidated use of a URL parameter inside pdf.mjs. The viewer accepts any URL supplied in its query string and issues a fetch without origin restrictions or an allowlist. See the MouseTooltipTranslator manifest and the pdf.mjs fetch logic for the exact code paths.

Attack Vector

Exploitation requires no authentication and no user interaction beyond visiting a malicious page while the extension is installed. The attacker crafts a page that references chrome-extension://<extension-id>/viewer.html?file=<target-url> in an iframe, image, or navigation. The victim's browser resolves the request against the attacker's chosen target using the extension's fetch context. Targets can include internal network services, cloud metadata endpoints, or authenticated web applications where the user holds session cookies subject to the extension's request handling.

The advisory does not publish weaponized proof-of-concept code. Refer to the GHSL-2024-018 advisory for the maintainer discussion and technical write-up.

Detection Methods for CVE-2025-25303

Indicators of Compromise

  • Outbound HTTP requests originating from browser processes whose Referer or Origin corresponds to a chrome-extension:// URL for MouseTooltipTranslator
  • Browser fetches to internal RFC1918 addresses, 169.254.169.254, or localhost immediately after a user navigates to an untrusted page
  • Presence of the MouseTooltipTranslator extension ID in installed-extension inventories on managed endpoints

Detection Strategies

  • Inventory Chromium-based browsers for the MouseTooltipTranslator extension using enterprise browser management or endpoint software inventory queries.
  • Monitor egress proxy and DNS logs for browser-sourced requests to internal ranges that correlate with visits to unrelated third-party sites.
  • Alert on any browser request that targets cloud instance metadata services or internal admin panels where the user is not actively navigating to that resource.

Monitoring Recommendations

  • Forward browser extension inventory and proxy telemetry into a centralized data lake for cross-source correlation.
  • Baseline normal outbound destinations for corporate browsers and alert on deviations that coincide with visits to unknown domains.
  • Review browser extension change events on managed endpoints to catch installations of vulnerable or unpatched add-ons.

How to Mitigate CVE-2025-25303

Immediate Actions Required

  • Uninstall the MouseTooltipTranslator extension from managed browsers, since the maintainer has stated no patch will be issued.
  • Add the extension ID to browser enterprise policy blocklists (ExtensionInstallBlocklist for Chrome and equivalent policies for Edge) to prevent reinstallation.
  • Restrict browser access from workstations that hold sensitive internal application sessions until the extension is removed.

Patch Information

No patch is available. Per the advisory, the maintainer decided not to fix the issue because remediation would require disabling a major feature of the extension. Users must remove the extension or accept the residual risk. See the GitHub Security Advisory GHSL-2024-018 for the maintainer's statement.

Workarounds

  • Segment sensitive internal services behind authentication that does not rely on browser session cookies or IP allowlisting from user subnets.
  • Enforce egress filtering that blocks browser traffic to cloud metadata endpoints and internal management interfaces.
  • Provide translation functionality through an approved alternative extension or a server-side translation service that does not expose an open-URL viewer.
bash
# Chrome enterprise policy example: block MouseTooltipTranslator by extension ID
# Replace <EXTENSION_ID> with the ID observed in chrome://extensions
cat > /etc/opt/chrome/policies/managed/block_mousetooltiptranslator.json <<'EOF'
{
  "ExtensionInstallBlocklist": [
    "<EXTENSION_ID>"
  ]
}
EOF

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.