Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
May '25
Findings not publicly available for private contests.
high
high
high
high
high
high
high
high
high
high
high
medium
medium
medium
Apr '25
high
high
high
high
high
high
medium
medium
Mar '25
Feb '25
high
Wrong refundExecutionFee in _handleReturn
high
Loss of fee refund due to premature state deletion in `PerpetualVault::_handleReturn` function
medium
Wrong index causes last depositor to always get execution fee refund if cancelFlow is called by keeper to cancel a withdrawal
medium
Functions that rely on chainlink prices cannot be queried on avalanche due to sequencer uptime check.
medium
User may withdraw more than expected if ADL event happens
high
Wrong amount is minted to user when they deposit into the lending pool
high
Multiple issues from unnecessary balance increase calculation in DebtToken.mint
high
Reward manipulation vulnerability in StabilityPool
high
Users can borrow more assets than they have deposited as collateral
high
RToken is Not Interest Bearing Due to Broken Liquidity Index Calculation
high
Ownership Parameter Mismatch in LendingPool’s Vault Withdrawal Logic
high
Attackers can double voting power and veToken amount by locking and increasing
medium
`MAX_TOTAL_SUPPLY` Bypass in `veRAACToken` via `increase()` Function
medium
Gauge reward period can be extended indefinitely
medium
veRaac Token Constraint MAX_TOTAL_SUPPLY Can Be Bypassed. Vulnerability Disrupts Protocol Functionality and Undermines Governance Quorum.
medium
Multiple Critical Calculation And Logic Errors in `RToken::mint/burn` Function
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
Cordinated group of attacker can artificially lower quorum threshold during active proposals forcing malicious proposals to pass without true majority support.
medium
getNormalizedDebt will return a wrong Amount when Timedelta is 0.
medium
closeLiquidation within LendingPool does not allow partial repayments, which can cause massive losses to users within edge case
medium
Inaccurate interest-rate and liquidity calculations due to omitted `updateInterestRatesAndLiquidity()` call in `setProtocolFeeRate()`
medium
Updating the prime rate will change the interest for a time that was already passed
low
Limited veRaac Token Supply Triggers DoS, Hampering Proper Governance Participation.
low
Lack of enforcement of the `MAX_TOTAL_LOCKED_AMOUNT`
low
Missing Checkpoint Reset in `veRAACToken::emergencyWithdraw` Function
low
Inconsistent time boundary check in `Governance::state` and `Governanane::castVote`
low
Wrong event emission
Jan '25
high
Incorrect Credit Capacity Validation in `VaultRouterBranch.redeem` Enables Locked Collateral Drainage
high
Unclaimed Rewards Loss Due to Missing Validation in `VaultRouterBranch.stake()`
medium
rebalanceVaultsAssets incorrectly accounts vaults' depositedUsdc
medium
Incorrect swap amount in CreditDelegationBranch::settleVaultsDebt improperly inflates the tokens to swap leading to DOS or/and oversettling vault debt
medium
`_fillOrder` should update the vaults before deleveraging
low
`initiateSwap` allows users to initiate swap even when the vault is paused
low
FullFill Swap will Fail due to minAmountOut wrong calculation
low
Lack of an update of the pool state will cause Initiate Swap to return an incorrect Amountout
low
Total debt used in fulfiling swap actions is wrong because we did not update the vault.
low
Users can initiate multiple swaps against the same vault/collateral causing the users to lntiate swaps that can not be fulfillable.
medium
medium
Findings not publicly available for private contests.
Dec '24
medium
Incorrect Total Assets Calculation in _harvestAndReport Leading to Share Value Manipulation and Irredeemable Assets
medium
not adding `claimable` balance to the total assets in `_harvestAndReport` can cause losses.
medium
Inflated `totalAssets` in `StrategyMainnet`, `StrategyArb`, and `StrategyOp` Contracts
high
A malicious User Can withdrawal funds twice from the Contract.
high
A malicious Actor can claim a Higher amount than they deposited by calling Create order twice in the same timestamp
high
Attacker can exploit the fill order in the oracleless contract.
high
A malicious User can Spend receivers allowance in the STOP-LIMIT contract
Nov '24
Oct '24
Sep '24
high
No LSTs transfer on node operator withdrawals resulting in stuck funds and loss for node operators
medium
Remove splitter will always revert if there are some rewards left on splitter contract
medium
Griefer can permanently DOS all the deposits to the `StakingPool`
medium
Vault fee receivers can conditionally block rewards distribution flow
low
Oversight while Updating the basis fee in staking pool without updating rewards strategy
Aug '24
high
when The user Tries to liquidate the max debt a mistake was made to return Debt Shares instead of Amount as normally implemented by aave in the Liquidation Calculations this will lead to a lot of financial miscalculation.
high
Withdrawing Max colllateral makes the asset Collaterals temporarily unusable because Get Supply balance should return the Total asset but instead it returns Supplyshares + asset value.
high
Contract fails to deduct the liquidation fee from the User but instead withdraws this directly from the pool.
medium
DOS to withdrawal Function when the user (whales) tries to withdraw the max liquidity available
medium
CuratedVault Deposit function will revert in some cases even the Main POOL is not frozen and Supply cap is not reached because of an Incorrect Deposit Calculation.
medium
After a User withdraws The interest Rate is not updated accordingly leading to the next user using an inflated index during next deposit before the rate is normalized again
medium
Liquidation fails to update the interest Rate when liquidation funds are sent to the treasury thus the next user uses an inflated index
medium
Setting Liquidation fee to 20-30% will break the protocol's liquidation function and can only work if the contract RiskModule is forked updated and redeployed
medium
Superpool has a Pause Function But can never be paused.
medium
Incorrect Asset Check in SuperPool whenever we want to Deposit into Any POOL Contract.
high
TokenManager - Unlimited withdraw
high
Taker of bid offer will loss assets without any benefit if he calls the DeliveryPlace::settleAskMaker() for partial settlement.
high
Formulaic Error Rounds Down Causing Total Loss Of Funds For Bid Takers During Abort
high
The `DeliveryPlace::settleAskTaker()` function mistakenly uses `makerInfo.tokenAddress` to update the `TokenBalanceType.PointToken` in the `userTokenBalanceMap` mapping, leading to a critical error.
Jul '24
high
Availability of deposit invariant can be bypassed
high
Liquidation doesn't account for penalty when calculating collateral to give, allowing users to profit by borrowing and self-liquidating
high
`Flashlender.sol#flashLoan()` should use `mintProfit()` to mint fees. The current implemetation may lead to locked up WETH in PoolV3.
medium
WhenNotPaused modifier in the CDPVault can be bypassed by users
medium
`PendleLPOracle::_fetchAndValidate` uses Chainlink's deprecated `answeredInRound`
high
`SettlementBranch._fillOrder` does not guarantee the collateral of a position is enough to pay the future liquidation fee.
high
Market Disruption and Financial Loss Post-Liquidation
medium
A malicious User can DOS all offchain orders making them unexecutable and leaving the protocol in an insolvent state. Also all offchain Trades can also be DOSed for honest parties that do not meet the fillorder requirements (no try and catch)
low
Offchain orders are not cancelled after the account has been liquidated
low
Trading accounts can exceed the maximum number of allowed open positions.
low
Settlement fills liquidatable Market Orders
high
Wrong calculation of Accure Reward in Comptroller.sol
high
Repaying a Loan with Permit in UErc20.sol Wrongly calculates the interest to be paid this Reduce/Increase profits for the protocol as interest calculations are not performed correctly.
high
Maxclaimable token by msg.sender(user) in Vouch Faucet can be bypassed due to insufficient check.
medium
Users can borrow below the minBorrow limit because of a bypass caused by remainder being greater than 0.
Jun '24
May '24
high
Malicious User can call `lockOnBehalf` repeatedly extend a users `unlockTime`, removing their ability to withdraw previously locked tokens
high
Invalid validation allows users to unlock early
medium
Missing disapproval check in `LockManager.sol::approveUSDPrice` allows simultaneous approval and disapproval of a price proposal
high
Availability of deposit invariant can be bypassed
high
Liquidation doesn't account for penalty when calculating collateral to give, allowing users to profit by borrowing and self-liquidating
high
`Flashlender.sol#flashLoan()` should use `mintProfit()` to mint fees. The current implemetation may lead to locked up WETH in PoolV3.
medium
WhenNotPaused modifier in the CDPVault can be bypassed by users
medium
`PendleLPOracle::_fetchAndValidate` uses Chainlink's deprecated `answeredInRound`
Apr '24
Mar '24