Banner
https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/1db33a71-d324-43dd-a317-610f68226164.jpg

omnipotent

Security Researcher

Finding bugs so you don’t have to

Contact Me

High

20

Total

Medium

48

Total

$17.86K

Total Earnings

#404 All Time

23x

Payouts

silver

4x

2nd Places

regular

9x

Top 10

regular

12x

Top 25

All

Code4rena

CodeHawks

Apr '25

Kinetiq

Kinetiq

3,123.35 USDC • 3 total findings • Code4rena • Infect3d

silver

high

Buffer Silently Locks Staked HYPE in Contract Without Using Them For Withdrawals Or Providing A Way To Be Pulled Out Or Moved To L1

medium

Processing all withdrawals before all deposits can cause some deposit to not be delegated in `processL1Operations`

medium

Incorrect Balance Check in Validator Redelegation Process May Block Legitimate Rebalancing Operations

Mar '25

Storage Proofs

Storage Proofs

167.35 op • 1 total finding • CodeHawks • sovaslava

#7

low

Missing Event Emission in update_profit_max_unlock_time

Feb '25

Core Contracts

Core Contracts

74.28 usdc • 9 total findings • CodeHawks • sovaslava

#170

high

RAACNFT mint function receives funds to address(this) but has no way of withdrawing them

medium

There is no logic checking for RAACNFT price staleness before minting it

medium

Owner Can Change Vote Results After Voting Ends by Updating Quorum Numbers for New proposals

medium

Emergency revoke in RAACReleaseOrchestrator will freeze revoked RAAC tokens in orchestrator

medium

Unrestricted proposal cancellation allows governance process manipulation

low

Emergency withdraw functionality in veRAACToken takes longer than expected

low

Missing Checkpoint Reset in `veRAACToken::emergencyWithdraw` Function

low

Incorrect Timestamp Tracking in RAACHousePrice contract

low

Treasury's allocated funds not tracked during withdrawals leads to accounting issue where recepient can receive more than allocated funds.

Jan '25

Next Generation

Next Generation

6.32 USDC • 2 total findings • Code4rena • Infect3d

#11

high

Cross-Chain Signature Replay Attack Due to User-Supplied `domainSeparator` and Missing Deadline Check

medium

Lack of deadline check in forwarded request

Ignite

Ignite

1,449.18 usdc • CodeHawks • sovaslava

silver

Dec '24

Lambo.win

Lambo.win

327.13 USDC • 6 total findings • Code4rena • Infect3d

#10

high

LamboFactory can be permanently DoS-ed due to createPair call reversal

high

Minting zero tokens when underlyingToken is not Ether in cashIn()

high

Calculation for `directionMask` is incorrect

medium

Since the cost of launching a new pool is minimal, an attacker can maliciously consume VirtualTokens.

medium

`LamboRebalanceOnUniswap::_getTokenInOut` formula used to compute rebalancing amount is wrong for a UniV3 pool

medium

`sellQuote` and `buyQuote` are missing deadline check in `LamboVEthRouter`

Nov '24

Project

Project

98.19 USDC • 1 total finding • CodeHawks • sovaslava

#12

medium

NativeMetaTransaction.sol :: executeMetaTransaction() failed txs are open to replay attacks.

Oct '24

Dria

Dria

328.26 USDC • 4 total findings • CodeHawks • sovaslava

#9

medium

Platform fees withdrawal will sweep oracle agents earned fees

medium

Users can list assets with price < 1 ERC20 (ETH, WETH), leading to potential DoS vulnerability.

medium

Update state requests or Purchase requests occurring at the end of the phase will not process

medium

BuyerAgent Batch Purchase Failure Due to Asset Transfer or Approval Revocation

Aug '24

The Wildcat Protocol

The Wildcat Protocol

4,628.3 USDC • 6 total findings • Code4rena • Infect3d

silver

high

Lenders can escape the blacklisting of their accounts because they can move their MarketTokens to different accounts and gain the WithdrawOnly Role on any account they want

medium

Blocked accounts keep earning interest contrary to the WhitePaper

medium

AccessControlHooks onQueueWithdrawal() does not check if market is hooked which could lead to unexpected errors such as temporary DoS

medium

Role providers cannot be EOAs as stated in the documentation.

medium

Inconsistency across multiple repaying functions causing lender to pay extra fees.

medium

`FixedTermLoanHooks` allow Borrower to update Annual Interest before end of the "Fixed Term Period"

Jul '24

LoopFi

LoopFi

132.42 USDC • 5 total findings • Code4rena • Infect3d

#37

high

`Flashlender.sol#flashLoan()` should use `mintProfit()` to mint fees. The current implemetation may lead to locked up WETH in PoolV3.

medium

Because of the Asset:Share 1:1 Conversion, if Vault Incur a Loss, the Last User to Withdraw Will Take The Entire Loss

medium

DOS attack to SwapAction.transferAndSwap() when using an ERC20 permit transferFrom.

medium

Malicious actor can abuse the minimum shares check in `StakingLPEth` and cause DoS or locked funds for the last user that withdraws

