November 19, 2025
|
Cover image for "Balancer, 0x48cf, dTrinity: $121M Lost to Rounding Bugs, Upgrade Backdoors, and Missing Auth"

Balancer, 0x48cf, dTrinity: $121M Lost to Rounding Bugs, Upgrade Backdoors, and Missing Auth

One rounding flaw. One upgrade path. One unchecked function.
Balancer’s precision bug let 17 wei drain $121M. 0x48cf handed out an upgrade slot with no validation. dTrinity skipped a simple auth check.
These aren’t edge cases. They’re basics. And they’re still costing teams millions.

In Brief

  • Balancer lost $121.1M due to a rounding flaw in its stable pool math.
  • 0x48cf lost $400K after an attacker upgraded its contract to a malicious implementation.
  • dTrinity lost $56K because swapLiquidity() lacked an authorization check.

Hacks Analysis

Balancer | Amount Lost: $121.1M

On November 3rd, the Balancer exploit across multiple chains resulted in a $121.1M loss. The root cause of the expoit was in the Composable Stable Pool’s _swapGivenOut() function, which upscaled swap amounts using the _upscale() function that rounded down instead of up. The attacker swapped precisely 17 wei of osETH, causing the upscaling calculation to lose 5.8% precision due to rounding. The attacker exploited this by repeatedly swapping BPT tokens for underlying assets like WETH and osETH and made a profit.

Press enter or click to view image in full size
Press enter or click to view image in full size

Exploited Contract: 0xdacf5fa19b1f720111609043ac67a9818262850c

Transaction: 0x6ed07db1a9fe5c0794d44cd36081d6a6df103fab868cdd75d581e3bd23bc9742

0x48cf | Amount Lost: $400K

On October 27th, the 0x48cf exploit across Ethereum and Arbitrum resulted in a $400K loss. The root cause of the exploit was an unauthorized access attack where the attacker upgraded the victim’s contract to a malicious implementation containing a backdoor function. This backdoor contained a withdrawal function specifically designed to drain 481M Capital DAO Starter (CDS) tokens.

Press enter or click to view image in full size

Exploited Contract: 0x48cfac26a7418057467582d73d5a5c807234f460

Transaction: 0xbadab26cbbc08e26d3b8d34f3c4da798934dc7f6396ea61f99a86648a9c73da9

dTrinity | Amount Lost: $56K

On September 28th, the dTrinity exploit on Sonic resulted in a $56K loss. affecting three team members. The root cause of the exploit was a missing authorization check in the swapLiquidity() function of the IOdosLiquiditySwapAdapter contract. The attacker called the swap function using victims’ addresses who had previously approved the adapter contract. This let the attacker withdraw victims’ collateral deposits (aTokens) without permission. The attacker used malicious swap routes that sent the collateral to attacker-controlled addresses while returning minimal amounts to pass validation. Three team members lost funds because they had approved the adapter during testing.

Press enter or click to view image in full size

Exploited Contract (on Sonic): 0x9ee939ddc8eaaac72d3cae793b12a09d92624e4a

Transaction: 0xa6aef05387f5b86b1fd563256fc9223f3c22f74292d66ac796d3f08fd311d940

‍

Ready to Shift Security Assurance In-House? Talk to Our Security Experts Today.