Adblock Plus and (a little) more

How to check any browser extension in two minutes: the prompts to run before you trust it · 2026-08-19 15:00 by Cornelius

Most advice about extension safety focuses on the moment of installation: check the reviews, look at the ratings, stick to known names. That advice isn’t wrong. But it only answers half the question.

An extension that was trustworthy when you installed it can become dangerous later, without a new version in the store, without an update prompt, and without you knowing anything.

This keeps happening. The Great Suspender was quietly sold and later found to contain code enabling remote execution. Nano Adblocker and Nano Defender were sold and weaponized to collect user data. In 2023, researchers found a cluster of extensions with 75 million combined installs that could inject code into any site a user visited. The ShadyPanda campaign showed extensions building trust for years before turning into remote controlled backdoors. And this June, researchers at Island published findings on Adblock for YouTube (not related to our AdBlock or Adblock Plus, despite the similar name) an extension with over 11 million installs, showing its architecture left it one server change away from injecting arbitrary code into users’ browsers. To be clear: they found an architectural vulnerability, not evidence of malicious activity.

But the architecture is the story. All those examples follow the same playbook.

Why this keeps happening

The mechanism needs two ingredients. First, the extension fetches configuration from a remote server after installation. This is common and often legitimate; ad blockers, for instance, need frequently updated filter lists. Second, the extension can take whatever arrives in that file and place it on the page in executable form. When both are present, whoever controls the server controls the extension, on every machine where it’s installed. Nothing new passes through a web store review, because nothing in the extension package changed. This is also why ownership changes matter so much: buying a popular extension means buying the trust of its install base, plus the infrastructure to modify behavior remotely. The Great Suspender is the textbook case. Its original developer, lacking time to maintain the project, sold it in June 2020 to a buyer whose identity was never disclosed, and within months the new owner shipped a version that tracked users and executed code pulled from a remote server.

You can’t see any of this

Store listings don’t tell you whether an extension pulls remote configuration. Reviews reflect past behavior, not current behavior. Answering the question properly means reading source code, which almost nobody will do.

But AI assistants with web access can now do a version of this homework in minutes, reading store listings, documentation, security research, and community discussions. That’s why we came up with some prompts about extensions you can run before installing anything. But before we get there, one thing should be said plainly: this is a first pass check, not a guarantee. An AI can only work from public information. It can’t audit live source code or predict what a remote server sends tomorrow. What it can do is surface the known risk factors in minutes instead of hours, which is a far better filter than relying on star ratings. And far better than nothing.

Three prompts to run before you install

Paste these into an AI assistant of your choice, replacing the bracketed name.

1. The ownership question:

“I am planning to download the extension [add extension name] on [add name of browser]. Its store ID is [add store ID], and its listed publisher is [add listed publisher / developer]. Answer only about that specific extension, not similarly named products: has this browser extension changed ownership, been acquired, or been substantially rewritten? What do reviews and community forums say about its behavior before and after any transition?”

NOTE: Most major browser stores, like Chrome, Edge, and Safari, display an extension’s store ID directly at the end of its web address. It’s something like chromewebstore.google.com/detail/name-of-extension/32-long-character-string, like “cfhdojbkjhnklbpkdaibdccddilifddb”, this is the store ID. For Firefox or bundled Safari extensions, unique identifiers like GUIDs or Bundle IDs can also be found within the store page’s details section.

2. The track record question:

“Has this extension particular, or other extensions from the same developer, been removed from the [add name of your browser] web / extension store or flagged for malware?”

3. The architecture question:

“Based on public information, answer this: after installation, can this extension’s behavior change without a new version going through the browser store’s review process? Specifically:
  • Does it fetch configuration, rules, filter lists, or scripts from a remote server after install?
  • If yes, can that remote channel deliver or activate executable behavior on web pages, either directly (remote scripts, injected code) or indirectly (remotely updated rules that control powerful built-in functions like script injection, response rewriting, or content replacement)?
  • Who controls that remote channel, and what stops them, or anyone who compromises their server or repository, from pushing a malicious update to all users at once? Don’t give me a simple safe or unsafe answer. Tell me where this extension sits on the spectrum from ‘everything executable is bundled and store-reviewed’ to ‘behavior can be substantially changed remotely,’ and what I’m trusting when I install it. Base your placement on the extension’s current version and architecture. If you cite historical vulnerabilities or incidents, state clearly whether they apply to the current version or have since been fixed or removed, and describe any safeguards the current design has in place, such as restrictions on which sources can trigger executable behavior.”

Bonus prompt

Does the developer of [add extension name] publish documentation on how the extension actually works: which filter lists it uses, and what its features that modify pages are doing? Link me to it if it exists, and say so plainly if you can’t find it. The first two prompts catch the pattern that connected the cases above: quiet ownership changes and bad neighborhood infrastructure. The third is the deep one. It asks the question no store listing answers, which is not “is this extension safe today” but “who could change what it does tomorrow, and would anyone review that change.” The answer to that last part, in every incident listed above, would have been no one.

And on the bonus prompt: no documentation isn’t proof of anything, but it’s a red flag: it means the answers above rest on guesswork rather than anything the developer has put in public.
The same questions apply to existing extension
As said above: sometimes, an extension may be perfectly fine when you installed it but turns dangerous after being quietly sold. These prompts work not only on your next install, but also on the extensions you have already: just swap “I am planning to download the extension” with “I have installed” in the first prompt.

A note on our own homework

We build an ad blocker, so run these against Adblock Plus, too. Our filter lists update remotely like everyone else’s. Our design choice is that new executable capabilities can’t arrive through that channel; they have to ship inside the extension package, which means store review before reaching users. That makes us slower to respond when websites deploy new countermeasures. We think the tradeoff is right, but you shouldn’t take our word for it. That’s the whole point of this post.

Comment

(E-mail address is optional and will not be displayed, it is necessary if you want to get a notification about my replies)
Please note that comments not related to this blog post will be removed. For questions on Adblock Plus please use the forums.
  Textile help