
Four exploits, four different paths to the same outcome: letting users game internal accounting. Uwerx let token burns distort price. FFIST’s pseudo-random airdrops were predictably gamed. EraLend’s vault allowed borrowing from stale reserve values. And BNO’s emergencyWithdraw skipped reward nullification. Altogether, over $3.6M was drained — each case a warning that even secondary functions like airdrops or withdrawals can sink a protocol if logic breaks at the margins.
On August 2, the Uwerx exploit on the Ethereum Mainnet resulted in a $324K loss due to a price manipulation vulnerability. The root cause of the exploit was that the attacker was able to burn the UWERX tokens, reducing the total supply and artificially increasing the token price. The attacker first borrowed 20,000 ETH through flash loans and swapped the funds for 5,053,637 UWERX tokens. The attacker then executed the private _transfer() function that burned 1% of the transfer amount and reduced the total UWERX token supply. The attacker then sold the UWERX tokens at an artificially inflated price and made a profit

Exploit Contract: 0x4306b12f8e824ce1fa9604bbd88f2ad4f0fe3c54
Transaction Hash: 0x3b19e152943f31fe0830b67315ddc89be9a066dc89174256e17bc8c2d35b5af8
On July 20, the FFIST exploit on the BNB chain resulted in a $110K loss due to a contract logic vulnerability. The private _airdrop() function in the vulnerable contract was being deployed to distribute FFIST tokens to randomized addresses. However, the randomness was guessable as it was calculated based on the last airdrop address, block number, ‘from’ and ‘to’ addresses. Exploiting this vulnerability, the attacker managed to receive FFIST token airdrops and make a profit

Exploit Contract (on BNB Chain): 0x80121da952a74c06adc1d7f85a237089b57af347
Transaction Hash: 0x199c4b88cab6b4b495b9d91af98e746811dd8f82f43117c48205e6332db9f0e0
On July 25, the EraLend exploit on the zkSync resulted in a $2.76M loss due to a read-only reentrancy attack. The attacker first borrowed 14,080,109 USDC and 7,566 ETH through flash loans. These funds were then deposited in the SyncSwapVault vault. By calling the private _burn() function, the attacker reduced the token supply, but the reserve amount didn’t update. Since borrowing depended on reserves, which weren’t updated before the reentrancy call, the attacker borrowed more than they should have, resulting in a profit.

Exploit Contract (SyncSwap Vault on zkSync): 0x621425a1Ef6abE91058E9712575dcc4258F8d091
Transaction Hash: 0x99efebacb3edaa3ac34f7ef462fd8eed85b46be281bd1329abfb215a494ab0ef
On July 18, the BNO exploit on the BNB chain caused a loss of $500K due to a faulty reward calculation mechanism. The exploit contract has an emergencyWithdraw() function, which allows users to instantly withdraw funds. Since this function permits users to withdraw funds immediately, it should have nullified rewards by creating a reward debt. However, the emergencyWithdraw() function sets the reward debt to zero, enabling users to withdraw funds while still collecting rewards.

Exploit Contract (on BNB Chain): 0xdca503449899d5649d32175a255a8835a03e4006
Transaction Hash: 0x33fed54de490797b99b2fc7a159e43af57e9e6bdefc2c2d052dc814cfe0096b9