Scam defense / Updated 2026-09-17
The Extension That Was Safe Last Month: How Browser Add-Ons Turn Into Wallet Stealers
Extensions do not have to arrive malicious. Nine sports-score add-ons became wallet stealers under the same Firefox extension IDs. What extensions can reach, when you are re-prompted, and the audit that takes ten minutes.
At a glance
The short version
You checked the reviews. You checked the install count. You checked the developer. All of that describes what an extension was, not what it becomes — a later version under the same Firefox ID can be repurposed into a wallet stealer, and ask you for nothing at all.
First actions from this guide
- Socket documented 40 malicious Firefox extensions within a wider set of 77 sharing code and infrastructure.
- An extension runs inside your pages, not in a separate sandbox beside them.
- Technique one: a fake or hijacked interface harvests the phrase you type.
Key idea: Install counts, reviews and developer history describe what an extension was, not what it became: an update that stays inside the permissions you already granted triggers no new prompt.
- Reading time
- 12 min
- Last reviewed
- Primary sources
- 5 from 4 publishers
- Checklist
- 34 steps
How this guide is checked
Official sources first, no wallet connection, no guaranteed returns.
Reviewed on 2026-09-17 by WildWildCrypto Safety Desk. Method: Human editorial review with official-source checks, affiliate-disclosure checks, and no-financial-advice checks.
Publisher: WildWildCrypto Editorial. Corrections go through the contact page. We do not ask for seed phrases or tell you what to buy.
malicious browser extension crypto wallet matters because You have been told to verify before you install, and you did — so the idea that an add-on you vetted months ago could quietly become something else, without a warning, without a new prompt, and without losing its reviews, does not fit the mental model anyone handed you.
This guide explains what browser extensions can actually reach, why an update is a better attack than a fake download, the two distinct ways these add-ons take crypto, and how to audit what is installed in your browser right now.
You will learn which permission phrase should stop you, the exact condition under which a browser does and does not re-prompt you on an update, why a modified copy of a real wallet is more dangerous than an obvious fake, how a campaign repurposed sports-score extensions into wallet stealers under the same Firefox IDs, and where the hard boundary is that no extension can cross.
The attack is not the download — it is the update
Almost everything written about malicious extensions assumes the danger is at installation: a fake listing, a typosquatted name, a suspicious developer. That advice is fine as far as it goes, and the campaigns documented through 2026 went around it entirely by attacking a moment nobody inspects.
Socket's threat research team documented a cluster of 40 malicious Firefox extensions, part of a wider set of 77 add-ons sharing source code and infrastructure, in a campaign they called the Offside Wallet Theft Factory and traced back to at least March 2026. The name comes from the tactic. Nine of the malicious identities did not start as crypto products at all. They first shipped as ordinary sports score extensions — football, basketball, NBA, hockey — and presented themselves that way. Later versions under the same Firefox IDs were repurposed into wallet-stealing extensions, so any install base and review history attached to those listings would have carried over (our inference; Socket does not report figures).
Sit with what that defeats. Install counts, reviews and developer history are signals about past behaviour. A repurposed listing keeps them while the code underneath changes, and none of them describes what the extension became. The researcher who led the analysis, Kirill Boychenko, framed the economics in a line worth remembering: a single successful installation can expose a recovery phrase, private key or wallet state worth far more than the cost of repeatedly publishing disposable extensions. When one hit pays for hundreds of failures, patience is cheap.
The same pattern showed up in the Chromium world. Socket researcher Karlo Zanki documented 19 extensions — 18 in Chrome, one in Edge — carrying a modular framework for wallet draining, and the highest-impact listing among them was not a crypto product either. It was a right-click-and-copy utility with roughly 80,000 combined installs. An add-on that does something small, useful and entirely unrelated to money is the ideal host, because nobody audits the thing that unlocks text selection on a stubborn web page.
Checklist
- Socket documented 40 malicious Firefox extensions within a wider set of 77 sharing code and infrastructure.
- The campaign, active since at least March 2026, was named the Offside Wallet Theft Factory.
- Nine appeared as sports-score extensions; later versions under the same Firefox IDs were repurposed into wallet stealers.
- Install counts, reviews and developer history describe past code, not what an updated extension does.
- Socket: one successful install can be worth more than many disposable listings cost.
- In Chrome and Edge, 19 extensions carried draining code; the largest was a right-click utility with ~80,000 installs.
- Unrelated small utilities make ideal hosts because nobody re-audits them.
What an extension can actually reach, and when you get warned
To understand why this works you have to be precise about what an extension is. It is not a separate app in a sandbox next to your browser. It is code that runs inside your pages, with whatever access its permissions describe, and the relevant permission is broader than most people realise when they click through it.
Mozilla's explanation of permission requests is candid about why the broad one exists: extensions ask to access your data for all websites because a web page can contain virtually anything, and some extensions need to read everything on it to do their job — ad blockers identifying ads, password managers finding form fields, shopping tools reading product details. These are legitimate needs. The same access, in different hands, means the extension can read every page you open and change what those pages do. Chrome's permissions reference states the consequence in its own warning text for privileged access: read and change all your data on all websites.
Read that against what a wallet interface is. It is a web page. A transaction confirmation is a rendered page. An address you paste is a form field. Code with permission to read and change all data on all sites is inside that boundary, not outside it, which is why an extension attack does not require you to make any visible mistake — there is no fake domain to notice and no bad link to avoid.
Now the mechanism that makes updates the ideal delivery route. Chrome's developer documentation on permission warnings explains that some permissions are less intrusive and do not display a warning, while others trigger a warning the user has to allow, and specifies the consequence: when a new permission that triggers a warning is added, the extension is disabled until the user accepts the new permission. That protection is real and worth knowing. But the inverse is equally true and much less discussed. If an update changes what the code does while staying inside the permissions you already granted, there is no prompt, no notification and no disabling. The extension simply becomes different software on your machine, at a moment of the developer's choosing rather than yours.
Checklist
- An extension runs inside your pages, not in a separate sandbox beside them.
- Mozilla: broad access exists because some extensions genuinely need to read whole pages.
- Chrome's warning text for privileged access: read and change all your data on all websites.
- A wallet interface is a web page — this access sits inside that boundary.
- Chrome: adding a new warning-triggering permission disables the extension until you accept.
- The inverse: a code change within granted permissions updates silently, with no prompt.
- An extension with page access already has what a wallet stealer needs.
The two ways they take the money
The documented campaigns split cleanly into two techniques, and they call for different defences, so it is worth separating them.
The first is harvesting the secret. Here the extension presents a wallet interface — impersonating a known product, or offering a plausible reason to enter your phrase such as an import, a validation, a migration or a recovery — and captures what you type. In the Firefox campaign Socket documented the impersonated products by name: OKX, Rabby Wallet and TronLink. Fifteen of the extensions captured recovery phrases and private keys and exfiltrated them through Cloudflare Workers, while another seven used attacker-controlled Supabase projects as remote switches for phishing and decoy content — meaning the same installed extension could present innocent behaviour or its attack on command, which also defeats anyone testing it once and pronouncing it clean.
The defence against this one is a rule with no exceptions attached: your recovery phrase is entered exactly once, into your wallet, when you deliberately restore it, on a device you control. Never in response to a prompt that appeared. Never as a validation, a sync, an eligibility check, an unlock, an airdrop claim or a support step. The request is the attack — which is the same principle behind pre-filled recovery sheets shipped with counterfeit hardware devices, where a phrase you never chose is presented as though it were yours.
The second technique never asks you for anything. Thirteen extensions in the Firefox campaign shipped modified builds of Rabby Wallet, engineered to exfiltrate serialized keyrings before local encryption — that is, taking the key material at the point in the process where it is still readable, inside software that otherwise behaves exactly like the real wallet, because it largely is the real wallet. Five more focused on credentials and clipboard data through hard-coded command and control infrastructure. The Chrome and Edge cluster was broader still: a framework of sixteen modules covering multi-chain wallet draining, hardware-wallet seed-phrase harvesting, exchange and wallet account theft, universal credential and form grabbing, social account theft, browser history collection and ClickFix-style social engineering lures, with a loader that can rotate its command-and-control endpoint on instruction, spreading victims across multiple infrastructure groups to make detection harder.
Careful behaviour helps less against the second category, which is the uncomfortable part. Installing only from the vendor's own link avoids lookalike listings, but once a modified build is running there is no visible error to avoid. What defeats it is architecture: keys that never exist in the browser in the first place.
Checklist
- Technique one: a fake or hijacked interface harvests the phrase you type.
- Socket: impersonated products included OKX, Rabby Wallet and TronLink.
- Fifteen extensions exfiltrated phrases and keys via Cloudflare Workers; seven used remote switches to hide behaviour on demand.
- Rule with no exceptions: a phrase is entered only into your wallet, by your deliberate choice.
- Technique two: modified builds of real wallets take keyrings before local encryption.
- The Chrome and Edge cluster ran sixteen modules including hardware-wallet seed harvesting and credential theft.
- Careful behaviour cannot spot a modified wallet once it is running; keeping keys out of the browser limits the damage.
Why the store signals do not protect you here
Both major stores run review processes, and both catch a great deal. Mozilla's Recommended Extensions program involves technical review by staff security experts and carries a badge, and Mozilla is candid that its review systems cannot guarantee extensions are 100% safe. That honesty is the right starting point, because the campaigns above were built specifically around the gap it names.
Reviews and install counts describe history, not current code. When a listing is converted by an update, every accumulated signal transfers to software that has nothing to do with what earned them. Mozilla's own suggested questions — is the extension made by a reputable developer, are the user ratings high, are the permission requests consistent with the features — remain good questions, and the third is the strongest of the three, because it is the only one that interrogates the extension's behaviour rather than its reputation. A scores app requesting access to all sites would be exactly the mismatch that question is designed to surface.
The practical reading is not that store signals are worthless — they usefully filter obvious junk. It is that they are a floor rather than a ceiling, and that the most important question is not whether an extension was trustworthy when you installed it, but whether you would still accept its permissions today for what it actually does for you.
Checklist
- Mozilla's Recommended program involves technical review by staff security experts — and Mozilla states its review systems cannot guarantee extensions are 100% safe.
- Reviews and install counts describe past code, and transfer intact through a malicious update.
- Mozilla's strongest question: are the permissions consistent with the features?
- A scores or utility extension asking for access to all sites is that mismatch.
- Store signals are a floor, not a ceiling — ask whether you would accept the permissions today.
The ten-minute audit, and the boundary that actually holds
Open your browser's extensions page and read the list as though someone else installed it. Most people find between five and twenty entries and cannot say what several of them do. That gap is the whole problem, and closing it is quick.
Remove anything you do not actively use. This is not a judgement about whether it is malicious; unused extensions are pure exposure, because they carry permissions indefinitely and are updated by developers you stopped thinking about years ago. For each one that survives, ask Mozilla's consistency question directly: does what this thing does for me plausibly require reading and changing data on every site I visit? A note-taker, a theme, a scores widget, a coupon finder and a screenshot tool generally do not. Then check what each one is today — open its listing, see when it last updated, whether ownership changed, and whether recent reviews describe different behaviour from older ones. A cluster of recent complaints saying an add-on 'started doing something weird' is the signal the store's aggregate rating is too slow to show.
Then build the separation that makes the whole category smaller. Use a browser profile — or better, a browser — that exists only for wallets and exchanges, with no extensions installed except the wallet itself, obtained from the vendor's own published link. Do your reading, shopping and general browsing in the profile where your convenience extensions live. That single split means a compromised utility cannot see a session it was never present for, and it costs nothing but a second icon.
Now the boundary. Everything above reduces the odds; none of it survives a modified build of your own wallet, because there is no visible error to avoid. What survives is a hardware wallet, and the reason is structural rather than a matter of quality: the private key is generated on the device and never enters the browser, so an extension reading every page still finds nothing to steal. What it can still do is alter what a page displays, which is why the device's own screen matters — confirm the destination address and amount on the hardware screen, not on the page asking you to approve. That check is the last thing standing when everything else has been compromised, and it is the one people skip precisely because it looks redundant.
Checklist
- Read your extension list as if a stranger installed it.
- Remove everything you do not actively use — unused permissions are pure exposure.
- Ask whether each extension's job plausibly needs access to every site.
- Check each listing for recent updates, ownership changes and reviews describing new behaviour.
- Keep a separate browser or profile for wallets and exchanges, with no extra extensions.
- Install wallet software only from the vendor's own published link.
- A hardware wallet keeps the key out of the browser entirely.
- Confirm address and amount on the device screen, not the web page.
The Extension That Was Safe Last Month: How Browser Add-Ons Turn Into Wallet Stealers
https://wildwildcrypto.com/guides/malicious-browser-extension-wallet-theft
Take action
Do this now
Every checklist from this guide in one place. Ticks are saved only in this browser, never sent anywhere.
Education only. Not financial, tax or legal advice.
Authority sources used (5)
Primary or official publishers, listed so you can check the guide against the originals. Last reviewed 2026-09-17.
- 40 Malicious Firefox Extensions Pose as Web3 Products to Steal Wallet SecretsThe Hacker News (reporting Socket Threat Research) · thehackernews.com
- 19 Chrome and Edge Extensions Found With Wallet-Stealing and Crypto-Draining CodeThe Hacker News (reporting Socket Threat Research) · thehackernews.com
- Permission warningsChrome for Developers · developer.chrome.com
- Understanding Extension Permission RequestsMozilla Add-ons Community Blog · blog.mozilla.org
- Hardware Wallets: The Pre-Filled Seed Phrase ScamPhishFort · phishfort.com
FAQ
I checked the reviews and install count before installing. Wasn't that enough?
It was the right check aimed at the wrong moment. Reviews and install counts describe the code that existed when people used it, and they transfer intact through an update that replaces that code. Socket's research on the Firefox campaign documented this directly: nine malicious identities first published football, basketball, NBA and hockey score extensions, then later versions under the same Firefox IDs were repurposed into wallet stealers. Any ratings and installs attached to those listings described the old code, not what the extension became. The check that holds up over time is not reputational but behavioural — Mozilla's own suggested question is whether the permission requests are consistent with the features, and that one keeps working, because a scores widget asking to read and change data on every site is a mismatch on the day you install it and every day after.
Will my browser warn me if an extension updates and turns malicious?
Only in one specific case, and it is not the common one. Chrome's developer documentation explains that some permissions do not display a warning while others trigger one the user has to allow, and that when a new permission triggering a warning is added, the extension is disabled until the user accepts it. So an update that reaches for genuinely new powers will stop and ask. The problem is that an update which changes what the code does while staying within permissions you already granted produces no prompt, no notification and no interruption — it simply installs. An extension that already held broad page access did not need to request anything further to start reading a wallet interface, which is exactly why converting an existing listing is more effective than publishing a new malicious one. Treat permission prompts as a real but partial safeguard, and treat 'it has not asked me for anything' as no evidence at all.
Is my hardware wallet safe from a malicious extension?
Substantially, and for a structural reason rather than a quality one: the private key is generated on the device and never enters the browser, so extension code reading every page has nothing to read. That is the strongest available defence and it is why the recommendation survives this entire category of attack. But be precise about the residual risk, because one of the sixteen modules Socket documented in the Chrome and Edge cluster was hardware-wallet seed-phrase harvesting — which, we infer, works not by extracting the key from the device but by presenting a convincing reason for you to type your recovery phrase into a page, such as an import, a firmware step, a validation or a recovery. A real hardware wallet never needs that. The second residual risk is display tampering: an extension can alter what a web page shows, including a destination address, which is precisely why the device has its own screen. Verify the address and amount on the hardware screen before approving, every time, including the times it feels unnecessary.
How do I know whether an extension I already have is safe?
You cannot fully verify it, and it is worth being honest about that rather than performing a check that produces false confidence — you are not in a position to read the code, and Mozilla itself notes that even a review process designed to make malicious publishing difficult cannot guarantee safety. What you can do is reduce exposure and watch the right indicators. Remove anything you do not actively use, since unused extensions carry their permissions indefinitely. For what remains, apply the consistency test: does this extension's actual usefulness require reading and changing data on every site? Then check the current listing rather than your memory of it — when it last updated, whether the developer or ownership changed, and whether recent reviews describe behaviour that differs from older ones, since a cluster of new complaints tends to precede a removal. Finally, separate contexts so the question matters less: a browser profile used only for wallets and exchanges, carrying no extensions beyond the wallet itself, means an unverified utility never shares a page with your money.
What should I do if I think an extension already had access to my wallet?
If the phrase or key was ever in the extension, act as though it is exposed rather than waiting for proof, because the confirming evidence in this scenario is usually the loss itself. Remove the extension, then create a new wallet on a device you have reason to believe is clean — not a second account inside the same browser, which is the same environment that was compromised. Move assets in an order that keeps fees payable: the most expensive items first and the network's gas token last, so each transfer is funded by what is already there. If the old address has no gas left, do not send any in: a sweeper bot may take it before you can sign (see the sweeper-bot guide). Record transaction hashes and a timeline while it is fresh. Then handle the two things that do not travel with your funds: outstanding token approvals granted to contracts from the old address, which persist independently, and any EVM delegation set on that address, which can remain even after the balance is zero. And treat the old address as permanently unusable — an empty wallet whose key has been copied is not a recovered wallet, it is a wallet someone else also owns.
Are wallet extensions themselves a bad idea?
No — for most people a reputable browser wallet is a reasonable tool, and the realistic advice is about sizing and separation rather than abstinence. The honest framing is that a browser wallet is hot by definition: its keys exist on a general-purpose machine running general-purpose software, which is a fine place for amounts you use and a poor place for amounts you are keeping. So use one deliberately. Install it only from the vendor's own published link rather than a search result or a social post. Keep it in a browser profile that carries no other extensions, so nothing else shares a page with it. Fund it with what you are actively using, and hold the rest where the key has never touched a browser. And carry the same rule everywhere: the wallet asks for your recovery phrase when you deliberately restore it, and at no other time — so any prompt that appears asking for it, inside any interface however familiar, is the attack rather than a step.
Optional tools. These come after the guide on purpose; each link is marked if it may earn us a commission.