medium

`PendleLPOracle::_fetchAndValidate` uses Chainlink's deprecated `answeredInRound`

Jun '24

Size

Size

19.93 USDC • 3 total findings • Code4rena • Infect3d

#50

high

Users won't liquidate positions because the logic used to calculate the liquidator's profit is incorrect

medium

Fragmentation fee is not taken if user compensates with newly created position

medium

Users can not to buy/sell minimum credit allowed due to exactAmountIn condition

Apr '24

DYAD

DYAD

395.74 USDC • 7 total findings • Code4rena • Infect3d

#29

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

Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults

high

Attacker Can Frontruns User's Withdrawals To Make Them Reverts Without Costs

medium

Value of kerosene can be manipulated to force liquidate users

medium

setUnboundedKerosineVault not called during deployment, causing reverts when querying for Kerosene value after adding it as a Kerosene vault

medium

No incentive to liquidate when CR <= 1 as asset received < dyad burned

Mar '24

DittoETH

DittoETH

1,975.19 USDC • 3 total findings • Code4rena • Infect3d

#8

medium

If a redemption has N disputable shorts, it is possible to dispute N-1 times the redemption to maximize the penalty

medium

Using cached price to create a proposal reduce the efficacity of redemptions for asset peg

medium

oracleCircuitBreaker: Not checking if price information of asset is stale

PoolTogether

PoolTogether

685.48 USDC • 2 total findings • Code4rena • Infect3d

#8

medium

`TwabLib::getTwabBetween` can return innacurate balances if `_startTime` and `_endTime` aren't safely bounded

medium

The winner can steal claimer fees, and force him to pay for the gas

Jan '24

MorpheusAI

MorpheusAI

2,530.15 USDC • 2 total findings • CodeHawks • sovaslava

silver

high

All claimed rewards will be lost for the users using the account abstraction wallet

medium

Due to no access control on `DistributionV2::_authorizeUpgrade()` anyone can change the implementation contract and can destroy the main Proxy contract.

Salty.IO

Salty.IO

91.94 USDC • 3 total findings • Code4rena • Infect3d

#70

high

User can evade `liquidation` by depositing the minimum of tokens and gain time to not be liquidated

medium

Attacker Can Inflate LP Position Value To Create a Bad Debt Loan

medium

SALT staker can get extra voting power by simply unstaking their xSALT

Dec '23

The Standard

The Standard

14.40 USDC • 4 total findings • CodeHawks • sovaslava

#65

high

Looping over unbounded `pendingStakes` array can lead to permanent DoS and frozen funds

medium

Fees are hardcoded to 3000 in ExactInputSingleParams

low

Removal of approved token from token manager can lead to unintended liquidation of vaults

low

Users with Negligible TST Holdings Might Not Receive Their Share of EUROs Fees

Ethereum Credit Guild

Ethereum Credit Guild

92.5 USDC • 4 total findings • Code4rena • Infect3d

#66

high

The userGaugeProfitIndex is not set correctly, allowing an attacker to receive rewards without waiting

high

Users staking via the `SurplusGuildMinter` can be immediately slashed when staking into a gauge that had previously incurred a loss

medium

Anyone can prolong the time for the rewards to get distributed

medium

Malicious borrower can decrease Guild holders reward

Oct '23

The Wildcat Protocol

The Wildcat Protocol

104.36 USDC • 6 total findings • Code4rena • Infect3d

#47

high

Lenders can escape the blacklisting of their accounts because they can move their MarketTokens to different accounts and gain the WithdrawOnly Role on any account they want

medium

Blocked accounts keep earning interest contrary to the WhitePaper

medium

AccessControlHooks onQueueWithdrawal() does not check if market is hooked which could lead to unexpected errors such as temporary DoS

medium

Role providers cannot be EOAs as stated in the documentation.

medium

Inconsistency across multiple repaying functions causing lender to pay extra fees.

medium

`FixedTermLoanHooks` allow Borrower to update Annual Interest before end of the "Fixed Term Period"

Sep '23

DittoETH

DittoETH

306.81 USDC • 4 total findings • CodeHawks • sovaslava

#23

high

Users Lose Funds and Market Functionality Breaks When Market Reachs 65k Id

medium

Division before multiplication results in lower `dittoMatchedShares` distributed to users

low

Loss of precision in `twapPriceInEther` due to division before multiplication

low

Unlimited Approval Risk in BridgeSteth Contract

Jul '23

PoolTogether

PoolTogether

739.79 USDC • 2 total findings • Code4rena • Infect3d

#26

medium

`TwabLib::getTwabBetween` can return innacurate balances if `_startTime` and `_endTime` aren't safely bounded

medium

The winner can steal claimer fees, and force him to pay for the gas

May '23

Venus Protocol Isolated Pools

Venus Protocol Isolated Pools

556.77 USDC • Code4rena • Infect3d

#29

Mar '23

Asymmetry contest

Asymmetry contest

13.13 USDC • Code4rena • Infect3d

#110