https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/3553d14e-cad9-4203-8c86-5dc65275694d.png

eeyore

Security Researcher

High

27

Total

Medium

4

Solo

27

Total

$59.62K

Total Earnings

#149 All Time

22x

Payouts

gold

5x

1st Places

silver

2x

2nd Places

bronze

1x

3rd Places

All

Sherlock

Code4rena

CodeHawks

May '25

Usual - May 12th

Usual - May 12th

Collaborative Audit • Sherlock • eeyore

RootsFi - BGT Derivative Issuance

RootsFi - BGT Derivative Issuance

Collaborative Audit • Sherlock • eeyore

Apr '25

40acres Finance - Optimized Rewards

40acres Finance - Optimized Rewards

Collaborative Audit • Sherlock • eeyore

Mar '25

40acres Finance veLending

40acres Finance veLending

Collaborative Audit • Sherlock • eeyore

Jigsaw

Jigsaw

Collaborative Audit • Sherlock • eeyore

Feb '25

Usual Stability Loan

Usual Stability Loan

Collaborative Audit • Sherlock • eeyore

LODE Funding Rate Product

LODE Funding Rate Product

Collaborative Audit • Sherlock • eeyore

Jan '25

Aave v3.3

Aave v3.3

10,029.00 USDC • Sherlock • eeyore

#8

Dec '24

Mach Finance

Mach Finance

5,115.38 USDC • 1 total finding • Sherlock • eeyore

gold

medium

Missing staleness check in PythOracle can lead to forced liquidations and theft of funds from borrowers.

Nov '24

Resolv Core

Resolv Core

3,800 OP • Sherlock • eeyore

gold

Findings not publicly available for private contests.

vVv Launchpad - Investments & Token distribution

vVv Launchpad - Investments & Token distribution

94.59 USDC • 1 total finding • Sherlock • eeyore

gold

high

Funds can be stolen from any user by frontrunning their `claim()` transaction.

Oct '24

Avantis v1.5: Cross-Asset Leverage

Avantis v1.5: Cross-Asset Leverage

9,234.43 OP • Sherlock • eeyore

gold

Findings not publicly available for private contests.

Aug '24

Perennial V2 Update #3

Perennial V2 Update #3

3,524.88 USDC • 5 total findings • Sherlock • eeyore

#4

high

Lack of access control in the `MarketFactory.updateExtension()` function.

medium

Corrupted storage after upgrade in the `MarketFactory` contract.

medium

Anyone can cancel other accounts `nonces` and `groups`, leading to griefing their `Intents`.

medium

The `Market.migrate()` function has no effect and does not migrate `PositionStorageGlobal` to the new storage layout, breaking the migration assumption.

medium

The `RiskParameter.liquidationFee` variable is not treated and validated as a percentage value, leading to breaking protocol invariants.

Fjord Token Staking

Fjord Token Staking

94.68 USDC • 1 total finding • CodeHawks • eeyore

#17

medium

Epoch mismatch in FjordPoints and FjordStaking leads to user being able to stake and unstake instantly for rewards

Midas - Instant Minter/Redeemer

Midas - Instant Minter/Redeemer

2,966.97 USDC • 4 total findings • Sherlock • eeyore

silver

medium

Corruptible upgradability pattern.

medium

Incorrect `BUILD` integration in the `RedemptionVaultWIthBUIDL` contract.

medium

Contradiction between the Specification and the Code in the `RedemptionVaultWIthBUIDL` contract.

medium

Incorrect validation of the daily redemption limit in the `MBasisRedemptionVaultWithSwapper` contract.

Tadle

Tadle

1,057.81 USDC • 19 total findings • CodeHawks • eeyore

#5

high

Incorrect set up and logic of `referralInfoMap` in `SystemConfig::updateReferrerInfo` function

high

TokenManager - Unlimited withdraw

high

Taker of bid offer will loss assets without any benefit if he calls the DeliveryPlace::settleAskMaker() for partial settlement.

high

Native token withdrawal fails until manually approved

high

`DeliveryPlace::settleAskTaker` Has Incorrect Access Control

high

Formulaic Error Rounds Down Causing Total Loss Of Funds For Bid Takers During Abort

high

Malicious user can drain protocol by bypassing `ASK` offer abortion validation in `Turbo` mode

high

The `DeliveryPlace::settleAskTaker()` function mistakenly uses `makerInfo.tokenAddress` to update the `TokenBalanceType.PointToken` in the `userTokenBalanceMap` mapping, leading to a critical error.

high

Token withdrawal fails until someone manually approves spending

high

[H-4] The function `PreMarkets::listOffer` charges an incorrect collateral amount, allowing users to manipulating collateral rates and drain the protocol's funds

high

listOffer maker can settle offer via settleAskMaker() in Turbo settle type.

high

Fund Withdrawal Flaw in preMarket Allows Users to Avoid Settlement Obligations

high

Missing abort status check allows bid taker to steal users funds

low

Rounding Discrepancies in Deposit Amount Calculations

low

