CBC Token Rug Pull
What happened
CBC Token (CBC) is a BNB Chain token deployed on 21 March 2023 at 0x9E10Cf57…AF4804 and paired with USDT on PancakeSwap. For the first 18 hours after its pool was funded, the code sends 100% of every buy and every sale to the burn address unless the owner turns on openBuy or openSell, and caps each wallet's buys at 500 CBC; after that, the owner can raise two of its three fees with no upper limit, which can take a whole trade or make every taxed trade revert. Liquidity removals are exempt from all fees.
On 6 April 2023 CertiK reported that EOA 0x5d2cb0f4…ea7e7e removed about $113K from the CBC pool, profiting about $81K. De.Fi's REKT database lists this as an exit scam/rug pull and says the EOA had received CBC from the project's deployer twenty days earlier, then moved the funds to another address (liquidity removal tx 0x03f9d3b8…f87ed4).
How it happened
- The constructor creates the CBC/USDT PancakeSwap pair, mints 12,500,000 CBC to the deployer and excludes the owner and the contract from fees.
- The first transfer into the pair sets
createPairTime. For the next 18 hours every taxed buy runsif (openBuy){ BurnFee=amount.mul(20).div(100); }else{ BurnFee=amount.mul(100).div(100); }and checksrequire(buylimit[to].add(amount)<=500*10**18,"transaction amount exceeded"); every taxed sale runs the same pattern withopenSell(5% if open, 100% if not). The sender is debited the full amount and the recipient getsamount.sub(NftDividendsFee).sub(LPFee).sub(BurnFee), so a 100% fee sends everything to 0xdead.setOpenBuyandsetOpenSellare owner-only. - After 18 hours the fees are
_burnFee15,_LPFee20 and_nftDividendsFee15 per thousand.setLPFeePercentandsetNftDividendsFeePercentaccept any value. If the three fees reach 1,000 per thousand a buy or sale delivers nothing; above that the SafeMathsubreverts, so every taxed buy and sale fails.excludeFromFeeandincludeInFeelet the owner choose who pays. _isLiquiditymarks transfers that add to or remove from the pool, andisAddLiquidity||isDelLiquiditysetstakeFee=false, so a liquidity provider can always withdraw without fees.- On 6 April 2023 EOA 0x5d2cb0f4…ea7e7e removed about $113K of liquidity from the pool, profiting about $81K, according to CertiK.
Protocol details
Evidence
- report @CertiKAlert incident report twitter.com
- report CertiK Alert: large liquidity removal on CBC token (CBC) twitter.com
- transaction CBC Token contract creation transaction bscscan.com
- transaction bscscan.com transaction 0x03f9…7ed4 bscscan.com
- address CBC Token (CBC) verified contract code on BscScan bscscan.com
- address bscscan.com address 0x5d2c…7e7e bscscan.com
- analysis Sourcify match for 0x9E10Cf57c90C937c6aB51F4B98ec1d5BfcAF4804 on BNB Chain repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.