Payouts
2nd Places
Top 10
Top 25
All
Sherlock
Code4rena
CodeHawks
Dec '24
high
LamboFactory can be permanently DoS-ed due to createPair call reversal
high
Minting zero tokens when underlyingToken is not Ether in cashIn()
high
Calculation for `directionMask` is incorrect
medium
Since the cost of launching a new pool is minimal, an attacker can maliciously consume VirtualTokens.
medium
`LamboRebalanceOnUniswap::_getTokenInOut` formula used to compute rebalancing amount is wrong for a UniV3 pool
medium
`sellQuote` and `buyQuote` are missing deadline check in `LamboVEthRouter`
Oct '24
Aug '24
high
Lenders can escape the blacklisting of their accounts because they can move their MarketTokens to different accounts and gain the WithdrawOnly Role on any account they want
medium
Blocked accounts keep earning interest contrary to the WhitePaper
medium
AccessControlHooks onQueueWithdrawal() does not check if market is hooked which could lead to unexpected errors such as temporary DoS
medium
Role providers cannot be EOAs as stated in the documentation.
medium
Inconsistency across multiple repaying functions causing lender to pay extra fees.
medium
`FixedTermLoanHooks` allow Borrower to update Annual Interest before end of the "Fixed Term Period"
Jul '24
high
`Flashlender.sol#flashLoan()` should use `mintProfit()` to mint fees. The current implemetation may lead to locked up WETH in PoolV3.
medium
Because of the Asset:Share 1:1 Conversion, if Vault Incur a Loss, the Last User to Withdraw Will Take The Entire Loss
medium
DOS attack to SwapAction.transferAndSwap() when using an ERC20 permit transferFrom.
medium
Malicious actor can abuse the minimum shares check in `StakingLPEth` and cause DoS or locked funds for the last user that withdraws
medium
`PendleLPOracle::_fetchAndValidate` uses Chainlink's deprecated `answeredInRound`
high
Market Disruption and Financial Loss Post-Liquidation
high
`LiquidationBranch::checkLiquidatableAccounts()` executes `for` loop with wrong values, causing array out of bounds to be recovered, the program will not work as expected
medium
Insufficient checks to confirm the correct status of the sequencerUptimeFeed
low
Functions calling `verifyReport` to verify offchain prices from chainlink will fail
low
Deleting CollateralTypes from the CollateralLiquidationPriority allows traders to be liquidated for free and getting back their full collateral as if they were not liquidated.
low
Fees are not sent to their respective recipients when dealing with low decimals tokens
Jun '24
May '24
high
`DrawManager::finishDraw` can revert when the sum of rewards to distribute is more than available reserve
medium
ClaimPrize hooks gas limit can be violated using a gas bomb, making `claimPrizes` revert
medium
`Claimers` can receive less `feePerClaim` than they should if some prizes are already claimed or if reverts because of a reverting hook
Apr '24
high
Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine
high
Users can get their Kerosene stuck until TVL becomes greater than Dyad's supply
high
Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults
high
Attacker Can Frontruns User's Withdrawals To Make Them Reverts Without Costs
medium
Value of kerosene can be manipulated to force liquidate users
medium
setUnboundedKerosineVault not called during deployment, causing reverts when querying for Kerosene value after adding it as a Kerosene vault
medium
No incentive to liquidate when CR <= 1 as asset received < dyad burned
Mar '24
Jan '24
Dec '23
high
The userGaugeProfitIndex is not set correctly, allowing an attacker to receive rewards without waiting
high
Users staking via the `SurplusGuildMinter` can be immediately slashed when staking into a gauge that had previously incurred a loss
medium
Anyone can prolong the time for the rewards to get distributed
medium
Malicious borrower can decrease Guild holders reward
Oct '23
high
Lenders can escape the blacklisting of their accounts because they can move their MarketTokens to different accounts and gain the WithdrawOnly Role on any account they want
medium
Blocked accounts keep earning interest contrary to the WhitePaper
medium
AccessControlHooks onQueueWithdrawal() does not check if market is hooked which could lead to unexpected errors such as temporary DoS
medium
Role providers cannot be EOAs as stated in the documentation.
medium
Inconsistency across multiple repaying functions causing lender to pay extra fees.
medium
`FixedTermLoanHooks` allow Borrower to update Annual Interest before end of the "Fixed Term Period"
Sep '23
high
Owner of a bad ShortRecord can front-run flagShort calls AND liquidateSecondary and prevent liquidation
medium
Possible DOS on deposit(), withdraw() and unstake() for BridgeReth, leading to user loss of funds
low
BridgeRouterFacet::withdraw() and unstake() can revert when amount * TVL > uint88 because of PRBMathHelper::mulU88
Jul '23
May '23
Mar '23