Back to Blog

Qubic Fixed Its Wallet's Randomness. The Seeds It Already Handed Out Stay Broken.

Onuora Amobi·October 19, 2026
Security
Wallets
Self-Custody
Qubic
Exploits
Qubic Fixed Its Wallet's Randomness. The Seeds It Already Handed Out Stay Broken.

At 23:42 UTC on Saturday, October 17, someone started emptying Qubic wallets. By 01:26 UTC on Sunday, 104 minutes later, 1,404 of them had been drained of about 2.94 trillion QU, roughly $1.3 million to $1.4 million at the time. Qubic's validators, which the project calls Computors, then did something most chains can't. They stopped the network at tick 85,371,949 and left it there. As of Monday it was still offline, with no restart date.

The halt worked better than most incident responses do. Qubic says 87.1% of the stolen tokens never left its network and are now frozen in place. The other 12.9%, about 379 billion QU, went to MEXC, which froze the receiving account within about an hour. The cause, the team says, was not the blockchain at all. It was the wallet software, which generated recovery seeds with too little randomness, and the web wallet's version 4.26.4 now fixes it.

So the headline story is a near miss. The real story is the part a patch can't reach.

The fix protects tomorrow's wallets, and the weak ones already in circulation stay weak.

A seed phrase is just a very large random number written in a form humans can copy down. Its whole security rests on how unpredictable it was at the moment it was created. If it was predictable then, it is predictable forever. No software update can go back and add entropy to a secret that has already been generated, written on paper and funded.

That is why the wording of Qubic's fix matters. Coverage of the patch notes that the correction applies to new wallets, while those created with earlier versions may still be at risk. Parameter, reporting on Qubic's statement, put it more bluntly: the project has not issued guidance confirming whether recovery phrases created with previous software versions can be considered secure.

The affected group is not small or obscure. It covers seeds created in any browser on an iPhone or iPad, in Safari on a Mac before October 18, 2026, and in the Qubic iOS app before July 2025. That is a large share of the ordinary retail path into a wallet. The 1,404 drained wallets are the ones the attacker reached before the halt. They are not a full count of the wallets built on the same weak foundation.

Math.random() was never supposed to hold a secret.

The technical cause is almost embarrassingly well documented. According to a GitHub commit described in coverage of the patch, Qubic's team swapped JavaScript's Math.random() for crypto.getRandomValues(). Mozilla's own reference page for the first function says it does not provide cryptographically secure random numbers and should not be used for anything related to security. It points developers to the second function instead. This is not an exotic edge case. It is the warning box at the top of the documentation.

The attacker didn't need to brute-force 55-character seeds. Reports describe them rebuilding a smaller set of predictable seeds and matching them against funded wallets. Once you can enumerate the candidates, the blockchain does the rest of the work for you, because every balance is public. Bitcoin.com's report adds that Qubic's developers secured additional vulnerable funds before the attacker got to them. That is good work under pressure, and it also confirms the point: the pool of reachable wallets was bigger than what was taken.

Crypto has seen this exact failure before. In July 2023, the Milk Sad team traced a wave of thefts to Libbitcoin Explorer, whose seed command relied on the Mersenne Twister generator, a tool built for simulations rather than secrets. Different language, same mistake.

The halt worked, and that is the uncomfortable part.

Concede the project's point fairly. Qubic's response saved most of the money. A chain that could not stop would have watched the full 2.94 trillion QU scatter across exchanges and mixers. Instead, the attacker's haul is mostly sitting frozen on a network that isn't processing anything, and the exchange portion is locked at MEXC. The protocol itself, and its QEARN staking, were reportedly untouched. By the standards of 2026, where hacks and exploits made up 19% of documented crypto crime cases in the third quarter but 40% of losses, according to an AMLBot report cited by CoinTurk, that is a decent outcome.

But look at what the save required. A quorum of validators decided to stop the ledger, and the same group will now vote on recovery and any restitution. Investinglive noted that Qubic has not said whether that would mean reversing transfers or compensating users some other way, and that whether MEXC hands back its frozen share is still an open question. Holders of a token with a market value of about $62.6 million are now waiting on a governance decision about whose transactions count.

And none of that touches the seeds. The halt bought time. When the chain restarts, every weak seed that hasn't been moved is exactly as exposed as it was on Saturday night, and the method for finding them is now public knowledge.

Coldcard already showed what happens next.

The industry has a recent, expensive case study. On July 30, attackers began draining Coldcard hardware wallets that had generated seeds under a firmware build error dating to March 2021. On affected devices, TRM Labs found, effective key strength fell from a designed 128 bits to as low as 40. The first wave took about 594 BTC from roughly 500 wallets in 25 minutes. The thefts kept coming. By mid-August, Decrypt reported, Galaxy Research had tracked more than 1,778 BTC stolen across three major waves and dozens of smaller incidents, roughly $130 million in all.

The waves are the lesson. A patched device does not save a seed it already made. TRM's guidance was that a firmware update "does not protect wallets whose seeds were generated under the vulnerable firmware," and that the old seed should be treated as compromised. Coinkite told anyone who generated seeds on the affected versions to create a new one on updated firmware and move their coins. It also changed the product so users must now mix in their own randomness, such as dice rolls or coin flips, when generating a seed.

Qubic's numbers are a rounding error next to Coldcard's. The shape is identical: a randomness bug, a first wave, a patch that covers only the future, and a long tail of old seeds that stay live until their owners act.

The only fix is a migration, and someone has to order it.

The useful thing Qubic can do before restarting its chain is not technical. It is a plain instruction: if you created your seed on an affected platform before the patch, treat it as burned, generate a new one on the fixed wallet and move your funds the moment the network is live. Then repeat it on every channel until the old addresses go quiet. That is less satisfying than a dramatic halt and a validator vote, and it puts work on users who did nothing wrong. It is still the only step that closes the hole.

The broader point applies well beyond one mid-cap chain. Self-custody does not remove the need to trust someone. It moves that trust to whoever wrote the code that rolled your dice. When that code turns out to be weak, the patch notes are the easy part. The hard part is reaching every person still holding a key that was never truly random.

Qubic can freeze its chain. It cannot freeze the arithmetic that makes those old seeds guessable, and when the network comes back, the attacker's method comes back with it.

Share
Back to Blog