
Payouts

Top 10

Top 25

Top 50
All
Sherlock
Code4rena
CodeHawks
Oct '25
Sep '25
Jul '25
Jun '25
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
high
ZENO Token Redemption Returns Negligible USDC Amount Compared to Purchase Price
high
Incorrect decimal handling in `Auction::buy()` leads to massive overpayment for ZENO tokens
high
RAACNFT mint function receives funds to address(this) but has no way of withdrawing them
high
`BaseGauge` users can claim rewards without staking
high
Users Can Overwrite Existing Locks in veRAACToken Resulting in Permanent Loss of Funds
high
`GaugeController::_calculateReward` implementation will cause smaller shares to be allocated to every gauge
high
Multiple issues from unnecessary balance increase calculation in DebtToken.mint
high
Reward manipulation vulnerability in StabilityPool
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
Any attempt to liquidate a user will fail, because StabilityPool does not hold crvUSD during operational lifecycle
high
Double Usage Index Scaling in StabilityPool Liquidation Inflates Required CRVUSD Balance
high
Boost Miscalculation Leads to Excess Distribution
high
Ownership Parameter Mismatch in LendingPool’s Vault Withdrawal Logic
high
Treasury Balance Tracking Bypass in FeeCollector
high
Attackers can double voting power and veToken amount by locking and increasing
high
Gauge Voting Misallocation Vulnerability
high
Critical Economic Design Flaw in ZENO Zero-Coupon Bond Implementation Leads to Guaranteed User Losses
high
Voting Power Snapshot Missing
high
Gauge stakers won't get any reward due to round-down in user weight calculation
high
Stability pool does not consider RToken balance increase when DEToken is withdrawn
high
Multiple calls to `BaseGauge::notifyRewardAmount()` override existing reward rate, causing loss of rewards for stakers
high
Hardcoded Exchange Rate Leading to Incorrect Deposits and Redemptions
medium
Gauge reward period can be extended indefinitely
medium
LendingPool::getNormalizedIncome() returns stale liquidity index
medium
Users Can Lose Funds and Collateral by Repaying Loans After Liquidation Grace Period Expiry
medium
Liquidation Cannot Be Closed Even With Healthy Position Due To Strict Debt Check
medium
Using balanceOf Instead of Voting Power
medium
There is no logic checking for RAACNFT price staleness before minting it
medium
`RToken::calculateDustAmount` are incorrectly calculated, leading to not be able to transfer the accrued dust amount
medium
Concurrent Oracle Fulfillments Overwrite House IDs, which leads to Incorrect Pricing
medium
Liquidations are enabled when repayments are disabled, causing borrowers to lose funds without a chance to repay
medium
User may not be able to increase the amount of locked RAAC tokens
medium
Lack of Time-Weighted Voting and Weight Decay in GaugeController
medium
RAACToken burns less tokens than expected when feeCollector is unset
medium
The earned yield from the Curve vault can never be utilized when withdrawing or borrowing
medium
closeLiquidation within LendingPool does not allow partial repayments, which can cause massive losses to users within edge case
medium
Updating the prime rate will change the interest for a time that was already passed
medium
Skewed Reward Distribution in GaugeController.sol
low
Incorrect Timestamp Tracking in RAACHousePrice contract
low
Deposits/Withdrawals can be DOS'ed if crvVault::withdraw produces any losses
Jan '25
high
Incorrect Credit Capacity Validation in `VaultRouterBranch.redeem` Enables Locked Collateral Drainage
high
Multiple instances where Vault's `totalAssets()` is not properly scaled to ZAROS precision
high
Underflow when updating credit delegation will result protocol DoS
high
Vaults weth reward is not distributed correctly
high
Unclaimed Rewards Loss Due to Missing Validation in `VaultRouterBranch.stake()`
high
Incorrect Debt Check in `CreditDelegationBranch::settleVaultsDebt` Function
high
Total market debt > 0 when credit deposits > netusdissuance which breaks key protocol logic
high
Incorrect calculation in CreditDelegationBranch::withdrawUsdTokenFromMarket allows attacker mint any amount of usdz
high
Incorrect vault debt validation logic in rebalanceVaultsAssets causes reverts
medium
The logic in `getPremiumDiscountFactor` is inverted: a discount is applied when Vault is in credit and a premium is applied if Vault is in debt
medium
Issue with Decimal Offset Calculation Leading to Weak Donation Protection
medium
Duplicate `Collateral.Data` struct causes admin configuration conflict
low
Protocol not fully compliant with ERC-7201
low
Invalid referral data retrieval
Aug '24
Jul '24
high
Market Disruption and Financial Loss Post-Liquidation
medium
Insufficient checks to confirm the correct status of the sequencerUptimeFeed
medium
An Uninitialized Variable In The `MarketConfiguration::update` Function Causes The `PrepMarket::getIndexPrice` Function To Revert
low
Functions calling `verifyReport` to verify offchain prices from chainlink will fail
low
When transfering the NFT associated to a TradingAccount, the old owner can grief the new owner by leaving an opened MarketOrder that will be executed even though the old owner is not the owner of the TradingAccount.
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
69.19 USDC • 4 total findings • CodeHawks • alexczm
#28
37.93 USDC • 1 total finding • CodeHawks • alexczm
#55
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