Bunni, Numa, Woo X: $22.7M Lost to Rounding Bugs, Forced Liquidations, and Malware
Bunni’s $8.4M rounding exploit, Numa’s $313K synthetic price attack, and Woo X’s $14M cloud compromise all point to the same truth: the weakest link in your system is where trust assumptions go unexamined. From wei-level math to DevSec hygiene, small oversights compound into major losses.
In Brief
Bunni lost $8.4M after the withdraw() function used mulDiv instead of mulDivUp, enabling repeated rounding exploits.
Numa lost $313K due to a logic flaw that let an attacker profit from forced liquidations.
Woo X lost $14M after malware compromised a developer’s system.
Hacks Analysis
Bunni | Amount Lost: $8.4M
On September 2nd, the Bunni exploit on Ethereum mainnet resulted in an $8.4M loss. The root cause was that the withdraw() function used mulDiv (rounds down) instead of mulDivUp in newBalance = balance — balance.mulDiv(shares, totalSupply). The attacker borrowed 3M USDT to buy USDC, leaving 28 wei of USDC in the pool. They then burned tiny amounts of liquidity 44 times. Each burn removed extra USDC due to rounding down, while 4 wei remained in the pool. This sequence drove the pool into low liquidity and artificially inflated the USDC price, allowing the attacker to make a profit.
On August 10th, the Numa exploit on Sonic resulted in a $313K loss. The root cause was a logic flaw that let the attacker manipulate cNuma prices by inflating synthValueInEth and forcing liquidations. The NumaVault contract priced cNuma using numaToToken, which was tied to (EthBalance − synthValueInEth). By minting 3.08 nuBTC, the attacker raised synthValueInEth from 160k to 1.35M. This drop in (EthBalance − synthValueInEth) pushed cNuma’s price down from 7.579 to 2.115. Many accounts then appeared under-collateralized. The attacker called the standard liquidateBorrow() function, repaid liquidated accounts’ debt, and received cNuma at the deflated price.
Press enter or click to view image in full size
Press enter or click to view image in full size
cToken.sol (on Sonic): 0x16d4b53de6aba4b68480c7a3b6711df25fcb12d7
On July 24th, the Woo X exploit resulted in a $14M loss due to unauthorized access to 9 user accounts. The root cause was that a Woo X developer was tricked into installing a malware which gave the attacker access to WOO’s cloud systems. The attacker updated the login details for 9 accounts and withdrew funds in BTC, ETH, BNB, and Arbitrum. The Woo X team paused all withdrawals and reimbursed the affected users.
Press enter or click to view image in full size
Transaction (on BTC): 24f8b5824c2c7ff637e2a2a32b5dc290302b63d0fcd44886f833a2f52ba7114f
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.
Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.
In Brief
Remitano suffered a $2.7M loss due to a private key compromise.
GAMBL’s recommendation system was exploited.
DAppSocial lost $530K due to a logic vulnerability.
Rocketswap’s private keys were inadvertently deployed on the server.
Hacks
Hacks Analysis
Huobi | Amount Lost: $8M
On September 24th, the Huobi Global exploit on the Ethereum Mainnet resulted in a $8 million loss due to the compromise of private keys. The attacker executed the attack in a single transaction by sending 4,999 ETH to a malicious contract. The attacker then created a second malicious contract and transferred 1,001 ETH to this new contract. Huobi has since confirmed that they have identified the attacker and has extended an offer of a 5% white hat bounty reward if the funds are returned to the exchange.