Browser Extension Permission & Risk Monitor
Pricing
from $10.00 / 1,000 results
Browser Extension Permission & Risk Monitor
Audit Firefox extensions: what permissions they request, what data they declare collecting, a documented risk score — and an alert when an extension you trust quietly asks for more.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Sasha Ebashu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Share
An extension you installed last year can ask for more power in its next update, and nothing in the browser tells you. This Actor reads what Firefox add-ons actually request — permissions, site access and declared data collection — scores the risk, and reports when those permissions last changed.
Built on Mozilla's public add-ons API. No key, no login, no scraping.
What makes it useful on the first run
Most "monitors" can only tell you about a change after they have seen the thing twice. Mozilla publishes permissions per version, so this one reads the version history and reports the last permission change immediately — which version added what, and when.
Example from a live run: Tampermonkey — last permission change in v5.5.0 (2026‑05‑21), added
contextualIdentities. No second run required.
Risk scoring, and why you can trust the number
The score is a published formula, not a black box. It ranks what an extension could do:
| Signal | Points |
|---|---|
Access to every website (<all_urls>, *://*/*, http://*/*, https://*/*) | 40 |
nativeMessaging — can hand data to a program outside the browser | 25 |
proxy — can route all your traffic | 25 |
debugger — can drive any page | 25 |
webRequestBlocking — can rewrite traffic in flight | 15 |
webRequest, cookies, history, management | 10 each |
clipboardRead | 8 |
browsingData, bookmarks, downloads, privacy, identity, geolocation, topSites | 5 each |
tabs, scripting | 3 each |
| Each declared data-collection type (other than "none") | 10 each |
| Access to named sites only (not the whole web) | 1 each, capped at 10 |
low under 20 · medium 20–49 · high 50+. riskReasons spells out what drove the number.
A high score is not an accusation. uBlock Origin scores 73 because a content blocker genuinely
needs to see every request — and it is Mozilla-recommended, which the output also tells you
(isRecommended). The score measures capability; you supply the judgement about whether this
extension should have it.
Monitor mode
changeType | Means |
|---|---|
permissions_added | It now asks for something it did not before — the event this exists for |
permissions_removed | It gave something up |
version_change | New version, same permissions |
risk_change | The score moved for another reason |
new | First time seen in this scope |
unchanged | Nothing moved |
Input
| Field | What it does |
|---|---|
| Extensions | Slugs, full addons.mozilla.org URLs or GUIDs — paste whatever you have. |
| Search query / Category / Sort | Discover extensions instead of naming them. |
| Minimum daily users | Useful when auditing what an organisation actually runs. |
| Detect the last permission change | Reads version history. One extra request per extension. |
| Monitor mode / Output only changed | The alert behaviour above. |
Notes & limits
Properties of the source, measured rather than assumed:
- Site access hides in two different fields. Under manifest v2 host permissions sit inside
permissions; under v3 they move tohost_permissions. In the top 50 add-ons<all_urls>appears inpermissions28 times and inhost_permissionsonly 4 times — so reading just the v3 field would miss full-web access on most extensions. Both are read and merged. - "Declares nothing" and "declared none" are different, and both appear.
["none"]is an explicit promise to collect nothing; an empty or absent field is simply no declaration — 41 of the top 50 have none at all.declaresDataCollectionis true only when something was actually declared, so silence is never reported as a promise. - Permission counts vary wildly: median 13 in the top 50, maximum 397. A long list is not automatically dangerous, which is why the score weights permissions rather than counting them.
- An unknown slug is reported, not guessed. A missing add-on answers HTTP 404 and is logged as "check the slug" instead of silently disappearing from the output.
- The Actor honours your Maximum cost per run and stops when the cap is reached.
