Browser extensions are safe only to the extent you trust their publisher, because an extension with all-sites access can read and change every page you open, including logged-in banking and email. Most damage comes from extensions that were sold, hijacked or auto-updated with malicious code after you installed them, so the audit that matters is of permissions and ownership, not of what the extension claims to do.

What an extension can actually see

A website runs inside the browser's sandbox and can only see its own origin. An extension runs outside that boundary. Depending on its permissions it can inject scripts into any page, read and modify the page's content, read cookies, watch every request the browser makes, open tabs, read the clipboard and talk to programs on your computer. Nothing on the web has that reach, which is why the extensions page deserves the same scrutiny as the list of installed applications.

The permission system tries to make this legible. When you install an extension, the browser shows a warning derived from the manifest. The trouble is that the most consequential warning, "Read and change all your data on all websites", is also the most common, because it is what an ad blocker, a password manager, a translator and a screenshot tool all legitimately need. Users learn to click through it. The table below translates the permissions that matter.

PermissionWhat it grantsLegitimate usesRisk if abused
<all_urls> / host permissions for all sitesInject scripts into and read any page, make requests as youAd blockers, password managers, accessibility toolsTotal: session theft, form capture, silent page rewriting
tabsRead URLs and titles of every open tabTab managers, session saversComplete browsing history in real time
cookiesRead and write cookies for permitted hostsCookie editors and auto-deletersSession hijacking for every permitted site
webRequestObserve request and response headersPrivacy tools, developer toolsTraffic logging; in MV3 it can no longer block or modify
scripting with host accessRun arbitrary code in pages on demandAlmost every content-modifying extensionSame as all-sites access
history, bookmarks, downloadsRead and change the named dataSync tools, download managersProfile building, planting files
clipboardReadRead whatever you copyClipboard managersCaptures passwords and wallet addresses
nativeMessagingExchange messages with an installed programPassword manager desktop appsBridge from browser to the operating system
debuggerAttach the DevTools protocol to tabsAutomation and testing toolsBypasses most remaining boundaries

Our extension analyzer reads a packaged extension's manifest and code and reports these as separate findings: broad host permissions, high-risk permissions and content scripts on every page. The point is not that any of them is disqualifying, but that each one is a claim on your trust that the publisher should be able to justify in one sentence.

How good extensions go bad

The extensions that harm people are rarely malicious on day one. The pattern that repeats is a popular, useful extension changing hands or being compromised long after it earned its user base, then shipping a malicious update that the store delivers automatically to everyone.

  • Sold to a new owner. The Great Suspender, a tab-suspending extension with millions of users, was sold in 2020 to an unknown buyer who added tracking code; Google removed it from the Web Store in 2021. Nano Adblocker and Nano Defender were sold the same year and the new owner shipped a version that manipulated users' social media accounts. An offer to buy a mid-sized extension is a routine event for developers, and the buyers are not always advertisers.
  • Developer account phished. In December 2024 the developers of the Cyberhaven extension were phished for their Web Store credentials, and attackers pushed a version that stole session cookies for specific sites. Several other extensions were hit in the same campaign. The extension's own code was fine; the publishing account was the weak point.
  • Silent data collection added. Stylish, a widely used custom-stylesheet extension, was found in 2018 to be sending complete browsing history to its owner's servers, and was removed from the Chrome and Firefox stores.
  • Remote code. Under Manifest V2 an extension could download and run code from its own server at any time, so the version reviewed by the store need not be the version running on your machine. Manifest V3 forbids remotely hosted code, which is one of its genuine security gains. We flag any attempt at it as extension loads or evaluates remote code, and code that has been deliberately made unreadable as obfuscated code.
Automatic updates are a security feature for the browser and a risk surface for extensions. The store review process catches some malicious updates; it has repeatedly missed others. Your defence is to give each extension the least access that lets it work, so that a bad update has less to take.

What Manifest V3 changed

Chrome finished disabling Manifest V2 extensions in 2025, Edge followed the same schedule, and Firefox supports both. MV3 has three consequences for safety. First, no remotely hosted code: everything the extension runs must be in the reviewed package. Second, the blocking form of webRequest is gone for ordinary extensions, replaced by declarativeNetRequest, in which the extension declares filter rules and the browser applies them without the extension seeing the traffic; this is why the ad blocker landscape changed. Third, host permissions are requested separately from API permissions, and the browser lets you restrict them per site after installation.

None of this removes the core issue. An MV3 extension with all-sites host permission and a content script can still read and rewrite every page. We report MV2 packages as Manifest V2 because they are unmaintained by definition in Chrome and Edge, not because MV3 is a guarantee.

How to audit what you have installed

  1. Open the extensions page. chrome://extensions, edge://extensions, about:addons in Firefox, or Safari > Settings > Extensions.
  2. Remove anything you have not used in a month. Every extension is a supply chain you depend on. An unused one is pure risk.
  3. For each remaining extension, read its site access. In Chrome and Edge, open Details and look at Site access; in Firefox, click the extensions toolbar button and check the per-site permission; in Safari, the extension's row shows which websites it may read. Change all-sites access to On click or On specific sites for anything that does not process every page. A password manager needs every site; a YouTube tool needs one.
  4. Check the publisher. Open the store listing. Has the publisher name changed? Is the privacy policy a real document? Do recent reviews mention new ads, redirects or slowness? A change of publisher is the single strongest reason to remove an extension until you understand why.
  5. Prefer reviewed programs. Firefox's Recommended Extensions badge means Mozilla reviews each update by hand. Safari extensions are distributed through the App Store and run inside the app sandbox. Chrome's Featured badge is a quality signal but not a manual review of every release.
  6. Check unknown packages before installing. If you have a .crx, .xpi or .zip from outside a store, run it through the extension analyzer first. Sideloaded extensions get no store review at all.

A worked example: a typical audit of a Chrome profile with nine extensions found two unused (removed), one screenshot tool with all-sites access (changed to On click), one shopping assistant whose publisher had changed to a company with no website (removed), and five that were fine. Ten minutes, and the profile went from nine processes with full page access to four.

Choosing extensions in the first place

Three questions catch most bad choices. Does the extension come from a publisher with a name, a website and a way to contact them? Does its permission set match its purpose, so that a page-colour changer is not asking for your history? Is it maintained, with an update in the past year and a responsive issue tracker? Open-source extensions with a public repository score well on all three because the code you install can be compared with the code that was reviewed. We hold our own Scan.now browser extension to the same standard and would expect you to check its permissions before installing it.

Fewer is better. Two extensions rarely justify what one does: a single content blocker with a good filter list covers ads, trackers and most fingerprinting scripts, as explained in how online tracking works. If you want cookies to expire when you leave a site, a small dedicated tool such as those described in automatically deleting cookies needs only the cookies permission, not page access.

The wider set of checks a browser should pass is in is my browser secure, and the hub for this cluster is the browser security guide.