https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/defaults/default_avatar_1.png

evo

Security Researcher

Contact Me

High

34

Total

Medium

32

Total

$27.85K

Total Earnings

#311 All Time

18x

Payouts

gold

1x

1st Places

bronze

3x

3rd Places

regular

7x

Top 10

All

Code4rena

Jan '25

Pump Science

Pump Science

2,179.97 USDC • 2 total findings • Code4rena • Evo

bronze

medium

Bonding Curve Invariant Check Incorrectly Validates SOL Balance Due to Rent Inclusion

medium

Abrupt fee transition from 8.76% to 1% at slot 250 due to incorrect linear decrease formula

Dec '24

Lambo.win

Lambo.win

7,265.22 USDC • 9 total findings • Code4rena • Evo

gold

high

Anyone can call `LamboRebalanceOnUniwap.sol::rebalance()` function with any arbitrary value, leading to rebalancing goal i.e. (1:1 peg) unsuccessful.

high

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

high

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

medium

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

medium

Rebalance profit requirement prevents maintaining VETH/WETH peg

medium

Rebalance will be completely dossed if OKX commision rate goes beyond the fee limits

medium

Accumulated ETH in the LamboVEthRouter will be irretrievable

medium

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

medium

Users can prevent protocol from rebalancing for his gain and cause loss of funds for protocol and its users

Nov '24

MANTRA DEX

MANTRA DEX

821.08 USDC • 2 total findings • Code4rena • Evo

#13

high

Block gas limit can be hit due to loop depth

medium

Emergency Unlocking Penalty Makes Long Duration Positions Economically Advantageous

Oct '24

LoopFi

LoopFi

1,952.59 USDC • 7 total findings • Code4rena • Evo

#4

high

Availability of deposit invariant can be bypassed

high

Malicious Borrower Cycle Exploits to Inflate Interest Rates

high

Malicious borrower can evade full liquidation in `CDPVault::liquidatePosition` by repaying small amounts of debt

high

It is nearly impossble for Liquidators to use `liquidatePosition()` to fully pay off a non bad-debt position.

high

Rewards might be lost due to the error that _updateRewardIndex() might advance lastBalance without advancing index for a token.

medium

`BalancerOracle::update()` can return stale price

medium

Bringing a position from unsafe to safe by liquidation paritally

Aug '24

Phi

Phi

938.08 USDC • 1 total finding • Code4rena • Evo

#6

high

Signature replay in `signatureClaim` results in unauthorized claiming of rewards

Jul '24

LoopFi

LoopFi

7,423.35 USDC • 7 total findings • Code4rena • Evo

bronze

high

Availability of deposit invariant can be bypassed

high

Malicious Borrower Cycle Exploits to Inflate Interest Rates

high

Malicious borrower can evade full liquidation in `CDPVault::liquidatePosition` by repaying small amounts of debt

high

It is nearly impossble for Liquidators to use `liquidatePosition()` to fully pay off a non bad-debt position.

high

Rewards might be lost due to the error that _updateRewardIndex() might advance lastBalance without advancing index for a token.

medium

`BalancerOracle::update()` can return stale price

medium

Bringing a position from unsafe to safe by liquidation paritally

May '24

Munchables

Munchables

0.01 USDC • 2 total findings • Code4rena • Evo

#16

high

Malicious User can call `lockOnBehalf` repeatedly extend a users `unlockTime`, removing their ability to withdraw previously locked tokens

medium

Missing disapproval check in `LockManager.sol::approveUSDPrice` allows simultaneous approval and disapproval of a price proposal

LoopFi

LoopFi

386.08 USDC • 7 total findings • Code4rena • Evo

bronze

high

Availability of deposit invariant can be bypassed

high

Malicious Borrower Cycle Exploits to Inflate Interest Rates

high

Malicious borrower can evade full liquidation in `CDPVault::liquidatePosition` by repaying small amounts of debt

high

It is nearly impossble for Liquidators to use `liquidatePosition()` to fully pay off a non bad-debt position.

high

Rewards might be lost due to the error that _updateRewardIndex() might advance lastBalance without advancing index for a token.

medium

`BalancerOracle::update()` can return stale price

medium

Bringing a position from unsafe to safe by liquidation paritally

Apr '24

NOYA

NOYA

37.2 USDC + NOYA stars • 6 total findings • Code4rena • Evo

#66

high

`AccountingManager::resetMiddle` will not behave as expected

high

`executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`

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

Attacker can increase the length of `withdrawQueue` by withdrawing 0 amount of tokens frequently

medium

Missing calls to `_updateTokenInRegistry` leads to incorrect state of tokens in registry

DYAD

DYAD

501.93 USDC • 5 total findings • Code4rena • Evo

#18

high

User can get their Kerosene stuck because of an invalid check on withdraw

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

`VaultManagerV2.sol::burnDyad` function is missing an `isDNftOwner` modifier, allowing a user to burn another user's minted DYAD

medium

Incorrect deployment / missing contract will break functionality

Mar '24

DittoETH

DittoETH

67.25 USDC • 1 total finding • Code4rena • Evo

#22

medium

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

Jan '24

Salty.IO

Salty.IO

87.74 USDC • 1 total finding • Code4rena • Evo

#73

high

First Liquidity provider can claim all initial pool rewards

Aug '23

Dopex

Dopex

2,065.2 USDC • 7 total findings • Code4rena • Evo

#6

high

The settle feature will be broken if attacker arbitrarily transfer collateral tokens to the PerpetualAtlanticVaultLP

high

Incorrect precision assumed from RdpxPriceOracle creates multiple issues related to value inflation/deflation

high

Users can get immediate profit when deposit and redeem in `PerpetualAtlanticVaultLP`

medium

The vault allows "free" swaps from WETH to RDPX

medium

`sync` function in `RdpxV2Core.sol` should be called in multiple scenarios to account for the balance changes that occurs

medium

No slippage protection for bonders

medium

Can not withdraw RDPX if WETH withdrawn is zero

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

3,407.21 USDC • 3 total findings • Code4rena • Evo

#19

high

Multiple issues with `retrySettlement()` and `retrieveDeposit()` will cause loss of users' bridging deposits

high

User underpay for the remote call execution gas on root chain

medium

The user is enforced to overpay for the fallback gas when `retryDeposit`

Ajna Protocol

Ajna Protocol

15.58 USDC • 1 total finding • Code4rena • Evo

#52

high

Claiming accumulated rewards while the contract is underfunded can lead to a loss of rewards

Apr '23

Caviar Private Pools

Caviar Private Pools

89.68 USDC • 1 total finding • Code4rena • Evo

#46

medium

Malicious royalty recipient can steal excess eth from buy orders

Rubicon v2

Rubicon v2

586.51 USDC • 3 total findings • Code4rena • Evo

#24

high

DOS of market operations with malicious offers

medium

Missing a check for minimum sell amount at make function

medium

RubiconMarket: buy() may not take any fee for tokens with low decimal precision

Mar '23

Asymmetry contest

Asymmetry contest

24.26 USDC • 1 total finding • Code4rena • Evo

#97

medium

Stuck ether when use function `stake` with empty `derivatives`(`derivativeCount` = 0)