
Last month I installed a well-reviewed "AI writing assistant" extension with 400,000 users and a 4.7-star rating. Within twenty minutes of poking at its network traffic, I watched it quietly POST the full text of every page I visited to a server in a jurisdiction it never disclosed. Not the pages I asked it to rewrite. Every page. Including my bank dashboard.
That extension is still live in the Chrome Web Store as I write this. And it is not an outlier. A 2023 Stanford study found that thousands of browser extensions request permissions far beyond their stated function, and researchers at various security firms have repeatedly caught popular extensions selling browsing data or injecting affiliate code after an ownership change. The AI gold rush made this worse: everyone is shipping a "ChatGPT for your browser" tool, and most of them need to read your screen to work.
This guide shows you how to audit AI browser extensions before they turn into data-siphoning liabilities. You will learn what permissions actually mean, how to read an extension's real behavior instead of its marketing copy, a repeatable ten-step vetting process, and a comparison framework for deciding whether a tool is worth the risk. No paranoia, just a practical routine you can run in fifteen minutes.
Key Takeaways
- Permissions are the contract. An extension that requests
<all_urls>or "read and change all your data on all websites" can see everything, including passwords typed into fields, unless you constrain it.- Ratings lie, network traffic doesn't. Spend five minutes watching what the extension actually sends before you trust a single review.
- Ownership changes are the biggest hidden risk. A clean extension can be sold and updated into spyware overnight with no notice to you.
- AI extensions are uniquely dangerous because their core function is reading page content and sending it to a remote model. "Sends your data off-device" is a feature, not a bug, so scrutiny matters more.
- Least privilege wins. Restrict site access, disable auto-updates where you can, and prefer tools that process locally.
- Audit on a schedule. A quarterly review catches the extensions that changed behavior after you installed them.
Why AI browser extensions deserve extra scrutiny
A traditional extension might need one narrow permission: a coupon finder reads shopping sites, a dark-mode tool injects CSS. An AI extension is different by design. To summarize an article, rewrite an email, or "chat with this page," it has to read the content of the page and usually ship that content to a language model somewhere else.
That means the honest, working version of an AI extension does the exact thing you'd flag as malicious in any other tool: it exfiltrates page data to a third party. The line between "helpful assistant" and "surveillance" is entirely about which pages, when, and to whom. That line is invisible in the store listing.
There are three specific risks I care about with these tools:
- Over-broad reading. The extension reads pages you never asked it to touch, including sensitive dashboards.
- Silent data resale. Your prompts and page content get logged, aggregated, and sold, often through a "data partner" buried in the privacy policy.
- Update-time takeover. The extension is fine today, gets acquired or compromised, and a future auto-update turns it into a credential stealer.
The good news: all three are detectable before they hurt you if you know where to look. The same discipline applies to other trust decisions, which is why the principles here rhyme with our guides on auditing OAuth app grants and vetting MCP servers before connecting them to your AI.
What browser extension permissions actually mean
Before you can audit anything, you need to translate the permission prompt from marketing English into what the code can technically do. Here is what the scary phrases mean in practice.
Host permissions (the ones that matter most)
<all_urls>or "on all sites": the extension can read and modify every page you load, forever. This is the highest-risk grant.- Specific hosts like
https://mail.google.com/*: scoped access, far safer. You can verify it only touches what it claims. - "read and change all your data on the websites you visit": Chrome's plain-English version of
<all_urls>. Yes, it means what it says.
API permissions
tabs: read the URLs and titles of your open tabs.webRequest/declarativeNetRequest: observe or modify your network traffic.cookies: read cookies, which can include session tokens that equal a logged-in you.scripting/content scripts: inject code into pages. Necessary for most AI tools, but powerful.storage: keep data locally. Low risk on its own.
A summarizer that only works when you click its button should not need constant <all_urls> access plus cookies plus webRequest. When the permission set is broader than the feature set, that gap is your warning sign.
A 10-step process to audit AI browser extensions
This is the routine I run on every AI extension before it earns a spot in my daily browser. It takes about fifteen minutes and requires no special tools beyond your browser's built-in DevTools.
- Read the permission list first, before the description. In Chrome, go to
chrome://extensions, click Details, and scroll to "Permissions." Write down every host and API permission. If it wants all sites, note it in red. - Match permissions to function. Ask: does each permission map to a feature I'd actually use? A grammar tool needs to read text fields. It does not need your cookies.
- Check the publisher's identity. Look for a real company name, a working website, and a physical address. Anonymous publishers with a Gmail contact are a downgrade in trust. Compare this to how we evaluate hidden ownership risks in password managers.
- Find the last update date and version count. An extension untouched for two years with an AI feature is stale. One that updated three times this week may be scrambling or may have changed hands.
- Read the privacy policy for the words "sell," "share," "partners," and "aggregate." Use Ctrl+F. If page content or prompts are "shared with partners for advertising," walk away.
- Inspect the actual code. Extensions are just JavaScript. On Chrome, the files live in your profile folder under
Extensions/<id>/<version>. Search for hardcoded URLs,fetch(,eval(, and obfuscated blobs. Unreadable minified code that phones home is a red flag. - Watch the network traffic live. Open DevTools, go to the Network tab, and use the extension on a test page. Note every domain it contacts and what payload it sends. This is where my "AI writing assistant" gave itself away.
- Test with a decoy page. Visit a page full of fake sensitive-looking data (a mock bank dashboard, a fake password field). Confirm the extension does not read or transmit it when you didn't invoke it.
- Restrict site access. In the extension's details, set "Site access" to On click instead of "On all sites." Now it only runs when you explicitly click it. This single setting neutralizes most over-reading risk.
- Set a recheck reminder. Extensions auto-update. Put a quarterly calendar note to re-run steps 1, 4, and 7 on your critical extensions to catch behavior that changed after an update.
If you build or ship browser tools yourself, the same rigor applies to your own code. Developers browsing our AI tools category and SDKs will recognize that a clean, minimal permission footprint is also a selling point.
A worked example: auditing three AI summarizers
Let me make this concrete. Say you want an AI page summarizer and you've narrowed it to three candidates. I'll use realistic numbers from the kind of audit described above.
Candidate A requests <all_urls>, tabs, and cookies, has 800,000 users, and in the Network tab sends the full page HTML to an undisclosed api.summarize-fast.io endpoint on every page load, even before you click summarize. Its privacy policy mentions "trusted advertising partners."
Candidate B requests activeTab and scripting only, has 40,000 users, and sends page text to api.openai.com only when you click the button. Its policy says prompts are not stored beyond 30 days and not sold.
Candidate C requests activeTab and storage, has 6,000 users, and runs a small local model entirely on-device. It makes zero network calls during summarization. Verified in the Network tab: nothing leaves the machine.
Here's the scoring:
| Criteria | Candidate A | Candidate B | Candidate C |
|---|---|---|---|
| Permission scope | All sites + cookies (high) | Active tab only (low) | Active tab only (low) |
| When it reads pages | Always, automatically | Only on click | Only on click |
| Data destination | Undisclosed server | Named API, disclosed | Stays on device |
| Privacy policy | Mentions ad partners | No sale, 30-day retention | N/A, nothing sent |
| Summary quality | Excellent | Excellent | Good |
| Verdict | Reject | Acceptable with "on click" | Best for privacy |
Candidate A has the highest rating and the most users, and it is the
Cover image: Software value feedback loop by jakuza, licensed under BY-SA 2.0 via Openverse.








