Payouts
Top 10
Top 25
Top 50
All
Sherlock
Code4rena
Feb '25
high
Wrong `tickUpper` argument used in `collectFees()` may lead to lock funds permanently
high
Due to an incorrect leverage calculation, users are able to open positions with a leverage bigger than the max leverage allowed
medium
Failure to update `path` in multi-pool swaps results in an out-of-gas (OOG) error during leveraged position openings
Aug '24
Jun '24
Apr '24
high
`SNXConnector.sol` TVL calculation is incorrect.
high
Numerous errors when calculating the TVL for the MorphoBlue connector
high
It is possible to open insolvent position is Silo connector, due to missing check in borrow function
high
SiloConnector `_getPositionTVL` miscalculate the TVL position
medium
Some connectors prevents repayment of a borrow position if it doesn't leave the connector solvent or above minimumHealthFactor
medium
Dust donation might DOS all connectors to create new holding positions, by preventing removing existing holding positions
high
Attacker can make 0 value deposit() calls to deny user from redeeming or withdrawing collateral
high
Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine
high
Kerosene collateral is not being moved on liquidation, exposing liquidators to loss
high
Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults
medium
Attacker can frontrun to prevent vaults from being removed from the dNFT owner's position
medium
Value of kerosene can be manipulated to force liquidate users
medium
Liquidation bonus logic is wrong
Feb '24
high
Since you can reroll with a different fighterType than the NFT you own, you can reroll bypassing maxRerollsAllowed and reroll attributes based on a different fighterType
medium
NFTs can be transferred even if StakeAtRisk remains, so the user's win cannot be recorded on the chain due to underflow, and can recover past losses that can't be recovered(steal protocol's token)
medium
Can mint NFT with the desired attributes by reverting transaction
medium
DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passed.
medium
Fighter created by mintFromMergingPool can have arbitrary weight and element
Jan '24
high
Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`
high
Unauthorized Access to setCurves Function
medium
Selling will be bricked if all other tokens are withdrawn to ERC20 token
medium
onBalanceChange causes previously unclaimed rewards to be cleared
medium
Curves::_buyCurvesToken(), Excess of Eth received is not refunded back to the user.
medium
If a user sets their curve token symbol as the default one plus the next token counter instance it will render the whole default naming functionality obsolete
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
high
The creation of bad debt (`mark-down` of Credit) can force other loans in auction to also create bad debt
Nov '23
Aug '23
Jul '23
May '23
Apr '23
high
Reward accounting is incorrect in BathBuddy contract
medium
BathBuddy contract should implement methods to pause and unpause contract
medium
Zero reward rate calculation impedes low-decimals token distributions
medium
Calling `Position._marketBuy` and `Position._marketSell` functions that calculate `_fee` by dividing by `10000` can cause incorrect calculations
medium
Calling `ExpiringMarket.stop` and `ExpiringMarket.isClosed` functions cannot pause any functionlities of the market
Mar '23
Jan '23