Payouts
2nd Places
3rd Places
Top 10
All
Sherlock
Code4rena
Mar '25
Feb '25
9,151.12 USDC • 8 total findings • Code4rena • oakcobalt
high
A reserve's `d_supply` is incorrectly updated and stored after flash loan execution
high
Potentially sensitive issue - disclosed privately
medium
Removing a pool from the reward zone leads to the loss of ungulped emissions
medium
Potentially sensitive disclosure - 5
medium
Division before multiplications may cause division by zero DOS during low backstop supply
medium
Missing update_rz_emis_data Calls in draw and donate Functions Lead to Incorrect Emissions Distribution
medium
Missing reserve interest accrual prior to backstop take rate update leads to incorrect backstop_credit computation
medium
Flash Loans Allow Borrowing From Frozen Pools, Bypassing Security Controls
high
Public `ServiceNft::updateImpact` call leads to cascading issue
high
ValidatorRegistry::validatorScore/getPastValidatorScore allows validator to earn full rewards without actually engaging with the protocol
medium
Launched tokens are vulnerable to flashloan attacks forcing premature graduation, allowing reward manipulation
medium
Attacker can prevent user from executing application registered through `initFromToken()` in `AgentFactoryV4`.
medium
Functions in FERC20 can't be invoked
medium
BondingTax has invalid slippage implementation
medium
`AgentDAO::_castVote` doesn't check the array of votes emitted, which determine the number of battles fought in `EloCalculator.sol`, allowing the user to increase the ELO of a contribution unfairly, inflating the maturity/impact of `ServiceNFTs`
medium
battleElo is at risk of underflow revert, which may DOS voting
medium
Founder has to double-stake during migration with the initial LP locked in the old veToken
Jan '25
Nov '24
high
Stable swap pools don't properly handle assets with different decimals, forcing LPs to receive wrong shares
high
User cannot claim rewards or close_position, due to vulnerable division by zero handling
high
Logical error in `validate_fees_are_paid` can cause a DoS or allow users to bypass fees if `denom_creation_fee` includes multiple coins including `pool_creation_fee` and the user attempts to pay all fees using only `pool_creation_fee`
high
Incorrect `slippage_tolerance` handling in stableswap `provide_liquidty` function
medium
Penalty fees can be shared among future farms or expired farms, risks of exploits
medium
In edge cases, create_pool can either be reverted or allow user underpay fees.
medium
When a user single-side deposit into a pool, slippage protection is invalid
medium
Vulnerable liquidity slippage calculation doesn't ensure slippage protection due to unscaled assets sum
medium
Liquidity providers can lose tokens due to disproportionate deposits not being properly handled
medium
Insufficient check on asset decimals input in create_pool allows malicious pool to be created with invalid swap results
Sep '24
medium
No way to cancel l1 -< l2 messages
medium
handle_l1_message may unfairly revert l2 tx with sufficient l1 sender balance, due to vulnerable fee charge implementation
medium
Incorrect totalsupply value will be returned due to erroneous return data decode implementation
medium
Account contract does not gracefully handle panics in called contracts
Aug '24
high
Missing `lower<upper` check in `mint_position`
high
Unrevoked approvals allow NFT recovery by previous owner
high
update_emergency_council_7_D_0_C_1_C_58() updates nft manager instead of emergency council
high
swapOut functions have invalid slippage check, causing user loss of funds
medium
If liquidity is insufficient, users may need to pay more tokens in swap2
medium
_onTransferReceived() does not work as intended
medium
swap_2 implementation will randomly revert due to improper check, root cause for failed test ethers_suite_uniswap_orchestrated_uniswap_two
medium
`decrPosition09293696` will not work due to incorrect function signature
medium
No related function to set fee_protocol
Jul '24
Apr '24
high
BalancerConnector has incorrect implementation of totalSupply, positionTVL and total TVL will be invalid
high
`NoyaValueOracle.getValue` returns an incorrect price when a multi-token route is used
high
Numerous errors when calculating the TVL for the MorphoBlue connector
medium
CompoundConnector.sol misses unclaimed rewards in getPositionTVL, resulting in undervalued positionTVL/TVL
medium
Withdrawals in AccountManager are prone to DOS attacks.
medium
The `TVLHelper.sol#getTVL` function is DOSed by the `under collateralized connector`, and as a result, many parts of the protocol may be DOS.
medium
The modifier `onlyExistingRoute` works incorrectly
medium
Incorrect Return Value in `CompoundConnector.getBorrowBalanceInBase()` Affecting TVL Calculation
medium
Missing calls to `_updateTokenInRegistry` leads to incorrect state of tokens in registry
medium
Incorrect modifier condition
medium
In the AerodromeConnector, unclaimed rewards are not included in the calculation of the connectors TVL
medium
Dust donation might DOS all connectors to create new holding positions, by preventing removing existing holding positions
high
Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine
high
Users can get their Kerosene stuck until TVL becomes greater than Dyad's supply
high
User can get their Kerosene stuck because of an invalid check on withdraw
medium
Incorrect deployment / missing contract will break functionality
Mar '24
medium
User might be able to double withdraw during migration
medium
State transition manager is unable to force upgrade a deployed ST, which invalidates the designed safeguard for 'urgent high risk situation'
medium
Freezed Chain will never be unfreeze since `StateTransitionManager::unfreezeChain` is calling `freezeDiamond` instead of `unfreezeDiamond`.
Feb '24
Jan '24
high
When borrowers repay USDS, it is sent to the wrong address, allowing anyone to burn Protocol Owned Liquidity and build bad debt for USDS
medium
formPOL lacks slippage and deadline protection
medium
When forming POL the DAO will end up stucked with DAI and USDS tokens that cannot handle.
medium
changeWallets() can be confirmed immediately after proposalWallets() by manipulating activeTimelock beforehand
medium
PriceFeed is likely to be disabled in times of volatility, causing liquidations and borrows to freeze
medium
Impossible to change managed wallets with `proposeWallets` after first rejection
Dec '23
Nov '23
high
In ZetaTokenConsumerTrident. strategy.sol, swapping zeta for other tokens will always revert due to incorrect exactInputSingle router method being used
medium
When updating gas, if one chain fails, the others should continue to be updated instead of being skipped.
medium
The outbound transaction tracker only keeps track of a maximum of two different transaction hashes, preventing cctxs from being efficiently confirmed and blocking the outbound transaction queue
medium
User not refunded for failed Zeta gas payment in cross chain transaction
medium
PayGasFeeInZetaAndUpdateCctx() is prone to slippage, causing sender overpays the revert gas and lose returned funds
medium
AddToInTxTracker doens't allow permissionless tx validation for Bitcoin chain, InTxTracker permissionless tx validation for Bitcoin chain will always fail
Oct '23
high
Attacker can drain all ETH from AuctionDemo when block.timestamp == auctionEndTime
high
Multiple mints can brick any form of `salesOption` 3 mintings
medium
On a Linear or Exponential Descending Sale Model, a user that mint on the last `block.timestamp` mint at an unexpected price.
medium
Bidder Funds Can Become Unrecoverable Due to 1 second Overlap in `participateToAuction()` and `claimAuction()`
medium
User might be able to double withdraw during migration
medium
State transition manager is unable to force upgrade a deployed ST, which invalidates the designed safeguard for 'urgent high risk situation'
medium
Freezed Chain will never be unfreeze since `StateTransitionManager::unfreezeChain` is calling `freezeDiamond` instead of `unfreezeDiamond`.
Sep '23
Aug '23
Jul '23
Jun '23