Identifying Firefox extension by ID

Hey there!

We have error logs being created fairly regularly for user(s?) with a particular Firefox extension. We are trying to identify this extension to determine the cause. I know a reverse-lookup (ID to name) service exists for Chrome extensions. Is there something similar for Firefox extensions? Thus far, I haven’t been able to find one.

The extension ID/source in question is:
moz-extension://ba9d01f7-5cbf-442b-94bf-f030a6fdc626/scripts/uninterrupt.js

Any insight that can be provided would be much appreciated.

Thanks!

2 Likes

This UID code is randomly generated by the author. What I do is:

  1. google the UID , and if that fails
  2. look in the extensions directory in the profile, unpack the .xpi file (you may have to rename it ‘.zip’) and read the manifest.

Thanks for the response. I did search for the UID; no matches. The problem is that we don’t have access to the clients whose machines are throwing the exception – we only have user agent and the Mozilla extension in question.

For traceability and security purposes, Mozilla doesn’t maintain some type of link between the extension and the author/publisher?

Thanks again,

J

The UUID after moz-extension is unique per Firefox profile. I tried searching for scripts/uninterrupt.js which found https://github.com/mandatoryprogrammer/chrome-extension-manifests-dataset/blob/89e366efc48a4eb644bf7d37ba1f916e65297f2a/manifests/mjopeoajpfbfbflifdnhpjnijpiefael.json. Looks like a Chrome extension, but maybe there is a Firefox version somewhere.

Good find… this may be just the lead I need.

Thanks for this!

In case you want to later correlate such an URL to the actual extension:
Go to about:debugging in the browser, select “This Firefox” (or other release channel name). You should then see a list of all extensions (possibly after enabling debugging, if it prompts you for it), with three entries per extension, the first one is the ID, the second one this profile specific UUID and the third one will be a moz-extension URL to the extension’s manifest. Using the last two, you should be able to find the extension that matches the error URI (you can use the find in page feature for convenience).

If this doesn’t uniquely identify which extension it is, or you just want to be very sure, you can find the extension by going to https://addons.mozilla.org/addon/<Extension ID> where you replace <Extension ID> by the ID shown in the first of the three lines. If this gives you an error page, this is likely an unlisted extension.

5 Likes

After fiddling with this for a while I came up with this:

curl --fail --location --silent https://addons.mozilla.org/firefox/downloads/latest/NAME/latest.xpi |
    bsdtar --extract --file=- --to-stdout manifest.json |
    jq --raw-output .browser_specific_settings.gecko.id

You can get the XPI URL from the “Add to Firefox” link on the relevant addon page.


Explanation:

  • curl prints the URL body to stdout by default.
  • --fail is just in case pipefail is enabled, for early exit.
  • --location is necessary to follow redirects.
  • --silent avoids printing additional stuff to the terminal.
  • bsdtar is one of seemingly very few tools which can take a zip file (XPIs are actually zip files) on stdin.
  • jq gets the relevant value from the manifest.

If you already have the XPI file you can run this instead:

bsdtar --extract --file=NAME.xpi --to-stdout manifest.json |
    jq --raw-output .browser_specific_settings.gecko.id