Payouts
Top 10
Top 25
Top 50
All
Sherlock
Code4rena
Cantina
Mar '25
Jan '25
Findings not publicly available for private contests.
Dec '24
high
`usdaCollectedFromCdsWithdraw` is not updated during withdrawal for users who did not opt in for liquidation
high
Users can steal USDT using `redeemUSDT()` from the CDS
high
Liquidation can be blocked if `liqAmountToGetFromOtherChain == 0`
high
All the interest earned from liquidation is stuck in the treasury forever
high
missing `omniChainData.noOfLiquidations` update in `liquidationType2()` can lead to loss of CDS depositor who opt in for liquidation
high
option renewal can be done in less than 15 or after 30 days
high
`lastEventTime` is not updated during liquidation and withdrawal thus overinflating the `lastCumulativeRate`
medium
wrong amount of `sUSD` is used to open a short position in synthetix
medium
`submitOffchainDelayedOrder()` is called wrong with wrong paramters
medium
CDS withdrawals can be blocked for depositors who opted for liquidation
medium
10% of CDS depositors profit are stuck in the treasury during withdrawal without a way to retrieve them
medium
The interest from external protocol during liquidation is stuck without a way to withdraw
medium
Yield form LRTs are forever stuck in the protocol and cannot be withdrawn
medium
`downsideProtected` can block withdrawals anytime funds are requested from other chains to cover downside
medium
excess funds will not always be refunded to borrower when they are withdrawing
medium
`liquidationType2()` will always due wrong assumption that Asset:sAsset are minted 1:1
medium
The protocol does not consider Sythetix exchange fees during liquidation
Nov '24
high
Oct '24
high
high
high
high
high
medium
Sep '24
high
medium
medium
high
`CollectionShutdown::execute(...)` can be permanently bricked thus blocking liquidation for a collection
high
Funds will be stuck in the `CollectionShutdown` contract if shutdown execution is cancelled
high
`params.quorumVotes` can overflow
medium
Anyone can DOS `CollectionShutdown::preventShutdown()`
medium
Users can manipulate interest rate using their protected listings
medium
user can create listing with dust amount to block collection shutdown
Aug '24
high
Malicious actors can manipulate the `cross_chain_callback` callback
high
There is no refund mechanism in `ChakraSettlement.processCrossChainCallback` or `ChakraSettlementHandler.receive_cross_chain_callback` function
high
In Starknet already processed messages can be re-submitted and by anyone
high
Invalid token address used in `ChakraSettlementHandler::cross_chain_erc20_settlement(...)` leading to invalid transaction creation and event emission
medium
inconsistency in sender address when creating cross chain messages on Starknet can lead to loss of funds
Jul '24
high
`create_lock(...)` can be DOS'd preventing users from creating lock in the `VotingEscrow`
high
rewards are lost when merging and withdrawing tokens
high
Claimable emissions are locked when a gauge is killed
high
`checkpoint_total_supply()` can prematurely update the `veSupply[t]` and `time_cursor` leading to wrong reward calculations
medium
`update_period(..)` leads to wrong calculation in weekly emissions breaking accounting for the protocol
medium
Votes of expired token in gauges lead to dilution of FLOW emissions for gauges with active votes
medium
The First liquidity provider of a stable pair can DOS the pool
Jun '24
May '24
Apr '24
high
vesters `ZVE` tokens will be locked in the `ZiveoVestingRewards.sol` without a means of withdrawal if a vester's schedule is revoked
high
Rewards will be stuck in the `ZivoeRewardsVesting` contract without a way to withdraw them
medium
Malicious user can prevent excess yield from being forwarded to the `YDL`
Feb '24
Jan '24
Nov '23
Oct '23
Sep '23
Aug '23
May '23
high
Removing a BribeFlywheel from a Gauge does not remove the reward asset from the rewards depo, making it impossible to add a new Flywheel with the same reward token
medium
`unstakeAndWithdraw` inside `BoostAggregator` could lose pendingRewards in certain case
medium
_decrementWeightUntilFree() Possible infinite loop