Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
Feb '25
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
high
medium
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