Onchain Security Roundup: Oct 12 - 18
Nexus Mutual Team
·

Gamdom and a Server Breach That Reached the Hot Wallets
TL;DR: On October 13th the crypto casino Gamdom lost its hot-wallet balances on nine chains after an intruder reached one of its servers. The founder puts the loss at just over $3 million; onchain investigator vxdb counts $4.2 million using Arkham data. The site was offline for almost three days. No attacker addresses were published.
The outflows began at about 15:50 UTC on October 13th, according to tracing published by AirdropAlert. Within an hour, hot wallets on Ethereum, Solana, BNB Chain, TRON, and the XRP Ledger each sent one large payment to a newly created attacker wallet on each chain with further flows on Polygon, Arbitrum, Optimism, and Bitcoin. Gamdom took its site offline at 18:45 UTC and did not restore it until 12:34 UTC on October 16th. Founder Felix Römer said the team had been investigating a suspected disk failure on one server when it found an unauthorized connection on a separate automation server, which gave the intruder the hot-wallet system; remaining funds were moved to cold storage.
Römer said the casino lost "just over $3M." The investigator vxdb, working from Arkham data, counted $4.2 million: $2.2 million across the EVM chains, $965,000 on Solana, $668,000 in Bitcoin, and $375,000 on TRON. Tracing cited by AirdropAlert says the EVM proceeds were swapped into DAI worth $2 million by AirdropAlert's count across two wallets and were still largely unmoved on October 16th, while the TRON and XRP legs were forwarded within 80 minutes. ChainCatcher adds that some funds passed through Hyperliquid and THORChain.
This loss is the result of an operational security failure, and it is the second casino hot-wallet drain in six weeks, after Duelbits in September. A breach of an automation server, not the wallet software, was enough to sign withdrawals, which means the signing keys or their session credentials were reachable from general infrastructure. Gamdom has said customer balances were unaffected and they are paying compensation bonuses.
Autheo and a Bridge That Trusted One Relayer
TL;DR: On October 12th an attacker on Base minted 19,000,000 and then 100,000,000 THEO, the token of the layer-1 network Autheo, through the project's Hyperlane warp route and sold into the pools. PeckShield traced 700.8 ETH ($1.76 million) to Ethereum; TokenPost's reading attributes only 291.7 ETH ($730,000) to the exploit. THEO fell more than 90%. The root cause is unconfirmed by Autheo.
Both mints are visible on Base. At 17:06 UTC on October 12th the THEO token contract 0xebe516a20238f79dc20b07ead6768e08891ed309 emitted a transfer from the zero address of 19,000,000 THEO to 0x3048b4ee5a070f33b73e3401829847255079e0ad, and at 17:45 UTC a second mint of 100,000,000 THEO went to the same address. Between them, at 17:16 UTC, the attacker sold 9,500,000 THEO through an aggregator in a single transaction whose embedded route data valued the input at $761,000 and the output at $476,000, which matches Defimon's figure for the USDC taken from the THEO/USDC pool.
The warp route's interchain security module was a TrustedRelayerIsm, a Hyperlane configuration that accepts any message delivered by a single designated relayer. According to Defimon's analysis, a message from origin domain 2127, claiming 19,000,000 THEO had been locked on the Autheo side, was delivered by that relayer, and the bridge treated it as genuine and minted the THEO. Whether the relayer's key was stolen or the relayer process itself was subverted is not established. Autheo said on October 13th that unauthorized minting had occurred, halted mainnet block production, took validators offline, and stopped the affected relayer. On October 17th it advised holders not to buy, sell, or bridge THEO. The token trades 92% below its pre-incident price.
PeckShield reported that the attacker swapped the tokens for 700.8 ETH ($1.76 million) and bridged it to Ethereum. TokenPost examined the receiving Ethereum wallet and found it already held 400.8 ETH before the incident, attributing 280.7 ETH to the first mint's sales and 11 ETH to the second, or 291.7 ETH. The $1.7 million headline that circulated therefore likely includes ETH that was never Autheo's.
A warp route secured by one trusted relayer is ultimately a bridge secured by one key. Hyperlane's modular design lets deployers choose that configuration for convenience, and it is appropriate only when the relayer's key and infrastructure are protected with the same care as a full validator set.
Qubic and 1,404 Wallets with Guessable Seeds
TL;DR: From 23:42 UTC on October 17th an attacker emptied 1,404 wallets on Qubic, a non-EVM network whose accounts are controlled by a 55-character seed, taking 2.94 trillion QU in 104 minutes, which press valued at $1.3-1.4 million. Qubic blames weak randomness in seed generation on some Apple browsers and a legacy iOS app, halted the chain and says 87.1% of the funds are frozen.
The drains ran for 104 minutes before Qubic's validators, which it calls Computors, stopped the chain at tick 85,371,949. Qubic says the protocol was not exploited. Its 55-character seeds were generated in the web wallet using the browser's Math.random, which on some Apple browsers is weak enough to be reproduced, and its pre-July-2025 iOS app shared the flaw. Affected cohorts, per Qubic, are seeds created in any browser on an iPhone or iPad before October 18th, in Safari on a Mac before October 18th, and in the iOS app before July 2025. The fix, replacing Math.random with crypto.getRandomValues, shipped in web wallet v4.26.4; Phalcon points to commit 09dd288c in the qubic/wallet repository and notes the weakness was reported as early as February 2026.
Qubic said 87.1% of the stolen QU, 2.56 trillion, was still on the network when it halted, and that the 12.9% that reached MEXC was frozen by the exchange within an hour. What happens next depends on a Computor vote on a recovery plan; the chain has not resumed and no funds have been returned.
Seed generation is the one step a wallet cannot get wrong, and browser entropy has caught projects before. Qubic's handling after the fact was fast and the halt limited the damage, but an eight-month gap between a reported weakness and a fix is too long. Anyone who generated a Qubic seed on an Apple device should assume it is compromised and move to a fresh seed once the chain resumes.
UNCX Vesting and a Cancel That Deducted the Wrong Number
TL;DR: On October 14th attackers drained Smart Token Vesting V2, a shared vesting service run by the token-locker provider UNCX (formerly Unicrypt) that holds tokens for third-party projects, on Ethereum, BNB Chain, Base, and Robinhood Chain. UNCX's recap puts verified losses at $807,600 across 11 transactions; Blockaid had tallied $1.49 million. The bug is a share-accounting error in cancel(). A white hat returned 82.1 million X tokens and 23.87 ETH.
The first confirmed transaction landed at 15:49 UTC on October 14th on Ethereum, sent from 0x78c9b11853e4f183a34c63ffd1924d2319a2f5b3 to an attacker contract at 0x6cebdf095172b355121b93962017975c4601f26c, and cycled tokens through the vesting contract at 0xa98f06312b7614523d0f5e725e15fd20fb1b99f5 before swapping out. PeckShield's first alert put that leg at $86,000. Over the following hours the same pattern was repeated by the original attacker, by copycats, and by MEV bots on the other three chains, 11 confirmed withdrawal transactions in all across 10 tokens, with BNB Chain carrying most of the losses.
Blockaid's root-cause analysis outlines the issue. A vesting position tracks a deposit D, a released amount R, and a share count. When a beneficiary partially releases and the position is then canceled, cancel() deducted the full allocation D minus V instead of the remaining D minus R, leaving phantom shares behind. By donating tokens to the contract, topping up a position, and then releasing and canceling in sequence, an attacker could claim more than had been vested. UNCX's own recap on October 17th confirms an accounting vulnerability exploited through a sequence of public contract actions, with no administrator privileges involved, without publishing the formula.
Blockaid counted $1.49 million at the time of the attacks, split across $969,000 on BNB Chain, $242,000 on Ethereum, $169,000 on Robinhood Chain, and $114,000 on Base. UNCX's recap states a verified economic value of $807,600, of which BNB Chain accounts for $567,500, described as assets extracted and liquidated based on combined ETH and USDT proceeds. Neither side has explained the gap; UNCX's number measures what was sold, while Blockaid's values tokens at the moment they left.
Recovery moved quickly. At 10:25 UTC on October 15th UNCX sent an onchain message to the Ethereum attacker, offering a 10% white-hat bounty for the return of 18.207 ETH to its recovery multisig 0x32f0eB068fD804195629A2CBEE30A7e9CE58c4cb within 48 hours, with a matching BNB Chain message for 510,727 USDT. By October 17th UNCX said a white hat had returned 82,143,476 X tokens and 23.8682 ETH, that no significant balances remained outstanding, and that it was reviewing evidence with legal counsel.
Vesting contracts are a popular target precisely because they hold other projects' tokens and are rarely re-audited after launch. Two features made this worse: the contract accepted arbitrary donations that changed its internal ratios, and cancellation and release could be composed in one transaction. The lesson for anyone deploying shared vesting infrastructure is to make share accounting invariant-checked on every state change and to treat any untracked token inflow as a bug.
Cysic and a Forged Mint Message
TL;DR: On October 17th an attacker minted 10,000,000 CYS on BNB Chain through the bridge of Cysic, a layer-1 for zero-knowledge proof generation, after accessing a database used by bridge services and exploiting a message-processing flaw. The attacker sold 7.2 million CYS and bridged the proceeds to Ethereum as 306.6 ETH, $727,000 at the time. Cysic froze 2.8 million CYS and suspended the bridge.
The mint landed at 12:31 UTC. Within five minutes the attacker began selling: 5.65 million CYS went for 588,315 USDT between 12:36 and 12:41 UTC, and a further 1.55 million for 220 BNB by 12:59 UTC, mostly through the OKX DEX aggregator into PancakeSwap venues. The proceeds left BNB Chain almost immediately via Mayan, deBridge, and SWFT and arrived on Ethereum as 306.6 ETH, which Crypto Times valued at $727,000. At 13:47 UTC, 76 minutes after the mint, Cysic blacklisted the recipient in the CYS token contract, freezing 2.8 million CYS that had not yet been sold.
Cysic's statement on October 18th describes two failures. The attacker first gained unauthorized access to a database used by services supporting the bridge, then exploited a flaw in the bridge's processing logic to submit a fraudulent mint message. The foundation says the incident was limited to bridge message processing, user wallets and mainnet operations were unaffected, an outside security firm is investigating, and the mint amount "does not by itself represent final loss." The bridge stays suspended. CYS, which had a circulating supply of 160.8 million, hit an all-time low of $0.1076 on October 17th.
The pattern is the same as Autheo's five days earlier: a bridge whose mint path trusts an off-chain component, in this case a database that the verifier evidently consulted, rather than a proof that assets were locked on the other side. The blacklist function in the token contract is what limited the damage here, and it is worth noting that the same admin power that froze the attacker could freeze anyone.
BiFi and Interest That Accrued Twice
TL;DR: On October 17th the idle USDT market of the BiFi lending protocol on Ethereum was exploited for $165,400 through a stale interest-accounting delta that was re-applied on every action within a block. The original attacker was front-run by the MEV operator c0ffeebabe.eth, who took the proceeds with a 40.5 million USDT Morpho flash loan.
The profitable transaction landed at 05:43 UTC on October 17th in block 26,210,256, sent from 0xc0ffeebabe5d496b2dde509f9fa189c25cf29671. It borrowed 40,500,000 USDT from Morpho, cycled deposits and withdrawals through BiFi's USDT handler at 0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3, repaid the loan, and unwrapped 68.06 WETH at the end. The attacker who found the bug had deployed an exploit contract and submitted their own transaction one block earlier, at 26,210,255, which succeeded but was too late. Defimon's alert went out on October 18th, which is why some coverage dates the incident a day late.
The cause, per Defimon, is in TokenHandler's first-action check. The USDT market had seen no activity for 264,000 blocks (36 days) so the first action computed a large interest delta covering the idle period. Instead of being applied once, that delta was re-applied on each subsequent action in the same block, so repeated deposit and withdrawal cycles inflated the caller's balance until the market was empty. BiFi has not commented publicly.
Dormant markets are dangerous because the arithmetic that works for one-block gaps gets tested against month-long gaps for the first time in production. Interest for an idle period should be charged once per block, no matter how many actions follow in that block, and payouts should never exceed what the pool actually holds. Protocols with thin markets should consider pausing accrual rather than letting it grow unchecked. Whether c0ffeebabe.eth returns the funds, as that operator sometimes has, is unknown.
XPR Network and a System Contract Nobody Had Read Since 2022
TL;DR: On October 17th an attacker used a flaw in the webauthn wallet system contract of XPR Network, an Antelope-based chain run by Metallicus, to make 67 accounts borrow 1,143,288 USDC on LOAN Protocol, the chain's lending market, in one transaction, then drained a third-party escrow. The USDC never left the bridge and was returned; block producers replaced the attacker's keys by multisig. User liquidation losses are unquantified.
The sequence comes from MadBlocks, one of the chain's block producers, because no official postmortem has appeared. At 02:35 UTC on October 17th the exploit caused 67 accounts to take loans on LOAN Protocol in a single transaction, and 64 seconds later the USDC was sent to the bridge. LOAN was paused at 03:12 UTC, 37 minutes after the first borrow, and the webauthn contract, which had not changed since August 2022, was patched at 03:46 UTC. The bridge never released the funds, and at 05:08 UTC the 1,143,288 USDC went back into LOAN. At 12:24 UTC a separate third-party escrow contract, escrowhold, was drained, and its owner removed the contract's own permission at 13:45 UTC so nothing else could move.
The recovery used governance tools most chains lack. At 16:39 UTC, 19 block producers executed a multisig that replaced the keys on the attacker's account and locked the 7.21 million XPR still sitting there. The only funds to reach an exchange were 85,887,410 XPR deposited to KuCoin, which holds the memo. XPR Network's own messaging has described this as a model for stopping theft within hours; it is also a demonstration that a quorum of producers can rewrite any account's keys.
What users actually lost is unclear. The borrowed USDC was returned, but Metal Pay's community account says the exploit let the attacker withdraw from other users' lending positions and caused liquidations, and KuCoin's write-up reports the attacker swapping 254 million XPR for 380,000 USDC on proton.swaps, sending the price down 10% to 13%. The escrow's loss has not been disclosed. This is the chain's second incident in five weeks, after a $9 million loss on proton.swaps in September, and it is the first where the stated cause is a core system contract rather than an application.
Pirate Chain and an Issuance Check That Did Not Check
TL;DR: On October 14th the privacy chain Pirate Chain found that 39.8 million ARRR, 20% of maximum supply, had been minted without authorization through flaws in the Ironwood turnstile activated on October 3rd. The coins went into the shielded pool. A rollback was announced and withdrawn within a day. No realized loss figure exists.
Pirate Chain's Ironwood upgrade, activated at 19:00 UTC on October 3rd, moved the privacy chain from Sapling to a Halo2-based shielded pool and introduced a turnstile to account for supply as coins crossed between pools. On October 14th the project reported two validation failures in that turnstile's transparent accounting layer: an issuance check that could be bypassed and an incorrect interpretation of output scripts. Together they let someone create 39.8 million ARRR, 20% of the 200 million cap, and move the coins into the shielded pool, where the project says they cannot be fully traced. Pirate Chain says its notary keys and ZK-SNARK cryptography were not compromised.
Around 02:20 UTC on October 15th the project announced a rollback to 20:00 UTC on October 14th, which would have erased the mint. By 16:46 UTC the same day it said a unilateral rollback was "not possible" on a decentralized chain and that the plan was withdrawn. Instead, its delayed-proof-of-work notaries paused notarizations, exchanges and mining pools were asked to halt deposits, withdrawals, and mining, and users were asked not to move funds. NonKYC had already restricted an account linked to the mint.
The minted ARRR had a face value of $10.4 million at CoinGecko's $0.2614 price on October 16th, but that is a conversion of unbacked supply, not money anyone received, and with exchange rails closed it is unclear how much, if any, was sold.
More from the blog

Have questions about securing your crypto?

Subscribe to our newsletter
Be the first to know about our latest news, announcements and events!


