BEVO NFT Hack

Reported loss $45K
BNB Chain
Other

What happened

On 30 January 2023 the BEVO NFT art token ($BEVO) on BNB Chain was exploited for 144 WBNB, roughly $45,000. BEVO is a SafeMoon-style reflection token: balances are derived from a reflection total (_rTotal) through getRate(). Its public deliver() function let any holder burn their own reflections, which shrinks _rTotal and instantly inflates every other holder's balance, including the PancakeSwap pair's. The attacker used flash-loaned WBNB to buy BEVO, called deliver(), and then pulled the pair's inflated balance out with skim() and a swap. The BEVO price fell about 99% afterwards.

Exploit transaction: 0xb97502d3976322714c828a890857e776f25c79f187a32e2d548dda1c315d2a7d

Exploiter: 0xd3455773c44bf0809e2aeff140e029c632985c50. The DeFiHackLabs reproduction labels this address a front-runner and names 0x68fa774685154d3d22dec195bc77d53f0261f9fd as the original attacker.

How it happened

  1. The exploiter flash-borrowed 192.5 WBNB from a PancakeSwap pair and swapped it into the BEVO/WBNB pair for about 757,417 BEVO.
  2. They called deliver() with their BEVO balance. This lowered _rTotal, changed the rate returned by getRate(), and so increased the computed BEVO balance of every holder, including the pair, without any tokens moving.
  3. Because the pair now held more BEVO than its recorded reserves, they called skim() to transfer the excess to themselves.
  4. They called deliver() again, inflating the pair's balance once more, and then called the pair's swap to take 337 WBNB out while sending in no BEVO.
  5. After repaying the flash loan, about 144 WBNB was left as profit.

Protocol details

Classification NFT / Token & Share Accounting
Protocol Type Exploit/Other
Affected asset / contract BEVO
Implementation language Solidity

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.