
Payouts

1st Places

2nd Places

3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
Sep '25
high
SubTreeBorrowedX/Y is not propogated upward in Liq.sol causing loss of funds for all users
high
Incorrect High tick in poolWalker causes dirty nodes to be present after traversal leading to loss of funds and DOS of protocol
high
Inconsistent calculation of node.fees.makerXFeesPerLiqX128 in splitMakerFees
high
Attackers can drain the protocol tokens
high
Liquidity not instantly minted of siblings of Borrow nodes at the edge(low tick) causes DOS of node.
high
CollectFees doesnt work for positions that have adjusted to reduce their liquidity and EOA's will get their funds stolen
medium
Incorrect calculation of the rootWidth of the segment tree causes many ticks to not be accomodated in the tree
medium
collectFees function changes the asset.timestamp even for non-compounding makers
medium
adjustMaker doesnt allow certain valid adjustments
medium
The NFTManager can be DOS'ed
medium
There is no way for the admin/anyone to claim the JIT Penalty tokens
medium
The protocol doesnt support weird tokens like Tether Gold (that return false on every operation)
Jul '25
Apr '25
high
Mar '25
Feb '25
high
Faulty Gauge Weight Update Formula: Voting Power Delta Not Considered Leading to Arithmetic Underflow and Vote Weight Inconsistency
high
`BaseGauge` users can claim rewards without staking
high
Users Can Overwrite Existing Locks in veRAACToken Resulting in Permanent Loss of Funds
high
Gauge period cannot be updated
high
`GaugeController::_calculateReward` implementation will cause smaller shares to be allocated to every gauge
high
Reward manipulation vulnerability in StabilityPool
high
Incorrect Reward Claim Logic in FeeCollector::claimRewards Causes Denial of Service
high
RToken's transfer function lead to loss of funds due to incorrect math
high
Users can borrow more assets than they have deposited as collateral
high
NFTs Get Permanently Locked in Stability Pool After Liquidation
high
Double Usage Index Scaling in StabilityPool Liquidation Inflates Required CRVUSD Balance
high
Ownership Parameter Mismatch in LendingPool’s Vault Withdrawal Logic
high
Lack of Access Control in BoostController::updateUserBoost Leading to Unauthorized Delegation Overwrite.
high
Attackers can double voting power and veToken amount by locking and increasing
high
Incorrect Debt Token Accounting Due to Multiple Scaling Issues
high
Gauge rewards are not transferred to gauge when distributeRewards() is called
medium
Gauge reward period can be extended indefinitely
medium
Incorrect utilization rate forces protocol to issue maximum rewards indefinitely
medium
LendingPool deposits do not work with CurveVault due to lack of funds
medium
LendingPool::getNormalizedIncome() returns stale liquidity index
medium
`RToken::calculateDustAmount` are incorrectly calculated, leading to not be able to transfer the accrued dust amount
medium
Missing Liquidity Rebalancing in Repayments and Liquidations Leading to Inefficient Liquidity Management
medium
Permanent boost inflation through delegation removal in Boostcontroller.sol
medium
Inconsistent Scaling in RToken Transfer Functions
medium
User's voting power never decays over time.
medium
When bad debt is accumulated the loss is not distributed amongst all suppliers leading to a huge loss for the last supplier to withdraw
medium
Inaccurate interest-rate and liquidity calculations due to omitted `updateInterestRatesAndLiquidity()` call in `setProtocolFeeRate()`
medium
Liquidity rate calculation applies protocol fee as a discount instead of charging it in ReserveLibrary
medium
StabilityVault can be drained of RTokens when LendingPool reserve.liquidityIndex >= 2 RAY
medium
Updating the prime rate will change the interest for a time that was already passed
medium
userBoosts.amount in BoostController will have different scales when using different functions to update it
medium
notifyRewardAmount may always revert if the rewardAmount is greater than periodState.emission
medium
reserve.totalUsage not updated correctly causes incorrect Rtoken minting/burning
low
Limited veRaac Token Supply Triggers DoS, Hampering Proper Governance Participation.
low
Lack of enforcement of the `MAX_TOTAL_LOCKED_AMOUNT`
low
Incorrect Initialization of minBoost in BaseGauge Constructor Breaks Core Contract Functionality
low
Borrow, withdraw, deposit revert due to curve vault not having available liquidity or being paused.
low
Deposits/Withdrawals can be DOS'ed if crvVault::withdraw produces any losses
low
`LendingPool` yield generated in curve vault is lost and cannot be withdrawn by users
low
Inconsistent time boundary check in `Governance::state` and `Governanane::castVote`
low
Multiple Vesting Schedules Can’t Be Created for Beneficiaries in Different Categories
Jan '25
high
high
high
high
high
high
medium
high
Dec '24
Nov '24
Oct '24
high
Subtraction in `variance()` will revert due to underflow
high
Potential underflow vulnerability in score range calculation of `LLMOracleCoordinator::finalizeValidation`, leading to DoS.
medium
Unrestricted validation score range for validators in `LLMOracleCoordinator::validate`.
medium
Users can list assets with price < 1 ERC20 (ETH, WETH), leading to potential DoS vulnerability.
Sep '24
high
high
high
high
high
high
medium
medium
medium
medium
medium
Aug '24
high
Incorrect set up and logic of `referralInfoMap` in `SystemConfig::updateReferrerInfo` function
high
TokenManager - Unlimited withdraw
high
Taker of bid offer will loss assets without any benefit if he calls the DeliveryPlace::settleAskMaker() for partial settlement.
high
`DeliveryPlace::settleAskTaker` Has Incorrect Access Control
high
Formulaic Error Rounds Down Causing Total Loss Of Funds For Bid Takers During Abort
high
Malicious user can drain protocol by bypassing `ASK` offer abortion validation in `Turbo` mode
high
The `DeliveryPlace::settleAskTaker()` function mistakenly uses `makerInfo.tokenAddress` to update the `TokenBalanceType.PointToken` in the `userTokenBalanceMap` mapping, leading to a critical error.
high
[H-4] The function `PreMarkets::listOffer` charges an incorrect collateral amount, allowing users to manipulating collateral rates and drain the protocol's funds
high
listOffer maker can settle offer via settleAskMaker() in Turbo settle type.
high
Fund Withdrawal Flaw in preMarket Allows Users to Avoid Settlement Obligations
medium
Unnecessary balance checks and precision issues in TokenManager::_transfer
low
[Low-01] Missing Access Control in `CapitalPool::approve()` Function Allows any User to call it to set Allowance Amount `TokenContract` to `type(uint256).max`.
low
`listOffer` Unsafely References Fungible Identifiers
low
Validation of `collateralRate` in `PerMarkets::createOffer` function
low
CreateOffer allows eachTradeTax to be 100% ( 10000 bp ) violating code assumptions
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
Wrong minting logic based on total token count across generations
medium
Potential Uninitialized `entropySlots` Reading in `getNextEntropy`, Causing 0 Entropy Mint
medium
Users' ability to nuke will be DoSed for three days after putting NFTs up for sale and cancelling the sale
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
`Golden God` Tokens can be minted twice per generation
medium
Each generation should have 1 "Golden God" NFT, but there could be 0
medium
Discrepancy between nfts minted, price of nft when a generation changes & position of `_incrementGeneration()` inside `_mintInternal()` & `_mintNewEntity()`
medium
TraitForgeNft: Generations without a golden god are possible
medium
Incorrect check against golden entropy value in the first two batches