High
Solo
Total
Medium
Solo
Total
Total Earnings
#123 All Time
Payouts
1st Places
2nd Places
Top 10
All
Sherlock
Code4rena
Cantina
CodeHawks
Mar '25
medium
medium
Jan '25
high
medium
medium
medium
May '24
high
LP rewards are accumulated after burning in the redeem flow
high
Funds may be stored in the wrong contract on depositing liquidity
high
Execution fee for providing liquidity may be taken from the wrong vault
medium
`tradeCollateralTokenDatas[token].totalCollateral` is never reduced
medium
Keeper pays gas for all withdrawals
Mar '24
Jan '24
high
Whitelised accounts can be forcefully DoSed from buying curveTokens during the presale
high
Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`
high
Unauthorized Access to setCurves Function
medium
Protocol and referral fee would be permanently stuck in the Curves contract when selling a 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
Rewards can be drained because of lack of access control
high
Looping over unbounded `pendingStakes` array can lead to permanent DoS and frozen funds
medium
Fees are hardcoded to 3000 in ExactInputSingleParams
medium
Wrong Implementation of `LiquidationPool::empty` excludes holder with pending stakes when decreasing a position, resulting in exclusion from asset distribution
medium
Incorrect calculation of amount of EURO to burn during liquidation
medium
Removing assets in the `TokenManager` leads to major issues
low
Removal of approved token from token manager can lead to unintended liquidation of vaults
low
Lack of Minimum Amount Check in `SmartVaultV3::mint`, `SmartVaultV3::burn`, and `SmartVaultV3::swap` Can Result in Loss of Fees
Nov '23
high
Oct '23
high
try-catch does not store the state when it is reverted
high
Yield in trove is lost when closing a strategy vault
medium
`emergencyPause` does not check the state before running && can cause loss of funds for users
medium
The transfer of ERC-20 tokens with blacklist functionality in process functions can lead to stuck vaults
medium
`emergencyClose()` may fail to repay any debt
medium
Missing minimum token amounts in the emergency contract functions allows MEV bots to take advantage of the protocols emergency situation
medium
Chainlinks oracle feeds are not immutable
medium
Missing fees allow cheap griefing attacks that lead to DoS
Sep '23
high
Owner of a bad ShortRecord can front-run flagShort calls AND liquidateSecondary and prevent liquidation
high
Flag can be overriden by another user
high
Margin callers can drain the TAPP during liquidation by willingly increase gas costs with the shortHintArray
low
Loss of precision in `twapPriceInEther` due to division before multiplication
low
Lack of Duplicate ID Check in combineShorts Function
low
Changes in `dittoShorterRate` affect retroactively to accrued Ditto yield shares
low
The protocol allows less flags to be generated than possible which could lead to a DoS of the primary liquidation process
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
medium
Blacklisted STADIUM_ADDRESS address cause fund stuck in the contract forever
low
If a winner is blacklisted on any of the tokens they can't receive their funds
low
Potential DOS due to Gas Exhaustion Due to Large Array Iteration in `_distribute` Function
low
DAI Tokens at Risk Due to Lack of address(0) Check in distribute
Jul '23
high
Tokens with less than 18 decimals allow for draining of funds
high
Lender contract can be drained by re-entrancy in `setPool`
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
Lender can Sandwich a borrower to seize his collateral
medium
The `borrow` and `refinance` functions can be front-run by the pool lender to set high interest rates
0.54 USDC • 2 total findings • CodeHawks • cosine
#142