Banner
https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/70763c21-6c60-418c-ba12-4067d8e5198b.png

0XOMNIPOTENT

Security Researcher

Contact Me

High

21

Total

Medium

3

Solo

46

Total

$47.16K

Total Earnings

#210 All Time

25x

Payouts

gold

1x

1st Places

silver

2x

2nd Places

bronze

1x

3rd Places

All

Code4rena

Cantina

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

eigenlayer-contracts

eigenlayer-contracts

16,507.81 USDC • 1 total finding • Cantina • infect3d

#7

high

Finding not yet public.

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

Part 2

Part 2

1,520.33 usdc • 6 total findings • CodeHawks • tricko

#13

high

Underflow when updating credit delegation will result protocol DoS

high

Unclaimed Rewards Loss Due to Missing Validation in `VaultRouterBranch.stake()`

medium

Incorrect weight assignment in Vault::updateVaultAndCreditDelegationWeight leads to overleveraging vault positions and insolvency

medium

Slippage Higher than Expected in `CurveAdapter.executeSwapExactInput()` and `FeeDistributionBranch._performMultiDexSwap()` Multi-Hop Swaps

medium

Decimal Precision Mismatch Causing Incorrect Swap Reverts in `StabilityBranch.initiateSwap()`

low

CurveAdapter uses non-existent exchange_with_best_rate() method, breaking fee conversion on Arbitrum.

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`

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`

Zaros Part 1

Zaros Part 1

24.70 USDC • 2 total findings • CodeHawks • tricko

#73

high

Inadequate Checking of `isIncreasing` when trader adjusts position size

low

Trading accounts can exceed the maximum number of allowed open positions.

CCIP v1.5

CCIP v1.5

569.38 USDC • CodeHawks • tricko

#10

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

May '24

TSender

TSender

12,500 USDC • 1 total finding • CodeHawks • tricko

gold

medium

`TSender.huff` and `TSender_NoCheck.huff` contracts will transfer funds to wrong addresses when called with specific calldata.

Beanstalk Part 3

Beanstalk Part 3

1,395.89 USDC • 1 total finding • CodeHawks • tricko

bronze

low

Soil issuance is computed incorrectly if `twaDeltaB` is negative while `instDeltaB` is positive.

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

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

725.12 USDC • 6 total findings • CodeHawks • tricko

#7

high

Rewards can be drained because of lack of access control

medium

No incentive to liquidate small positions could result in protocol going underwater

medium

Divergence in the pricing method for collateral within the `calculateMinimumAmountOut()` may result in vaults transitioning into an uncollateralized state after executing swaps.

medium

Wrong Implementation of `LiquidationPool::empty` excludes holder with pending stakes when decreasing a position, resulting in exclusion from asset distribution

medium

Attacker can force reduce `minAmountOut` from vault swaps, making they vulnerable to being sandwiched.

low

Anyone with TST tokens can monitor the mempool and frontrun mint/burn functions to get EUROs rewards without even staking.

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"

Aug '23

Sparkn

Sparkn

0.99 USDC • 1 total finding • CodeHawks • tricko

#86

low

Owner can incorrectly pull funds from contests not yet expired

Jul '23

Foundry DeFi Stablecoin CodeHawks Audit Contest

Foundry DeFi Stablecoin CodeHawks Audit Contest

983.50 USDC • 1 total finding • CodeHawks • tricko

#6

medium

DoS of full liquidations are possible by frontrunning the liquidators

CodeHawks Escrow Contract - Competition Details

CodeHawks Escrow Contract - Competition Details

37.93 USDC • 1 total finding • CodeHawks • tricko

#55

medium

High - Funds can be lost if any participant is blacklisted

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