
Payouts

Top 10

Top 25

Top 50
All
Sherlock
Code4rena
CodeHawks
Jan '26
Jul '24
high
Malicious borrower can evade full liquidation in `CDPVault::liquidatePosition` by repaying small amounts of debt
medium
PositionAction.decreaseLever() fails to consider the loan fee in Flashlender when calculating loanAmount, as a result, the functionanlity will not work when protocolFee != 0.
medium
DOS attack to SwapAction.transferAndSwap() when using an ERC20 permit transferFrom.
medium
`PositionAction4626::increaseLever` will always revert
medium
Wrong repayment amount used in `PositionAction::_repay`, forcing users to unexpectedly lose funds
medium
`PositionAction.sol#onCreditFlashLoan` may have leftover tokens after conducting `leverParams.auxSwap`.
Apr '24
high
`AccountingManager::resetMiddle` will not behave as expected
high
`executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`
medium
Withdrawals in AccountManager are prone to DOS attacks.
medium
Dust donation might DOS all connectors to create new holding positions, by preventing removing existing holding positions
Mar '24
high
Partially filled Short Records created without a short order cannot be liquidated and exited
medium
Short Orders can be created with ercAmount == minAskEth/2, increasing the gas costs for matching large orders and disincentivizing liquidators from liquidating them.
medium
Valid redemption proposals can be disputed when bad debt occurs by applying it to a SR outside of the proposal
Jan '24
Dec '23
high
A user can steal an already transfered and bridged reSDL lock because of approval
medium
A user can lose funds in `sdlPoolSecondary` if tries to add more sdl tokens to a lock that has been queued to be completely withdrawn
low
Audit Report for SDLPool.sol - Scalability Concern
low
Updates from the `secondary pool` to the `primary pool` may not be sent because there are `no rewards` for the secondary pool
Nov '23
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
high
Borrowers can escape from paying half of the penalty fees by closing the market, and those remaining penalty fees will be covered by the lender who withdraws last
high
Borrower can drain all funds of a sanctioned lender
medium
Function WildcatMarketController.setAnnualInterestBips allows for values outside the factory range
Sep '23
high
The `QVSimpleStrategy.maxVoiceCreditsPerAllocator` can be evaded by the allocator causing that he can allocate infinite credits to the same recipient
high
Malicious registrant can front-run `RFPSimpleStrategy._allocate()` in order to change the `proposalBid` and get a bigger payout in the distribution
medium
The `RFPSimpleStrategy._registerRecipient()` does not work when the strategy was created using the `useRegistryAnchor=true` causing that nobody can register to the pool
medium
Error in counting the `allocator.voiceCreditsCastToRecipient` causing the `recipient` to have more votes and get the majority of the pool
medium
Pool's strategies does not support `fee on transfer` tokens causing an error in the counting system
Aug '23
high
The same signature can be used in different `distribution` implementation causing that the caller who owns the signature, can distribute on unauthorized implementations
low
Signature missing nonce & expiration deadline
low
Centralization Risk for trusted organizers
low
Organizers are not incentivized to deploy and distribute to winners causing that winners may not to be rewarded for a long time and force the protocol owner to manage the distribution
Jul '23
high
Sandwich attack to steal all ERC-20 tokens in the Fees contract
high
Borrower can use Refinance to cancel auctions so they can extend their loan indefinitely
high
During refinance() new Pool balance debt is subtracted twice
high
[H-04] Lender#buyLoan - Malicious user could take over a loan for free without having a pool because of wrong access control
high
Using forged/fake lending pools to steal any loan opening for auction
high
Attacker can steal a loan's collateral and break the protocol
high
Fee on transfer tokens will cause users to lose funds
high
The `borrow` and `refinance` functions can be front-run by the pool lender leading to collateral being seized in the next block
medium
The `borrow` and `refinance` functions can be front-run by the pool lender to set high interest rates
medium
Malicious lender can increment the loan interest using the auction process
high
An attacker can steal `native` token from the `LMPVaultRouterBase` contract due `LMPVaultRouterBase::deposit()` malfunction
high
`Destination` vault rewards will be lost if the `swap` action in the `LMPVault::withdraw()` get more assets than the anticipated
high
The `AbstractRewarder::queueNewRewards()` will transfer from the caller the incorrect rewards amount causing the liquidation process may be stuck and the vaults' rewarder not to receive rewards
high
Rewards will not be distributed to the vault's rewarder due a malfunction in `LiquidationRow::_performLiquidation()`
high
Resetting delegation will result in user funds being lost forever
high
Delegated amounts can be forcefully removed from anyone in the TwabController
high
`Vault.mintYieldFee` FUNCTION CAN BE CALLED BY ANYONE TO MINT `Vault Shares` TO ANY RECIPIENT ADDRESS
medium
Unintended or Malicious Use of Prize Winners' Hooks
Jun '23
high
The `Vault.reduce_position()` function does not increment the account's margin `Vault.margin[account][debt_token]`
medium
The `Vault._update_debt()` function should be executed before admin sets new interest rate via `Vault.set_variable_interest_parameters()`
medium
The `Vault._to_usd_oracle_price()` function uses the same `ORACLE_FRESHNESS_THRESHOLD` for all token prices feeds which is incorrect
high
A malicious `vUSD` withdrawal receiver can cause a DOS in the `vUSD.processWithdrawals()` function
medium
`Chainlink.latestRoundData()` may return stale results
medium
Malicious actor can flood the `vUSD` withdrawals causing a single user to spend a lot of gas when processing their withdrawal via `MarginAccountHelper.withdrawFromInsuranceFund()` or `MarginAccountHelper.removeMarginInUSD()`
May '23
Apr '23
high
Malicious lender can block borrower repayment causing the borrower default
high
Malicious lender can assign his own commitment to another victim lender
high
Malicious borrower can block liquidations causing the lender to receive neither the settlement amount nor the collateral
medium
If the loan is into default, an attacker can force to the lender to receive the collateral instead the settlement amount
Mar '23
Feb '23
high
The ```DepositManagerV1.sol::fundBountyToken()``` must accept only whitelisted tokens.
high
User claim is compromised if the deposited NFT is refunded by the funder.
high
The first assigned winner can close the competition via ```ClaimManagerV1.sol::permissionedClaimTieredBounty()``` even when the other winners are not assigned yet.
medium
```tokenAddresses``` count is not decreased on refunds causing a limitation in deposits.
Jan '23
Dec '22
Nov '22
Oct '22
Sep '22
Aug '22