Three malicious Firefox extensions impersonated popular crypto wallets Phantom, Jupiter, and Bitget to capture users’ recovery phrases and private keys.
Whoever obtains those secrets gains control of the wallet and its funds. All three listings were present in the Firefox Add-ons store while researchers examined them and have since been removed.
The fraudulent extensions copied wallet names, icons, and marketing text used by legitimate wallets, making it easy for someone searching the store to install a fake by mistake. This technique matches other fake wallet screens used to trick users into revealing secrets.
Socket.dev researchers discovered the malware and published their findings on October 27, 2026. They found that the extensions exfiltrated harvested secrets to subdomains of a command-and-control domain, bonto[.]io.
The Phantom impersonator also included a hidden loader capable of changing behavior after Mozilla approved the add-on.
Malicious Firefox extensions impersonate Phantom, Jupiter, and Bitget
The Phantom listing used lookalike Unicode characters in its name so it displayed as “Phantom.” It reused Phantom’s ghost icon and presented itself as “Official Phantom Wallet (Firefox Update).”
The Jupiter fake claimed to be built by Jupiter Exchange. The Bitget fake used the internal name “TabFlow Pro” but presented Bitget branding to users. None of the three provided a privacy policy, and all falsely declared they collect no data.
The Phantom package contained a small loader in its background script. The loader concealed the server address inside a list of numbers and then fetched a settings file from phantom[.]bonto[.]io.
The settings file instructed the extension whether to activate and included a base64-encoded stealer. That code executed on every page the victim opened, allowing it to read objects on wallet pages.
Because the operator controlled the server, it could return a benign response during Mozilla’s review and deliver the real stealer afterward.
The stealer monitored for 12-, 15-, 18-, and 24-word recovery phrases and for Ethereum and Solana private-key formats. It read text fields, paste events, and the numbered phrase grid wallets display on the secret-phrase screen.
Captured data was sent to the attacker’s server as JSON. Socket previously reported similar thefts, including 16 malicious Firefox extensions that mimicked Rabby and OKX wallet screens earlier in the month.
The Jupiter and Bitget fakes were simpler: each bundled a stealer inside the extension package and sent discovered recovery phrases directly to jupiter[.]bonto[.]io or bitget[.]bonto[.]io.
The Jupiter fake also requested access to Trezor Connect, expanding the data it could read. Socket observed that all three packages contained a full, always-on stealer embedded in the signed code Mozilla reviewed, so the remote loader in Phantom was an additional layer rather than the only payload.
Hidden infrastructure and real-world risk
The Phantom package also included the operator’s drainer backend: a Node.js file named server.js.
That backend saved stolen secrets to local files, forwarded them to a Telegram bot, and moved funds to fixed payout addresses on multiple chains, including Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche, Solana, and Bitcoin.
A code comment indicated the payload would activate only “after approval flip,” meaning after the add-on passed review. A companion file, server-review.js, returned an inactive response during review.
All exfiltration servers were hosted behind Cloudflare, masking the true origin. Socket also found active subdomains coinbase[.]bonto[.]io and exodus[.]bonto[.]io, suggesting plans to impersonate Coinbase Wallet and Exodus as well, although no matching store listings were identified.
Each fake add-on originated from a separate throwaway developer account, which slows bulk takedown efforts.
Phantom and Jupiter packages included a CLAUDE.md file — an AI jailbreak prompt that was never executed. Socket interprets this as evidence of AI-assisted malware development and an attempt to evade AI-based review systems.
The campaign also attempted to manipulate its reputation. Over roughly two days the Phantom listing’s reviews rose from 275 to 546 and its rating climbed from 2.9 to 3.9, which suppressed some one-star reports from users claiming lost funds (those loss claims are unverified). The listings had only one to three daily users, but their servers were active.
Socket characterizes the group as a repeat offender, similar to the earlier Offside Wallet Theft Factory campaign that was tied to 77 Firefox add-ons.
Recommendations: install browser extensions only via links on the wallet maker’s official website, not by searching the store. No legitimate wallet will ever ask you to enter your recovery phrase on a webpage.
If you entered a recovery phrase or private key into one of these add-ons, create a new wallet on a clean device immediately and transfer your funds. Removing the extension does not make a leaked phrase safe.
Security teams should block bonto[.]io and its subdomains and hunt for extensions that fetch settings and then execute the returned content as code. Browser add-ons are not the only threat to wallets; other campaigns such as Odyssey Stealer target wallet data on desktops.
Indicators of compromise (IoCs)
| Type | Indicator | Details |
|---|---|---|
| Domain | bonto[.]io | C2 apex domain |
| Subdomain | phantom[.]bonto[.]io | Second-stage delivery and exfiltration |
| Subdomain | jupiter[.]bonto[.]io | Exfiltration host |
| Subdomain | bitget[.]bonto[.]io | Exfiltration host |
| Subdomain | coinbase[.]bonto[.]io | Provisioned host |
| Subdomain | exodus[.]bonto[.]io | Provisioned host |
| IP address | 104[.]21[.]34[.]69 | Network indicator |
| IP address | 172[.]67[.]155[.]198 | Network indicator |
| C2 endpoint | https://phantom[.]bonto[.]io/config | Payload configuration |
| C2 endpoint | https://phantom[.]bonto[.]io/ | Phantom C2 |
| C2 endpoint | https://jupiter[.]bonto[.]io/ | Jupiter C2 |
| C2 endpoint | https://bitget[.]bonto[.]io/ | Bitget C2 |
| EVM wallet | 0x93ce11fAA9FC83741e8b392879b383bcc5f7f3Ad | ETH, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche |
| Solana wallet | GCo8tAh5WjAuH51bnRZtkmKDRuoXHFDNz9MZY25Zuvsr | Hardcoded payout address |
| Bitcoin wallet | bc1qrsfyjrsel924nny9q0qak5cfyf7pahmsydwnrq | Hardcoded payout address |
| Telegram bot token | 8834114695:AAGC99–r8KFikBpDw5JCkAteIc4cRi2VTU | Exfiltration |
| Telegram chat ID | -5433023573 | Exfiltration |
| AMO developer account | anonymous-30b17a249a34fdf5d2be64b3dfcc8494 (user id 20229996) | Phantom impersonator |
| AMO developer account | anonymous-3efb89873d4c425c012cd1cb1736629a (user id 20231205) | Jupiter impersonator |
| AMO developer account | anonymous-ca2bf8b1ba371a1426c1049d9dad8168 (user id 20229610) | Bitget impersonator |
| Add-on | ID 3092199, v25.6.0, gecko ID a8f3k2m9x1fefb7q4n6p0r5t@j2w8c4fefy6v1d3z9 | Phantom impersonator |
| Add-on | ID 3092666, v1.19.2, gecko ID {48392751-9302-4817-5621-703829164830} | Jupiter impersonator |
| Add-on | ID 3092059, v2.21.8, gecko ID {c31e7a95-2f64-4b18-a0d3-6e92f5c7481b} | Bitget impersonator (TabFlow Pro) |
| SHA-256 | 311c49974f28d33947b8b74d78b48f51855eacac182d519a4fe1daa6af7f30e9 | Phantom XPI (ha-25.6.0.xpi) |
| SHA-256 | 999bccd41188a238a50d05b5aca8e35af45d107f32d7443389313816f0cb226a | Phantom second-stage payload (2026-10-21) |
| SHA-256 | fd7b138f4fba003db332a4eee833e84491bf7ffec5a3d91f7451d7b95aabcf6a | Jupiter XPI (j_i-1.19.2.xpi) |
| SHA-256 | e688bff5df32f209b4ebb882985e3ad19ddee68666405c39ff523307068a8611 | Bitget XPI (3092059-2.21.8.xpi) |
Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat-intelligence platforms such as MISP, VirusTotal, or your SIEM.
Give your SOC the alert context to stop incidents quickly. Integrate Threat Intel from 16K SOCs.

