July 2, 2026
|

OLPC/LABUBU, Edel Finance, Royalties, AIDC: $1.9M Lost to Four Preventable Bugs

Four exploits this week, $1.9M gone — and every dollar of it was preventable.

All four were textbook code-level bugs: a burn that let public skim and sync calls rewrite pool reserves, collateral priced off a spot rate an attacker can move in one transaction, a balance check that minted tokens out of nothing on zero-value transfers, a burn charged to the pool instead of the seller. None of them are novel. They're the same classes we watch drain funds week after week, and every one surfaces the moment you run proactive security tools against the contract, before it ever reaches mainnet.

That's the whole idea behind Olympix: catch the preventable class in the dev loop, so this kind of loss stays a line in a report instead of a headline.

In Brief

  • OLPC/LABUBU lost $1.12M due to a pair-originated amplified burn that let public skim and sync calls rewrite pool reserves and drain the opposite side.
  • Edel Finance lost $403K due to collateral priced off a flash-loan-manipulable spot exchange rate, with no TWAP or manipulation guard.
  • Royalties (Royal1155LD) lost $263K due to a broken balance-conservation check that minted free balance on zero-value transfers.
  • AIDC Token lost $120.9K due to a misattributed burn that charged the pool instead of the seller, deflating reserves on every sell.

OLPC/LABUBU | Amount Lost: $1.12M

On June 20, the OLPC/LABUBU exploit on BNB Chain drained 1,115,903.66 USDT (~$1.12M) from the LABUBU/OLPC PancakeSwap V2 pool. The root cause was a token-side flaw in OLPC: when the AMM pair is the transfer sender, OLPC’s `_updateTransfer()` treats the transfer as a buy, computes an amplified burn (`amount * _decimalsValue`), moves that amount from the pair to the dead address, and sets the delivered amount to 0.

Because PancakeSwap V2 `skim()` is public and forces the pair to transfer its surplus, the attacker looped dust transfers plus `skim(helper)` and `sync()`. Each skim made the pair send OLPC; OLPC then burned an amplified amount from the pair while delivering 0 to the recipient. Twenty `skim` and twenty-one `sync` calls moved ~51.93M OLPC from the pair to the dead address, collapsing the OLPC reserve to ~0.375 while LABUBU remained nearly unchanged.

The attacker then used the distorted fee-on-transfer swap path to release ~688,381 LABUBU, sold ~564,128 (after LABUBU’s sell tax) through LABUBU/WBNB and WBNB/USDT into ~2,041 WBNB, and ultimately cashed out to 1,115,903.66 USDT. This matches the DIP and LittleBoyPlus family: a token-side burn that lets pair-originated transfers rewrite reserves and drain the opposite side.

Attacker/Executor: 0x18d6c39ae9e537f948aa2212d44d8c23944fc188

Exploit Tx: 0x8dabb60a94e5124462e5f494a25c14bcd52f6f4d1f7c665a249496f4c6c24764

Edel Finance | Amount Lost: $403K

On July 1st, the Edel Finance exploit on Ethereum created approximately $403K in protocol bad debt across its lending markets. The root cause was manipulable collateral pricing. wGOOGLx collateral was valued off the wrapped xStocks exchange rate between wGOOGLx and GOOGLx, a spot read with no TWAP and no manipulation guard, so the attacker opened a 180,000 USDC flash loan from Morpho, manipulated that rate to value wGOOGLx at roughly 78x its correct value within a single transaction, and borrowed against the inflated collateral, leaving the protocol with bad debt.

The attacker consolidated the extracted tokens into 224 ETH and deposited into Tornado Cash. This is the oracle and spot-price manipulation family: a lending market that trusts a manipulable exchange rate instead of a manipulation-resistant feed.

Attacker: 0x58428161bB55c14A413945f06cbDeC157F411C76

Exploit Tx: 0xe2320086b2815d21b0927839bd0e306466c29a68d38d5361e99dd21ec5472612

Royalties | Amount Lost: $263K

On June 24th, the Royalties contract exploit on Polygon drained roughly $263K. The root cause was a balance-conservation flaw in the Royal1155LD.beforeLdaTransfer() hook.

When _IS_OWNED_TOKENS_BACKFILL_COMPLETE_ was true and the transferred balance == 0, the hook skipped the from balance update while still incrementing the to balance by 1, so a zero-value transfer that should net to nothing instead credited the receiver free balance out of the accounting gap. The attacker sent 100 zero-value transfers, each one adding balance with no corresponding debit, stacking the position and the reward records that key off it, then claimed the inflated claimable and drained $263K. A transfer must conserve total balance, and the balance == 0 branch updated only one side of the move.

Vulnerable Contract (Royal1155LD / Royalties): 0xfE16Ee78828672e86cf8E42d8A5119AB79877EC7

AIDC Token | Amount Lost: $120.9K

On June 28th, the AIDC token exploit on BSC drained 220.12 WBNB (about $120.9K) from the AIDC/WBNB PancakeSwap V2 pair. The root cause was a burn-accounting flaw in AIDC's own contract that charged the burn to the wrong account.

On a sell, `_sellTransfer()` accrued a 30% burn amount but never deducted it from the seller, creating a burn debt with no source. Any following non-Pair transfer then triggered `_executeAccumulatedBurn()`, which burned that accrued amount from the `uniswapPair` balance rather than the seller, and called `sync()`. Burning the pair's tokens and syncing deflated the AIDC reserve in the AMM, and the attacker repeated that sequence to manipulate the reserve, then swapped to drain the WBNB. The seller incurred the debt and the pool paid it, which is the token-side flaw that broke the pair's accounting. This is the reserve-manipulation-via-token-logic family, alongside DIP, LittleBoyPlus, and OLPC.

Attacker: 0x89eb2c99e970d831525c7a52badc290afa116b63

Exploit Tx: 0x66960f7febf399fa8bd94904398f535c500f4f575dbf025de7b9ab450342645e

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.

  1. Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.
  2. 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.

Exploit Contract: 0x2abc22eb9a09ebbe7b41737ccde147f586efeb6a

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