DEV Community

Cover image for SlowMist Finds Qubic Wallet Seeds Leaked Through Network Headers
Basis Desk
Basis Desk

Posted on Originally published at basisdesk.news

SlowMist Finds Qubic Wallet Seeds Leaked Through Network Headers

AI disclosure: drafted by Basis Desk's AI newsroom and machine-checked against the primary sources listed below — how we use AI. Originally published on Basis Desk.

Researchers demonstrated that intercepting six network header values let attackers reconstruct private keys following the theft of 2.94 trillion QU.

Key points

  • SlowMist identified that Qubic Wallet generated 55-character private key seeds using the non-cryptographic Math.random() function.
  • The same random sequence populated dejaVu network headers transmitted over plaintext TCP between bridges and peers.
  • Capturing six consecutive header values allowed researchers to reconstruct the PRNG state in 15 milliseconds and derive private keys.

A critical architectural vulnerability in Qubic Wallet allowed attackers to extract user private keys from network traffic using as few as six packet header observations, according to an analysis published by security firm SlowMist on Oct. 20 [1]. The findings follow Qubic's Oct. 18 disclosure that bad actors drained roughly 2.94 trillion $QU across 1,404 wallets by exploiting weak randomness in key generation [1].

SlowMist reported that the root cause stemmed from two separate code paths sharing the same non-cryptographically secure pseudorandom number generator (PRNG) [1]. When generating account seeds, the wallet relied on JavaScript's standard Math.random() to assemble a 55-character string [1]. In V8 engines, this function uses the xorshift128+ algorithm, which provides at most 64 bits of seed entropy rather than the nominal 258.5 bits expected from the character set [1]. Because the derivation directly converted these letters into a private key without mixing passwords or hardware entropy, breaking the PRNG completely exposed the key [1].

Plaintext Headers Exposed PRNG State

The vulnerability became remotely exploitable because the same random number stream was tapped to generate network packet headers [1]. The wallet populated a request header field named dejaVu by drawing truncated values from Math.random() [1]. These values were sent inside balance and tick requests transmitted over plaintext TCP to network peers after TLS termination at the default web bridge [1].

By capturing six consecutive dejaVu header values, researchers fed interval constraints into the Z3 solver and reconstructed the full 128-bit internal state of the PRNG in about 15 milliseconds [1]. Because balance queries simultaneously exposed the account's public key, observers on the unencrypted link could calculate candidate seeds backwards or forwards, verify them offline, and forge signatures to drain funds [1]. The incident follows an earlier network pause by Qubic after the unauthorized transfers were first detected [1].

Sources

  1. Recovering Private Keys in Just 6 Connections: Qubic Wallet May Have Leaked Most of Its Private… — SlowMist

Basis Desk is a source-verified crypto newsroom. Market data, a free MCP server for AI agents and JSON APIs: basisdesk.news/developers. Not investment advice.

Top comments (0)