Payouts
2nd Places
3rd Places
Top 10
All
Sherlock
Cantina
CodeHawks
Jul '25
May '25
high
high
high
high
high
medium
Apr '25
high
medium
medium
Feb '25
high
Faulty Gauge Weight Update Formula: Voting Power Delta Not Considered Leading to Arithmetic Underflow and Vote Weight Inconsistency
high
Users Can Overwrite Existing Locks in veRAACToken Resulting in Permanent Loss of Funds
high
Multiple issues from unnecessary balance increase calculation in DebtToken.mint
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
Attackers can get most of RAACToken rewards by withdrawing dust amount from StabilityPool multiple times
high
Boost Miscalculation Leads to Excess Distribution
high
Attackers can double voting power and veToken amount by locking and increasing
high
Ineffective Time-Weighted Average Implementation in Fee Distribution
high
Gauge stakers won't get any reward due to round-down in user weight calculation
high
Multiple calls to `BaseGauge::notifyRewardAmount()` override existing reward rate, causing loss of rewards for stakers
medium
Incorrect accounting in `veRAACToken::emergencyWithdraw` and `veRAACToken::withdraw` due to missing `totalLocked` update
medium
Incorrect DebtToken totalSupply Scaling Breaks Interest Rate Calculations
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
Treasury Contract Deposit Function Can Be Frontrun To Deny Protocol Operations
medium
Owner Can Change Vote Results After Voting Ends by Updating Quorum Numbers for New proposals
medium
Emergency revoke in RAACReleaseOrchestrator will freeze revoked RAAC tokens in orchestrator
medium
Inconsistent Scaling in RToken Transfer Functions
medium
`RAACReleaseOrchestrator::emergencyRevoke()` fails to update `categoryUsed`, leading to token lockup and incorrect accounting
medium
The `TimelockController::executeEmergencyAction()` function does not update the `_operations` mapping, which can lead to an operation being executed twice.
low
Emergency withdraw functionality in veRAACToken takes longer than expected
low
Improper Lock State Updates: Misreported Locked Token Data infects Governance Participation, rewards distribution and Harms Protocol Trust.
low
Incorrect Initialization of minBoost in BaseGauge Constructor Breaks Core Contract Functionality
low
`FeeCollector::updateFeeType` wrong fee share validation leads to impossible update for some fee types
low
`DebtToken::burn`'s Return Values are wrong
low
`DebtToken::burn()` event parameters and return values are incorrect
low
`collateralLiquidated` value is always 0 when emitted in the `LiquidationFinalized` event
low
Precision Loss Issue in FeeCollector Contract
Jan '25
medium
Dec '24
medium
Nov '24
Oct '24
high
medium
Sep '24
high
high
Aug '24
high
Incorrect set up and logic of `referralInfoMap` in `SystemConfig::updateReferrerInfo` function
high
TokenManager - Unlimited withdraw
high
Native token withdrawal fails until manually approved
high
`DeliveryPlace::settleAskTaker` Has Incorrect Access Control
high
Formulaic Error Rounds Down Causing Total Loss Of Funds For Bid Takers During Abort
high
The `DeliveryPlace::settleAskTaker()` function mistakenly uses `makerInfo.tokenAddress` to update the `TokenBalanceType.PointToken` in the `userTokenBalanceMap` mapping, leading to a critical error.
high
Fund Withdrawal Flaw in preMarket Allows Users to Avoid Settlement Obligations
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
When the `DeliveryPlace::settleAskMaker()` function calls `tokenManager.addTokenBalance()` to update the user balance, the `TokenBalanceType` parameter uses an operation, resulting in a balance update error
Jul '24
high
Inadequate Checking of `isIncreasing` when trader adjusts position size
high
Incorrect logic for checking isFillPriceValid
high
Market Disruption and Financial Loss Post-Liquidation
high
`LiquidationBranch::checkLiquidatableAccounts()` executes `for` loop with wrong values, causing array out of bounds to be recovered, the program will not work as expected
high
Wrong parameter passed in `TradingAccount::deductAccountMargin` function that results in excess margin withdrawal
medium
An Uninitialized Variable In The `MarketConfiguration::update` Function Causes The `PrepMarket::getIndexPrice` Function To Revert
medium
Incorrect liquidatable checking for market order creation
Findings not publicly available for private contests.
May '24
high
`LibChainlinkOracle::getTokenPrice` will always return instantaneuous prices
high
LibUsdOracle will compromise Beanstalk peg due to wrong price and DoS
medium
The declaration and use of `LibTractor::BLUEPRINT_TYPE_HASH` are inconsistent with the structure `struct Blueprint`, and the standard is confusing. It is recommended to unify the standard
low
`BeanL1RecieverFacet#recieveL1Beans()` would never work
high
`PositionMarginProcess::updateAllPositionFromBalanceMargin()` error, users can update `position.initialMarginInUsdFromBalance` in all positions by depositing a small amount of funds
high
`AccountFacet::batchUpdateAccountToken()` lacks calling permission. Anyone can call this method to add any number of tokens to the account.
Apr '24
high
`Edition::mintBatch()-0x904868b2`, the attacker can mint token for free
medium
`Edition::mint()` does not check and process user input, `_refundExcess()` is invalid, and an attacker can tail the transaction and consume the ETH in the contract to mint tokens for free
medium
`Edition::mintBatch()-0x1f7fdffa` design error, batch minting tokens does not work as expected
high
liquidity providers can maliciously burn tokens, causing the final result of `ZivoeITO::claimAirdrop()` to deviate significantly from expectations.
high
Every time you call `ZivoeRewards::depositReward()` to deposit a reward, after the reward is vested, there will almost always be some dust left behind, and the amount will expand infinitely.
high
Anyone can call `ZivoeRewardsVesting::depositReward()` to deposit the corresponding token, lower the `rewardRate` and postpone `periodFinish` indefinitely
Mar '24
high
`Auctioneer::auction()` using wrong lotId value to get `Routing storage routing` failed to save data as expected.
high
Calling `AuctionHouse::claimProceeds()` will modify `Auction.Status`, causing `AuctionHouse::claimBids()` to revert and the buyer cannot withdraw the token.
high
Repeated calculation of `routing.funding` resulted in `AuctionHouse::claimProceeds()::prefundingRefund` error, and the seller could not normally get the proceeds (quote tokens) and refund (base tokens)
Feb '24
Jan '24