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
- 2025-03-03 - CVE-2025-25303 published to NVD via GitHub Security Advisory GHSL-2024-018
- 2026-06-17 - Last updated in NVD database
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.
# 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.