[Low-01] Missing Access Control in `CapitalPool::approve()` Function Allows any User to call it to set Allowance Amount `TokenContract` to `type(uint256).max`.

low

`listOffer` Unsafely References Fungible Identifiers

low

Wrong parameter in event AbortBidTaker()

low

Missing validation in `PreMarkets.abortBidTaker()` leading to funds lock.

low

When the `DeliveryPlace::settleAskMaker()` function calls `tokenManager.addTokenBalance()` to update the user balance, the `TokenBalanceType` parameter uses an operation, resulting in a balance update error

Jul '24

Kwenta Staking Rewards Upgrade

Kwenta Staking Rewards Upgrade

2,000 USDC • 1 total finding • Sherlock • eeyore

gold

medium

Loss of rewards due to continuous griefing attack.

LoopFi

LoopFi

1.37 USDC • 1 total finding • Code4rena • Eeyore

#56

medium

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

Exactly Protocol Update - Staking Contract

Exactly Protocol Update - Staking Contract

125.80 USDC • 1 total finding • Sherlock • eeyore

#6

medium

Missing `approve()` in the `setMarket()` function will lead to a Denial of Service (DoS) in the `harvest()` function.

Velocimeter

Velocimeter

5,483.27 USDC • 10 total findings • Sherlock • eeyore

bronze

high

Malicious users can extend other users' deposit locks in `GaugeV4` by calling `OptionTokenV4.exerciseLp()` on them with minimal oToken values and the maximum discount.

high

Token price can be manipulated in `OptionTokenV4` when adding liquidity during the `exerciseLp()` or `exerciseVe()` function calls.

high

Griefing/blocking when exercising oToken via `OptionTokenV4.exerciseVe()` call.

high

Rewards from the previous epoch are lost and locked in the Voter contract for Gauges that are paused or killed in the current epoch.

high

Off-by-One error in the `RewardsDistributorV2._checkpoint_total_supply()` leading to incorrect reward calculation.

medium

Rounding errors in the `_k()` calculation for stable pairs can allow an attacker to drain all tokens from the pair.

medium

Incorrect calculation of team emissions in the `Minter` contract.

medium

Incorrect calculation of TWAP in OptionTokenV4.getTimeWeightedAveragePrice() function.

medium

`Voter.replaceFactory()` and `Voter.addFactory()` functions are broken.

medium

Governor cannot `poke()` a tokenId if votes were passed on to a Gauge that was later paused or killed.

Jun '24

Notional Leveraged Vaults: Pendle PT and Vault Incentives

Notional Leveraged Vaults: Pendle PT and Vault Incentives

403.89 USDC • 2 total findings • Sherlock • eeyore

#10

medium

Loss of user-earned rewards due to lack of recovery mechanism and insufficient reward token balances in the VaultRewarderLib _claimRewardToken() function

medium

Premature collateralization check in the BaseStakingVault.initiateWithdraw() function can leave accounts undercollateralized

Mellow Modular LRTs

Mellow Modular LRTs

2,614.01 USDC • 2 total findings • Sherlock • eeyore

#4

medium

Incorrect assumption that 1 stETH equals 1 ETH when calculating TVL

medium

In `Vault.calculateStack()` function the `ratiosX96Value` value is rounded down

May '24

Predy

Predy

10,306.35 USDC • 3 total findings • Code4rena • Eeyore

silver

high

Liquidators can bypass remaining negative margin check and leave the loss to the protocol

high

One pair can steal another pair's Uniswap liquidity during `reallocate()` call if both pairs operate on the same Uniswap pool and both have the same upper and lower tick during reallocation.

medium

Chainlink's `latestRoundData` might return stale or incorrect results

Munchables

Munchables

0.02 USDC • 2 total findings • Code4rena • Eeyore

#15

high

Invalid validation allows users to unlock early

medium

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

Jan '24

Decent

Decent

75.65 USDC • 3 total findings • Code4rena • Eeyore

#40

high

When `DecentBridgeExecutor.execute` fails, funds will be sent to a random address

high

Anyone can update the address of the Router in the DcntEth contract to any address they would like to set.

medium

Missing access control on UTB:receiveFromBridge allows UTB swaps to be executed without spending bridge fees while bypassing fee/swap instruction signature verification

Oct '23

Ethena Labs

Ethena Labs

1,555.84 USDC • 2 total findings • Code4rena • Eeyore

#6

medium

users still forced to follow previously set cooldownDuration even when cooldown is off (set to zero) before unstaking

medium

``FULL_RESTRICTED`` Stakers can bypass restriction through approvals

Aug '23

veRWA

veRWA

109.13 USDC • 1 total finding • Code4rena • Eeyore

#31

high

If governance removes a gauge, user's voting power for that gauge will be lost.

Jul '23

Amphora Protocol

Amphora Protocol

9.43 USDC • Code4rena • Eeyore

#23

Basin

Basin

1,019.61 USDC • 1 total finding • Code4rena • Eeyore

#7

high

Pumps are not updated in the shift() and sync() functions, allowing oracle manipulation