Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
May '25
high
Apr '25
high
high
Mar '25
high
Attacker can halt staking reward by frequently calling core function that later would call `SymmStaking::_updateRewardsStates`
medium
User can experience DoS when calling `SymmVesting::addLiquidity` second time after some duration
medium
Attacker can reset remaining reward duration to default duration by calling `SymmStaking::notifyRewardAmount` and providing dust amount as additional reward
Feb '25
high
ZENO Token Redemption Returns Negligible USDC Amount Compared to Purchase Price
high
Incorrect decimal handling in `Auction::buy()` leads to massive overpayment for ZENO tokens
high
Multiple issues from unnecessary balance increase calculation in DebtToken.mint
high
Reward manipulation vulnerability in StabilityPool
high
RToken's transfer function lead to loss of funds due to incorrect math
high
Any attempt to liquidate a user will fail, because StabilityPool does not hold crvUSD during operational lifecycle
high
Double Usage Index Scaling in StabilityPool Liquidation Inflates Required CRVUSD Balance
medium
Incorrect utilization rate forces protocol to issue maximum rewards indefinitely
medium
Incorrect DebtToken totalSupply Scaling Breaks Interest Rate Calculations
medium
RToken.transferFrom() Does Not Scale User Balances Due to Stale Liquidity Index
medium
LendingPool deposits do not work with CurveVault due to lack of funds
medium
There is no logic checking for RAACNFT price staleness before minting it
medium
`RToken::calculateDustAmount` are incorrectly calculated, leading to not be able to transfer the accrued dust amount
medium
LendingPool.getUserDebt returns outdated value and can lead to liquidation failure
medium
The earned yield from the Curve vault can never be utilized when withdrawing or borrowing
medium
When the prime rate is updated by the oracle, the values of the sub-rates are not ajdusted accordingly, which can cause loss of assets for borrowers
Jan '25
high
high
high
high
high
medium
medium
high
high
Incorrect fee calculation when protocol call `Pool::claimFees` resulting really small amount of fees
high
`Auction::endAuction` would always fail
medium
USDC Blacklisted address can DoS new bid in `Auction.sol`
medium
Failed auction period still update `sharesPerToken` like it is succeed
medium
`Auction::endAuction` result can be manipulated
medium
Stuck fund if `BalancerRouter::joinBalancerAndPredeposit` amount of `balancerPoolTokenReceived` is higher than the current unfulfilled deposit cap in `PreDeposit`
Dec '24
Nov '24
Oct '24
Sep '24
Aug '24
medium
`ChainlinkEthOracle` and `ChainlinkUsdOracle` did not check `minAnswer` and `maxAnswer`, this may cause wrong price
medium
The `superPool` contract cannot be `paused` and `unpaused` completely when needed (i.e. `superPool` is hacked) because none of the functions in it use the `whenNotPaused` and `whenPaused` modifiers
Jul '24
Apr '24
Mar '24
Feb '24
Jan '24
Dec '23
Oct '23
Sep '23