Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
Jun '25
Collaborative Audit • Sherlock • EV_om
Feb '25
medium
Jan '25
Sep '24
high
Prover can cheat in felt_to_bytes_little due to value underflow
high
Unauthorized Contracts Can Bypass Precompile Authorization via delegatecall in Kakarot zkEVM
high
RIPEMD-160 precompile yields wrong hashes for large set of inputs due to off-by-one error
high
Non-finalized dictionary in RIPEMD160 allows forging of output
medium
No way to cancel l1 -< l2 messages
medium
Address aliasing is wrongfully applied even to EOAs
medium
RIPEMD160 precompile crashes with a Cairo exception for some input lengths
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
`DualVmToken` can be abused to cause RPC-level reverts by revoking native token approval to Kakarot
medium
Account contract does not gracefully handle panics in called contracts
medium
Reentrancy check in account_contract can be easily circumvented
medium
`ExponentiationImpl::pow()` returns 0 for 0^0
Jul '24
medium
Users can dodge losses due to StRSR era changes with instant operations
medium
Dutch auctions can fail to settle if any other collateral in the basket behaves unexpectedly
medium
RToken can manipulate distribution to avoid paying DAO fees
medium
The traceEnd in BackingManager isn't updating correctly
high
L2 precompile calls can be impossible to reproduce on L1
high
LPP metadata can be altered after the challenge period is over, allowing incorrect states to be proven
high
The LPP challenge period can cause malicious and freeloader claims to be uncounterable and can also cause freeloader claims to be abused to entrap honest challengers
medium
The `MIPS` doesn't implement `ADD`, `ADDI`, and `SUB` instructions correctly
medium
The LPP proposer may not be reimbursed their gas costs by the bonds at `MAX_GAME_DEPTH` because `step()` does not check if the LPP proposer is the one that called it
medium
In some cases, proper CLOCK_EXTENTSION time cannot be ensured to generate the initial instruciton trace
medium
Missing address check for instructions LH and LHU
May '24
high
CM can `delegatecall` to any address and bypass all restrictions
high
Permanent DOS in `liquidity_lockbox` for under $10
high
Arbitrary tokens and data can be bridged to `GnosisTargetDispenserL2` to manipulate staking incentives
medium
Griefing attack on `liquidity_lockbox` withdrawals due to lack of minimum deposit
medium
LP rewards in `liquidity_lockbox` can be arbitraged
medium
Withdraw amount returned by `getLiquidityAmountsAndPositions` may be incorrect
medium
Users will lose all ETH sent as `cost` parameter in transactions to and from Optimism
medium
Staked service will be irrecoverable by owner if not an ERC721 receiver
medium
Non-normalized amounts sent via Wormhole lead to failure to redeem incentives
medium
Unauthorized claiming of staking incentives for retainer
medium
Attacker can cancel claimed staking incentives on Arbitrum
medium
Blocklisted or paused state in staking token can prevent service owner from unstaking
medium
Refunds for unconsumed gas will be lost due to incorrect refund chain ID
medium
Attacker can make claimed staking incentives irredeemable on Gnosis Chain
medium
The `msg.value` - `cost` for multiple cross-chain bridges are not refunded to users
medium
The `refundAccount` is erroneously set to `msg.sender` instead of `tx.origin` when `refundAccount` specified as `address(0)`
medium
StakingToken.sol doesn't properly handle FOT, rebasing tokens or those with variable which will lead to accounting issues downstream.
medium
Less active nominees can be left without rewards after an year of inactivity
Apr '24
high
The amount of `xezETH` in circulation will not represent the amount of `ezETH` tokens 1:1
high
Incorrect withdraw queue balance in TVL calculation
high
Withdrawals of rebasing tokens can lead to insolvency and unfair distribution of protocol reserves
high
Withdrawals logic allows MEV exploits of TVL changes and zero-slippage zero-fee swaps
high
ETH withdrawals from EigenLayer always fail due to `OperatorDelegator`'s nonReentrant `receive()`
high
Incorrect calculation of queued withdrawals can deflate TVL and increase ezETH mint rate
high
Withdrawals can be locked forever if recipient is a contract
high
DOS of `completeQueuedWithdrawal` when ERC20 buffer is filled
medium
Pending withdrawals prevent safe removal of collateral assets
medium
Incorrect exchange rate provided to Balancer pools
medium
Potential Arbitrage Opportunity in the xRenzoDeposit L2 contract
medium
Deposits will always revert if the amount being deposited is less than the bufferToFill value
medium
Not handling the failure of cross chain messaging
medium
`calculateTVL` may run out of gas for modest number of operators and tokens breaking deposits, withdrawals, and trades
medium
Withdrawals and Claims are meant to be pausable, but it is not possible in practice
medium
Withdrawals can fail due to deposits reverting in `completeQueuedWithdrawal()`
Mar '24
Feb '24
high
medium
medium
medium
medium
medium
Jan '24
high
high
medium
high
When `DecentBridgeExecutor.execute` fails, funds will be sent to a random address
high
Due to missing checks on minimum gas passed through LayerZero, executions can fail on the destination chain
high
Users will lose their cross-chain transaction if the destination router do not have enough WETH reserves.
high
Anyone can update the address of the Router in the DcntEth contract to any address they would like to set.
medium
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
Single token purchase restriction on curve creation enables sniping
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
CM can `delegatecall` to any address and bypass all restrictions
high
Permanent DOS in `liquidity_lockbox` for under $10
high
Arbitrary tokens and data can be bridged to `GnosisTargetDispenserL2` to manipulate staking incentives
medium
Griefing attack on `liquidity_lockbox` withdrawals due to lack of minimum deposit
medium
LP rewards in `liquidity_lockbox` can be arbitraged
medium
Withdraw amount returned by `getLiquidityAmountsAndPositions` may be incorrect
medium
Users will lose all ETH sent as `cost` parameter in transactions to and from Optimism
medium
Staked service will be irrecoverable by owner if not an ERC721 receiver
medium
Non-normalized amounts sent via Wormhole lead to failure to redeem incentives
medium
Unauthorized claiming of staking incentives for retainer
medium
Attacker can cancel claimed staking incentives on Arbitrum
medium
Blocklisted or paused state in staking token can prevent service owner from unstaking
medium
Refunds for unconsumed gas will be lost due to incorrect refund chain ID
medium
Attacker can make claimed staking incentives irredeemable on Gnosis Chain
medium
The `msg.value` - `cost` for multiple cross-chain bridges are not refunded to users
medium
The `refundAccount` is erroneously set to `msg.sender` instead of `tx.origin` when `refundAccount` specified as `address(0)`
medium
StakingToken.sol doesn't properly handle FOT, rebasing tokens or those with variable which will lead to accounting issues downstream.
medium
Less active nominees can be left without rewards after an year of inactivity
medium
Replay attack to suddenly offboard the re-onboarded lending term
medium
`totalBorrowedCredit` can revert, breaking gauges.
medium
Inability to withdraw funds for certain users due to `whenNotPaused` modifier in `RateLimitedMinter`
medium
No check for sequencer uptime can lead to dutch auctions failing or executing at bad prices
medium
LendingTerm debtCeiling function uses creditMinterBuffer incorrectly
medium
Anyone can prolong the time for the rewards to get distributed
medium
Malicious borrower can decrease Guild holders reward
Nov '23