Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
Apr '25
Collaborative Audit • Sherlock • samuraii77
Feb '25
high
Liquidations will be significantly delayed due to incorrect maths
medium
Wrong variable usage upon withdrawing, resulting in unexpected results
medium
Multi-hop swaps are not properly supported, the code will run OOG
medium
Tick spacing of 1 does not work properly
medium
Setting the secondary position will cause unexpected results
Jan '25
high
User will have tokens stuck closing a leverage position due to an unconsidered case
high
Vault inflation attack in `AutoCompoundingPodLp` is possible due to incorrectly minting dead shares
high
Handling tokens in the contract upon adding liquidity results in breaking the optimal one-sided supply amounts
high
`PodUnwrapLocker` can be drained due to an arbitrary input
medium
Users can prevent reward accrual in order to capture rewards distributed before they have joined
medium
`_calculateBasePerPTkn` includes debond fee twice, lowering the price too much
medium
Removing leverage will often revert due to calling an incorrect function
medium
Adding leverage using a podded token will lead to a revert
medium
Leverage position can be impossible to close due to a non-initialized struct field
medium
`_tokenToPodLp` will lower the yield of `AutoCompoundingPodLp` during volatile markets
medium
Bad data would DOS the whole `AutoCompoundingPodLp`
medium
`addInterest` will not update the interest acurately which would enable users to claim rewards for time that they weren't staked inside `LendingAssetVault`
medium
Incomplete logic will allow malicious users to perpetually override the amount to swap to the minimum
medium
`LendingAssetVault::_updateAssetMetadataFromVault()` results in incorrect calculations
medium
Protocol assumes the same deployment on all chains on multiple occasions
medium
MEV bots will steal from users due to an incorrectly manipulated value
medium
Incorrect `min/maxPrice` checks
medium
Incorrect total assets available calculation leads to incorrect utilisation
medium
Removing leverage will often fail when the received pair LP token is insufficient
medium
Pausing rewards will lead to tokens being bricked and users not being able to claim them
medium
A vault can be considered not over-utilized when it is and vice versa upon depositing
medium
Liquidations will revert incorrectly due to an out-of-sync leftover collateral value
medium
Tokens will be stuck in `AutoCompoundingPodLp` if the intermediary swap token is not a reward token
high
high
high
medium
medium
medium
Findings not publicly available for private contests.
Findings not publicly available for private contests.
Dec '24
high
Findings not publicly available for private contests.
Oct '24
Findings not publicly available for private contests.
Sep '24
high
high
high
high
high
high
medium
medium
medium
medium
medium
Aug '24
high
Shares of a user will be wrong after a liquidation
high
Wrong interest rate after a liquidation
high
`getSupplyBalance()` and `getDebtBalance()` return wrong values
high
Interest rate will be wrong after a repay
high
Liquidations will be executed with wrong values
high
Withdrawals might be DoS in certain cases and funds can get stuck
medium
Repayments using the NFT position manager will revert in a lot of cases
medium
Using a hardcoded value for the Chainlink stale price check is dangerous
medium
Not including Chainlink decimals upon calculations will lead to accounting issues
medium
Users can increase their rewards and dilute rewards for other users
medium
Funds will always be stuck in a pool and unexpected reverts will occur upon reallocations
medium
The `Pool` contract can be DoSed
medium
`Superpool` contract doesn't strictly follow EIP4626
medium
Superpool can not be paused despite the implemented functionality
medium
Not removing a token from the position assets upon an owner removing a token from the known assets will cause huge issues
medium
Liquidations will revert if a position has been blacklisted for USDC
medium
Reallocations will often fail upon using USDT
medium
The Redstone oracle can report stale prices
medium
Partial liquidations are next to impossible to happen despite the code being supposed to allow them
Jul '24
high
`mintToken()`, `mintWithBudget()`, and `forge()` in the `TraitForgeNft` Contract Will Fail Due to a Wrong Modifier Used in `EntropyGenerator.initializeAlphaIndices()`
high
The maximum number of generations is infinite
high
Number of entities in generation can surpass the 10k number
high
Incorrect Percentage Calculation in NukeFund and EntityForging when `taxCut` is Changed from Default Value
high
Wrong minting logic based on total token count across generations
medium
There is no slippage check in the `nuke()` function.
medium
Forger Entities can forge more times than intended
medium
Pause and unpause functions are inaccessible
medium
NFTs mature too slowly under default settings.
medium
Imprecise token age calculation results in an incorrect nuke factor, causing users to claim the wrong amount
medium
`Golden God` Tokens can be minted twice per generation
medium
Each generation should have 1 "Golden God" NFT, but there could be 0
medium
Excess ETH from `forgingFee` can get stuck in `EntityForging` under certain situations
medium
Discrepancy between nfts minted, price of nft when a generation changes & position of `_incrementGeneration()` inside `_mintInternal()` & `_mintNewEntity()`
Findings not publicly available for private contests.
Jun '24
high
Users won't liquidate positions because the logic used to calculate the liquidator's profit is incorrect
high
When `sellCreditMarket()` is called to sell credit for a specific cash amount, the protocol might receive a lower swapping fee than expected.
high
The collateral remainder cap is incorrectly calculated during liquidation
medium
Fragmentation fee is not taken if user compensates with newly created position
medium
`executeBuyCreditMarket` returns the wrong amount of cash and overestimates the amount that needs to be checked in the variable pool
medium
Sandwich attack on loan fulfillment will temporarily prevent users from accessing their borrowed funds
medium
Users can not to buy/sell minimum credit allowed due to exactAmountIn condition
medium
Multicall does not work as intended
medium
withdraw() users may can't withdraw underlyingBorrowToken properly
high
A malicious user can steal money out of the vault and other users
medium
Due to the use of `msg.value` in for loop, anyone can drain all the funds from the `THORChain_Router` contract
medium
[M-02] Incorrect call argument in `THORChain_Router::_transferOutAndCallV5`, leading to grief/steal of `THORChain_Aggregator`'s funds or DoS
May '24
Apr '24
high
`totalPrincipalTokensRepaid` and `totalInterestCollected` can be manipulated
high
Lenders might not be able to close their loans and get their collateral back in the case of default
high
Liquidating a loan will leave the liquidator at a loss
medium
A market owner can put borrowers in a very unfavorable position and steal money out of lenders
Mar '24