Real funds lost. Real malware found. Real lessons to share.
After helping a user in distress on Discord, I decided to document the entire case not just as a cautionary tale, but as a wake-up call for the ecosystem.
What follows is a complete breakdown: what happened, what went wrong, and what we can do better together.
1. Origin of the investigation
Everything started on the Hydration Discord when user @bzssalamon reported an unexplained loss of funds.
For anyone who wants the raw discussion, the entire public thread is still visible:
- Part 1 (Hydration server): https://discord.com/channels/744493635764224071/744493636355489815/1371606012385169418
- Part 2 (Polkadot Discord): https://discord.com/channels/722223075629727774/1329887069073313874/1371949604366717160
I jumped in, suspecting a live compromise that required immediate triage.
2. The hard facts we uncovered
Step | Finding | Proof / artefact |
---|---|---|
Drain | Three XCM transfers ā 547.435 DOT total | XCM index hashes in screenshot |
Malware | Trojan in a fake/sponsored uTorrent installer (SHA-256 4ac56c959e7148199ce93d5d6dce482edeb8a5efdb45aa3ca0008d8ce215aeef ) ā flagged by 18 / 72 engines, Falcon score 100 - Free Automated Malware Analysis Service - powered by Falcon Sandbox / VirusTotal |
VirusTotal + Hybrid-Analysis |
Persistence | Long-sleep, WMI, Tor traffic ā bypasses most AV | Falcon sandbox report |
Entry | No seed leak, but Polkadot{.js} had āRemember password 15 minā enabled ā gave the malware a signing window | extension settings |
Wallets & on-chain trail
Role | Address | Notes |
---|---|---|
Victim base account | 157fpGqADobrZrNKV6QMUsfSZssAXJvDtwdLCqsUarGaY3Zq |
Holder of the drained DOT |
Attacker collection wallet | 1586EKXcsdkEk3v8GtiTtViyeTbsm3EcWTDFFTjApXs5nASw |
Receives the three XCM transfers |
ā Binance deposit #1 | 14BRdZ8sBfztztToZryxKMgykJsgWHAbxUUVeRsMSGP5xv7D |
Seen in extrinsic 25975919-8, tagged Binance.com |
ā Binance deposit #2 | 15T6aqyTRBnMBCUFnejMMa3T8ebwGsHvfRNmBhtkzuE4wFQ |
Same extrinsic, Binance.com |
ā Very active user | 166H3a6kAdh7FJjpd6YcKAHUjDCgCn5Ps8yFVn26ezqy4iBf |
Linked via extrinsic 25975755-4 |
Binance and law-enforcement already have those IOCs, but feel free to add them to every community block-list.
3. Likely kill-chain
- User downloads uTorrent from a sponsored ad (not the real site)
- Installer drops a packed spyware that sleeps until the machine is idle
- When Polkadot{.js} is unlocked (password cached 15 minutes) the malware injects JS, signs three XCM transfers and exits
- Funds reach the attacker wallet, then two Binance deposit addresses
4. What went wrong (human layer)
- Blind trust in Windows Defender only
- No VPN ā IP & browsing habits exposed to malvertising campaigns
- Torrent client on the same laptop that holds hot wallets
- āRemember password 15 minā left enabled on Polkadot{.js}
- 75 % of portfolio kept in a hot wallet, no cold storage fallback
5. Actionable defence playbook
- Proper antivirus (not just Defender) ā The victim uninstalled Avast while setting up a miner, which turned out to be a fatal mistake. Defender alone is not sufficient in a real threat scenario. At minimum, maintain a real-time antivirus (ESET, Bitdefenderā¦) and pair it with on-demand tools like Malwarebytes.
- Always-on VPN to break ad-tracking, avoid malicious redirections, and hide your IP from scanner bots.
- Segregate machines / VMs ā Never install torrents or mining tools on the same device used for wallet access. Consider isolating sensitive actions inside a virtual machine or clean OS.
- Disable Polkadot{.js} āRemember passwordā feature or better, switch to Ledger or Polkadot Vault to remove hot wallet exposure.
- Harden your router: keep firmware updated, disable UPnP and WPS, restrict admin interface to local access only.
- Cold storage only for any holdings above minimal interaction balances.
- Migrate away from LastPass prefer 1Password, Bitwarden, or NordPass + FIDO2 hardware key for all critical logins.
6. Why the Polkadot ecosystem needs a dedicated incident response unit
This case shows that once funds hit a CEX, community efforts stall.
A coordinated task-force could:
- Freeze obviously stolen funds within the first hour (multichain escrow or CEX liaison).
- Maintain a live IOC feed (malware hashes, malicious addresses, phishing domains).
- Provide a rapid-response playbook & tooling for validators, parachains and CEX partners.
A few months ago, I had proposed the creation of an advanced fund-tracking tool based on on-chain tree structures, specifically to improve this type of analysis. Unfortunately, I received little to no support at the time, and the idea was shelved. This recent case highlights it painfully: to this day, no such tool exists in the Polkadot ecosystem .
Hereās the original post: Advanced Analysis Tool Proposal for the Polkadot Ecosystem
7. Critical reflections for the community
- Should the āremember passwordā feature in Polkadot{.js} be entirely removed, or at the very least, be clearly labeled as unsafe and restricted to advanced/dev usage only?
- Isnāt it time to establish a dedicated task-force capable of responding within the first hour to freeze stolen funds or trigger automated alerts across the ecosystem?
This incident proves that convenience features can become attack surfaces and that reactive governance is not enough when attackers move fast.
8. TL;DR
A fake uTorrent installer, a forgotten āremember passwordā checkbox in Polkadot{.js}, and no antivirus thatās all it took. Result: 547 DOT drained in minutes.
Attacker hash: 4ac56c959eā¦aeef
| Wallet: 1586EKā¦s5nASw
| Funds routed through two Binance deposit wallets. Letās stop saying āwe should haveā and start building real defences tools, playbooks, task forces.
Stay paranoid. Stay prepared. Stay helpful.
ā Cyphertux