Payouts
2nd Places
3rd Places
Top 10
All
Sherlock
Code4rena
CodeHawks
Jul '25
Apr '25
Mar '25
Feb '25
high
Faulty Gauge Weight Update Formula: Voting Power Delta Not Considered Leading to Arithmetic Underflow and Vote Weight Inconsistency
high
Multiple Delegation by Double Spending Boosts and Lack of Delegation Tracking in BoostController Contract
high
`GaugeController` does not send funds to FeeCollector disrupting fees distribution and causing loss of funds
high
Incorrect Reward Claim Logic in FeeCollector::claimRewards Causes Denial of Service
high
Users can borrow more assets than they have deposited as collateral
high
NFTs Get Permanently Locked in Stability Pool After Liquidation
high
Treasury Balance Tracking Bypass in FeeCollector
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
high
Voting Power Snapshot Missing
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
Liquidation Cannot Be Closed Even With Healthy Position Due To Strict Debt Check
medium
Treasury Contract Deposit Function Can Be Frontrun To Deny Protocol Operations
medium
Emergency revoke in RAACReleaseOrchestrator will freeze revoked RAAC tokens in orchestrator
medium
Inconsistent Scaling in RToken Transfer Functions
medium
Fee-on-transfer token handling issue in `Treasury::deposit` leads to permanent fund loss
medium
Wrong access control in `RAACToken::setFeeCollector`, `RAACToken::setSwapTaxRate`, `RAACToken::setBurnTaxRate`
medium
Cordinated group of attacker can artificially lower quorum threshold during active proposals forcing malicious proposals to pass without true majority support.
medium
Inconsistent Fee Collector Address Validation in RAACMinter: Denial of Service for Disabling Fee Collection
medium
Skewed Reward Distribution in GaugeController.sol
low
Missing Controller Functions in GaugeController
low
Incorrect Initialization of minBoost in BaseGauge Constructor Breaks Core Contract Functionality
low
Missing Checkpoint Reset in `veRAACToken::emergencyWithdraw` Function
low
`FeeCollector::updateFeeType` wrong fee share validation leads to impossible update for some fee types
low
Treasury's allocated funds not tracked during withdrawals leads to accounting issue where recepient can receive more than allocated funds.
Jan '25
Dec '24
Nov '24
Oct '24
Sep '24
Aug '24
high
Incorrect set up and logic of `referralInfoMap` in `SystemConfig::updateReferrerInfo` function
high
Native token withdrawal fails until manually approved
high
[H-4] The function `PreMarkets::listOffer` charges an incorrect collateral amount, allowing users to manipulating collateral rates and drain the protocol's funds
Jul '24
high
The maximum number of generations is infinite
high
Number of entities in generation can surpass the 10k number
high
Wrong minting logic based on total token count across generations
medium
There is no slippage check in the `nuke()` function.
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
TraitForgeNft: Generations without a golden god are possible
high
Invalid validation allows users to unlock early
high
Single plot can be occupied by multiple renters
high
Failure to Update Dirty Flag in transferToUnoccupiedPlot Prevents Reward Accumulation On Valid Plot
medium
Users can farm on zero-tax land if the landlord locked tokens before the LandManager deployment
Jun '24
May '24
high
Invalid validation allows users to unlock early
high
Single plot can be occupied by multiple renters
high
Failure to Update Dirty Flag in transferToUnoccupiedPlot Prevents Reward Accumulation On Valid Plot
medium
Users can farm on zero-tax land if the landlord locked tokens before the LandManager deployment
Apr '24
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
Users can get their Kerosene stuck until TVL becomes greater than Dyad's supply
high
Missing enough exogeneous collateral check in `VaultManagerV2::liquidate` makes the liquidation revert even if (DYAD Minted > Non Kerosene Value)
high
User can get their Kerosene stuck because of an invalid check on withdraw
high
Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults
medium
Incorrect deployment / missing contract will break functionality
medium
No incentive to liquidate when CR <= 1 as asset received < dyad burned
Mar '24
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
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
Player can mint more fighter NFTs during claim of rewards by leveraging reentrancy on the `claimRewards() function `
high
Fighters cannot be minted after the initial generation due to uninitialized `numElements` mapping
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
Whitelised accounts can be forcefully DoSed from buying curveTokens during the presale
high
Attack to make ````CurveSubject```` to be a ````HoneyPot````
high
Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`
high
Unauthorized Access to setCurves Function
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
Missing deadline check allow pending transactions to be maliciously executed
medium
Fees are hardcoded to 3000 in ExactInputSingleParams
low
`costInEuros` calculation will incur precision loss due to division before multiplication
Nov '23
Oct '23
high
Attacker can drain all ETH from AuctionDemo when block.timestamp == auctionEndTime
high
Attacker can reenter to mint all the collection supply
high
Adversary can block `claimAuction()` due to push-strategy to transfer assets to multiple bidders
medium
Auction winner can prevent payments via `safeTransferFrom` callback
Sep '23
Aug '23
Jul '23
Jun '23