Back to Blog

[Not All Tokens Are Good] The Quick Analysis of the Paraluni Attack

Code Auditing
March 13, 2022

The Paraluni project was attacked on the morning of March 13 (UTC +8 time). The attacker leveraged two vulnerabilities to attack the protocol. The first vulnerability is the lack of the verification of passed tokens, and the second is the traditional reentrancy. The attacker launched a couple of attack transactions. In the following, we will use one of them 0xf2bba649019ce40a67f0fb74e5e800257d359d9094b6ba6faea14ffa4d3446b1 to illustrate the whole attack process.

Step I: add liquidity to paraRouter

The attacker invoked addLiquidity to the BTCB-WBNB pool (index = 9) and the pool will mint the lp token to UBT (a token created by the attacker.) After this operation, the UBT token holds the pool's lp token. Note that, the BTCB and WBNB is borrowed from the flash loan.

Step II: invoke depositByAddLiquidity of MasterChef The attacker invoked depositByAddLiquidity by providing the _pid as 9 and using the UGT and UBT token as the parameters. However, the function does not check whether the pool’s reserve tokens are equal to the passed tokens (UGT and UBT).

Then the function invokes the depositByAddLiquidityInternal which then invokes addLiquidity of paraRouter. This function will invoke the UGT and UBT token’s transferFrom function. However, these two tokens are controlled by the attacker. In the transferFrom function of UBT, the attacker invoked deposit function of the MasterChef contract to deposit the LP token obtained in the first step into MasterChef contract.

Unfortunately, due to the balance change in the deposit function, the newBalance after addLiquidity is much larger than the oldBalance. In this way, the attacker got double credits in MasterChef contract.

Step III: get profit

The attacker finally invoked UBT.withdrawAsset and MasterChef.withdraw to redeem the lptoken to get BTCB and WBNB. Since the number of liquidity is more than the attacker should have, the attacker will get profits.

Lessons

Besides the reentrancy problem, the passed tokens have not been verified is one of the root causes. We have seen other cases with similar issue, as in the Visor case and the Coin98 case.

About BlockSec

BlockSec is a pioneering blockchain security company established in 2021 by a group of globally distinguished security experts. The company is committed to enhancing security and usability for the emerging Web3 world in order to facilitate its mass adoption. To this end, BlockSec provides smart contract and EVM chain security auditing services, the Phalcon platform for security development and blocking threats proactively, the MetaSleuth platform for fund tracking and investigation, and MetaSuites extension for web3 builders surfing efficiently in the crypto world.

To date, the company has served over 300 esteemed clients such as MetaMask, Uniswap Foundation, Compound, Forta, and PancakeSwap, and received tens of millions of US dollars in two rounds of financing from preeminent investors, including Matrix Partners, Vitalbridge Capital, and Fenbushi Capital.

Official website: https://blocksec.com/

Official Twitter account: https://twitter.com/BlockSecTeam

Sign up for the latest updates
Bitget's $387.5M Off-Chain Breach: Beyond Keys and Contracts
Security Insights

Bitget's $387.5M Off-Chain Breach: Beyond Keys and Contracts

On September 24, 2026, attackers exploited a vulnerability in a third-party security product, obtained internal credentials, and forged withdrawal commands. The resulting transfers moved approximately $387.5M from some of Bitget's operational wallets across Ethereum, other EVM networks, XRP Ledger, Zcash, and TRON; private keys and cold wallets remained intact. This deep dive summarizes the disclosed incident path and fund flow, examines rapid conversion into native assets and the ecosystem recovery response, proposes a systematic defense-in-depth framework for institutions, and explains how authorized blockchain penetration testing can validate cross-layer assumptions.

~$11.3M Lost: Multicall Router, Nostra | BlockSec Weekly
Security Insights

~$11.3M Lost: Multicall Router, Nostra | BlockSec Weekly

This report, covering 2026/09/14 - 2026/09/20, examines two security incidents with approximately $11.3M in combined losses, on Ethereum and Starknet. In the larger one, a multicall router accepted its own address as a dispatch target, so the nested call reached the Gateway module of a Safe wallet carrying the router's own already-authorized identity instead of the external caller's, and roughly 2,900 `aEthrsETH` was routed out of that wallet into an attacker-created Uniswap v4 pool. On Starknet, Nostra's oracle integration required a minimum of only one aggregated source, so when only two of the three configured price sources reached the aggregation, a manipulated thin-pool quote averaged with a normal quote to value `NSTR` at roughly $49.52, supporting approximately $3.5M of borrowing against overvalued collateral.

~$320M Lost: Liquid Network, Symbiosis Exploits | BlockSec
Security Insights

~$320M Lost: Liquid Network, Symbiosis Exploits | BlockSec

This report, covering 2026/09/07 - 2026/09/13, examines two security incidents that caused approximately $320M in losses, including the Liquid Network exploit of 2026/09/06 that the previous report did not cover. The larger was that Liquid Network exploit, where the rangeproof validation cache in Elements derived its key by hashing four fields — two of them variable in length — concatenated with nothing marking the boundaries between them, so a verdict recorded for one output was returned for another whose proof was never examined, letting the attacker create 4,000 unbacked L-BTC and peg out nearly all of them as bitcoin. On the Bitcoin route of the Symbiosis cross-chain bridge, spanning BNB Smart Chain, Ethereum and Rootstock, off-chain code that reads Bitcoin deposits took the depositor's identity from a field the depositor controls and then subtracted its fee from the deposit without checking whether the fee itself was negative, letting a 330-satoshi deposit mint `46,116,860,184.27388234 syBTC`; the pools it had to be sold through held only 11.26 syBTC, so the loss to liquidity providers and users came to an estimated 9.97 BTC (~$770K).

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit