Coordinated Disclosure Timeline

Summary

The MouseTooltipTranslator browser extension is vulnerable to SSRF attacks. A malicious website may be able to coerce the extension to send a GET request to an arbitrary URL.

Project

MouseTooltipTranslator

Tested Version

0.1.127

Details

Blind SSRF in pdf.mjs (GHSL-2024-018)

The pdf.mjs script uses the URL parameter from the current URL as the file to download and display to the extension user.

pdf.mjs

fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {
      if (!(0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.validateResponseStatus)(response.status)) {
        throw (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.createResponseStatusError)(response.status, url);
      }

Because pdf.mjs is imported in viewer.html and viewer.html is accessible to all URLs, an attacker can force the user’s browser to make a request to any arbitrary URL.

manifest.json

  "web_accessible_resources": [{
    "resources": ["pdfjs/web/viewer.html", "ocr.html", "opencvHandler.html", "videoHandler.js","googleDocInject.js","subtitle.js"],
    "matches": ["<all_urls>"]
  }],

Impact

This issue may lead to Privilege Escalation. A SSRF breaks the integrity of servers running on a private network. A user of the browser extension may have an local server with dangerous functionality, which is assumed to be safe due to network segmentation. Upon receiving a request instantiated from an attacker, this integrity is broken.

CVE

Credit

This issue was discovered and reported by GHSL team member @Kwstubbs (Kevin Stubbings).

Contact

You can contact the GHSL team at securitylab@github.com, please include a reference to GHSL-2024-018 in any communication regarding this issue.