https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/82be6c6e-b6c8-4037-baca-19bcaaa9f5e3.jpg

EV_om

Security Researcher

@code4rena: https://t.co/dk4brhs5lC

Contact Me

High

33

Total

Medium

78

Total

$366.05K

Total Earnings

#25 All Time

18x

Payouts

gold

7x

1st Places

silver

1x

2nd Places

bronze

2x

3rd Places

All

Sherlock

Code4rena

Cantina

Jun '25

Starkware - Lombard Integration

Starkware - Lombard Integration

Collaborative Audit • Sherlock • EV_om

Feb '25

velvet-v4

velvet-v4

554.75 USDC • 1 total finding • Cantina • 0xEVom

#15

medium

Finding not yet public.

Jan '25

Initia Rollup Modules

Initia Rollup Modules

24,955 USDC • 4 total findings • Code4rena • RadiantLabs

gold

high

L1->L2 token deposits can be DoS'ed by purposefully providing a large `data` field in `MsgInitiateTokenDeposit`

medium

Events emitted by L2 bridge hooks are discarded

medium

Using a timestamp as a key for processed messages leads to key collisions in the database

medium

Redacted finding

Sep '24

Kakarot

Kakarot

48,461.4 USDC • 13 total findings • Code4rena • RadiantLabs

gold

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

Reserve Core

Reserve Core

74,131.55 USDC • 4 total findings • Code4rena • RadiantLabs

gold

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

Optimism Superchain

Optimism Superchain

92,970.69 OP • 7 total findings • Code4rena • RadiantLabs

gold

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

Olas

Olas

36,262.08 USDC • 18 total findings • Code4rena • EV_om

gold

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

Arbitrum BoLD

Arbitrum BoLD

0 USDC • Code4rena • LessDupes

#10

Apr '24

Renzo

Renzo

23,953.1 USDC • 16 total findings • Code4rena • LessDupes

gold

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

VenusProtocol/governance-contracts

VenusProtocol/governance-contracts

500 USDC • Cantina • 0xEVom

#6

Feb '24

curvance

curvance

6,921.57 USDC • 6 total findings • Cantina • 0xEVom

#17

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Jan '24

Blast

Blast

10,763.41 USDC • 3 total findings • Cantina • 0xEVom

#28

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

Decent

Decent

2,615.63 USDC • 4 total findings • Code4rena • EV_om

silver

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.

lockbox-solana

lockbox-solana

907.58 USDC • 1 total finding • Cantina • 0xEVom

#7

medium

Finding not yet public.

Curves

Curves

267.13 USDC • 9 total findings • Code4rena • EV_om

#16

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

reNFT

reNFT

3,730.94 USDC • Code4rena • EV_om

bronze

Dec '23

Olas

Olas

29,515.84 USDC • 18 total findings • Code4rena • EV_om

gold

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

Ethereum Credit Guild

Ethereum Credit Guild

4,366.36 USDC • 7 total findings • Code4rena • EV_om

#5

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

Shell Protocol

Shell Protocol

5,172.5 USDC • Code4rena • EV_om

bronze