Payouts
2nd Places
3rd Places
Top 10
All
Sherlock
Code4rena
Cantina
CodeHawks
May '25
high
high
high
medium
medium
Apr '25
Findings not publicly available for private contests.
Mar '25
Feb '25
high
Wrong amount is minted to user when they deposit into the lending pool
high
Multiple Delegation by Double Spending Boosts and Lack of Delegation Tracking in BoostController Contract
high
`BaseGauge` users can claim rewards without staking
high
`GaugeController` does not send funds to FeeCollector disrupting fees distribution and causing loss of funds
high
Reward manipulation vulnerability in StabilityPool
high
Incorrect Reward Claim Logic in FeeCollector::claimRewards Causes Denial of Service
high
Attackers can get most of RAACToken rewards by withdrawing dust amount from StabilityPool multiple times
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
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
The total voting power of all veRAAC tokens is wrongly assigned
high
Interest Accrual Failure Due to Incorrect Scaling in RToken Implementation
high
Incorrect Debt Token Accounting Due to Multiple Scaling Issues
high
Gauge rewards are not transferred to gauge when distributeRewards() is called
high
Untracked Direct Fee Transfers from RAACToken to FeeCollector Break Fee Distribution System
high
Ineffective Time-Weighted Average Implementation in Fee Distribution
medium
`MAX_TOTAL_SUPPLY` Bypass in `veRAACToken` via `increase()` Function
medium
Missing Boost Balance and other parameters Update in veRAACToken Functions. Incomplete Boost State Updates Result in Inaccurate Voting Power and Reward Distribution
medium
Incorrect utilization rate forces protocol to issue maximum rewards indefinitely
medium
RToken.transferFrom() Does Not Scale User Balances Due to Stale Liquidity Index
medium
LendingPool deposits do not work with CurveVault due to lack of funds
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
Treasury Contract Deposit Function Can Be Frontrun To Deny Protocol Operations
medium
Workingsupply would always be overwritten in boostcontroller.sol impacting reward calculations
medium
Emergency revoke in RAACReleaseOrchestrator will freeze revoked RAAC tokens in orchestrator
medium
Insufficient Balance Validation in BaseGauge Can Lead to Reward Insolvency
medium
`veRAACToken::_updateBoostState` function sets individual user voting power instead of system-wide totals
medium
Missing Boost State Update in extend() and withdraw()
medium
Gauge emissions revert when emissions are higher than the leftover buffer instead of depositing the difference
medium
User may not be able to increase the amount of locked RAAC tokens
medium
`GaugeController::distributeRewards` can be called multiple times by anyone, leading to excessive reward distribution
medium
Lack of Time-Weighted Voting and Weight Decay in GaugeController
low
Limited veRaac Token Supply Triggers DoS, Hampering Proper Governance Participation.
low
Irreversible emission cap reduction in BaseGauge
low
Impossible to rescue funds from `RToken` contract
low
Incorrect Initialization of minBoost in BaseGauge Constructor Breaks Core Contract Functionality
low
Missing Checkpoint Reset in `veRAACToken::emergencyWithdraw` Function
low
Missing Pause Functionality in veRAACToken Contract Can Be Abused When Emergency Withdrawal Mechanism Is Activated
low
`FeeCollector::updateFeeType` wrong fee share validation leads to impossible update for some fee types
Jan '25
Dec '24
Nov '24
Sep '24
high
high
medium
medium
high
Malicious attacker can brick users claiming sale proceeds from collection shutdown by reclaiming vote
high
`ERC721Bridgable` cannot receive ETH for royalty payouts
high
Users cannot claim royalties for `ERC1155`
high
Users can create permanent protected listings and inflate interest rates
medium
If a collection has been shutdown but later re-initialized, it cannot be shutdown again
medium
Users can dodge `createListing` fees
medium
Users can sandwich unlocking their protected listings to pay less fees
Aug '24
high
Unrestricted Changes to Token Settings Allow Artists to Alter Critical Features
high
Exposed `_removeCredIdPerAddress` & `_addCredIdPerAddress` allows anyone to cause issues to current holders as well as upcoming ones
high
`shareBalance` bloating eventually blocks curator rewards distribution
high
Signature replay in `createArt` allows to impersonate artist and steal royalties
medium
Refunds sent to incorrect addresses in certain cases
medium
Incorrect Fee Handling Prevents Protocol from Updating Fees
May '24
Apr '24
high
Wrong value decremented from `totalSupply` when revoking a vesting schedule will lead to last users not being able to withdraw their funds
high
"Revoked" vesting amount can still be used for voting even after vesting is revoked
high
Any user can grief rewards distribution `rewardRate` variable
medium
A user can split up their junior deposit into smaller portions to extract maximum `maxBonusIncentive` value
Mar '24
Feb '24
high
A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fighters
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
high
Players have complete freedom to customize the fighter NFT when calling `redeemMintPass` and can redeem fighters of types Dendroid and with rare attributes
high
Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`
medium
Can mint NFT with the desired attributes by reverting transaction
medium
Constraints of dailyAllowanceReplenishTime and allowanceRemaining during mint() can be bypassed by using alias accounts & safeTransferFrom()
medium
Fighter created by mintFromMergingPool can have arbitrary weight and element
Jan '24
high
Whitelised accounts can be forcefully DoSed from buying curveTokens during the presale
high
Attack to make ````CurveSubject```` to be a ````HoneyPot````
high
Unauthorized Access to setCurves Function
medium
Protocol and referral fee would be permanently stuck in the Curves contract when selling a token
medium
Selling will be bricked if all other tokens are withdrawn to ERC20 token
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
Nov '23
Oct '23
Sep '23
Aug '23
Jul '23
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
low
Lender fails to giveLoan because of inconsistent length between `loadIds` and `poolIds`
low
Possible DOS by borrowers in `setPool()`