
On 10 August 2025 Numa protocol was exploited for ~$313k. A malicious actor acquired additional Numa tokens by liquidating victim accounts after manipulating the NumaVault by minting nuBTC. Minting the nuBTC inflated the total synth value and in turn, reduced the collateral value of cNuma according to the Numa VaultManager logic.

Much of Numa borrowing and lending logic is forked from Compound where the NumaComptroller checks account collateral status before borrow/liquidation to prevent bad debt.
In cases where a hypothetical shortfall is computed in vars.sumBorrowPlusEffects -vars.sumCollateralNoCollateralFactor within getHypotheticalAccountLiquidityIsolateInternal(),
the collateral value is calculated as cTokenBalance*(exchangeRate*oraclePriceCollateral).
The logic, which is forked from Compound, is standard practice for lending pools to ensure liquidity.
The vulnerability comes from the volatility of cNuma, which, according to the whitepaper is “a non-liquidatable, leveraged-long on a given liquid-staking token“. It's price as collateral is affected by several balances in the protocol and can be manipulated.
The collateral price is fetched by NumaVault.numaToLst() as tokenAmount*sellFee
where tokenAmount is calculated by VaultManager.numaToToken() as (EthBalance - synthValueInEth) / circulatingNuma. EthBalance is the total value available in all vaults at 1,499,561(,701,917,513,022,952,959).
Initially, synthValueInEth, representing all synthetic nuTokens minted, was at 160,092(,928,178,718,414,075,940).
After minting 3.08 nuBTC with flash loaned Num, the total SynthValueEth was at 1,351,479,(760,017,807,443,024,894), where the majority came from the newly synthesized nuBTC.
The resulting collateral price was greatly reduced, leaving victim accounts liquidatable.
Addresses
Exploiter:
Numa:
Step by Step
Attack flow based on transaction hash 0x56abdbc84232658617853f233f52e6b4c855129c7ab163a588c2bac62ea30408


The minting greatly inflated the total synth value and in turn, reduced the collateral price of cNuma, which is now at 2,115,356,229,486,978,933 (2.115e18).

Liquidate borrowers and seize the following:

Then sell 58.8K Numa acquired from liquidation for 301.9K stS.
Finally, repay the flashloan.In total ~973k stS was swapped and bridged from Sonic to Ethereum network.

0xEf1df44E122872d0feF75644AFc63a5C35F97674 bridged 74.3 ETH (~$313K) over five transactions.
A few minutes after, 74.2 ETH was deposited into Tornado Cash.
To keep up to date on the latest incident alerts and statistics follow @certikalert on X, or read our latest analysis on certik.com.