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

Emmanuel

Security Researcher

Contact Me

High

24

Total

Medium

17

Total

$50.25K

Total Earnings

#186 All Time

23x

Payouts

bronze

2x

3rd Places

regular

8x

Top 10

regular

16x

Top 25

All

Sherlock

Code4rena

Sep '24

Kakarot

Kakarot

1,414.83 USDC • 1 total finding • Code4rena • Emmanuel

#11

medium

`decode_legacy_tx` allows validation of signatures with chain_id that are larger than felt, and overflows

Aug '24

Chakra

Chakra

873.7 USDT • 4 total findings • Code4rena • Emmanuel

#11

high

There is no refund mechanism in `ChakraSettlement.processCrossChainCallback` or `ChakraSettlementHandler.receive_cross_chain_callback` function

high

`ChakraSettlement.receive_cross_chain_msg` and `ChakraSettlement.receive_cross_chain_callback` functions do not ensure that receiving `ChakraSettlement` contract's `contract_chain_name` must match `to_chain` corresponding to respective `txid` input though

high

The LockMint and BurnUnlock modes cannot be used

high

In Starknet already processed messages can be re-submitted and by anyone

Jul '24

MakerDAO Endgame

MakerDAO Endgame

4,373.55 USDC • Sherlock • Emmanuel

#25

May '24

Olas

Olas

164.65 USDC • 1 total finding • Code4rena • Emmanuel

#13

medium

The `refundAccount` is erroneously set to `msg.sender` instead of `tx.origin` when `refundAccount` specified as `address(0)`

Arbitrum BoLD

Arbitrum BoLD

12,737.19 USDC • 1 total finding • Code4rena • Emmanuel

#7

high

Edge from dishonest challenge edge tree can inherit timer from honest tree allowing confirmation of incorrect assertion

Apr '24

Exactly Protocol

Exactly Protocol

289.48 USDC • 1 total finding • Sherlock • Emmanuel

#11

medium

Market#totalAssets: unassignedEarnings from earlier maturities might have not been accrued, allowing attacker to steal the unaccrued earnings.

DYAD

DYAD

978.02 USDC • 4 total findings • Code4rena • Emmanuel

bronze

high

Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine

high

Kerosene collateral is not being moved on liquidation, exposing liquidators to loss

high

Flash loan protection mechanism can be bypassed via self-liquidations

medium

Liquidation bonus logic is wrong

Oct '23

Party Protocol

Party Protocol

385.16 USDC • 1 total finding • Code4rena • Emmanuel

#17

high

Single host can unfairly skip veto period for proposal that does not have full host support

Perennial V2 Update #1

Perennial V2 Update #1

3,133.70 USDC • 1 total finding • Sherlock • Emmanuel

#4

high

Attacker can call `KeeperFactory#settle` with empty arrays as input parameters to steal all keeper fees

Aug '23

Chainlink Staking v0.2

Chainlink Staking v0.2

562.1 USDC • Code4rena • Emmanuel

#37

Jul '23

Perennial V2

Perennial V2

4,946.63 USDC • 4 total findings • Sherlock • Emmanuel

#4

high

Protocol fee from Market.sol is locked

high

PythOracle:if price.expo is less than 0, wrong prices will be recorded

high

Vault.sol: `settle`ing the 0 address will disrupt accounting

medium

Malicious user can use liquidation to bypass most of the global invariant checks

Lens Protocol V2

Lens Protocol V2

7,481.06 USDC • 4 total findings • Code4rena • Emmanuel

bronze

medium

Users can make any user follow them via `FollowNFT::tryMigrate()` without their consent

medium

Users can self-follow via `FollowNFT::tryMigrate()` on Lens V2

medium

`tryMigrate()` doesn't ensure that `followerProfileId` isn't already following

medium

Blocked follower can keep follow with `batchMigrateFollows`

Axelar Network

Axelar Network

138.1 USDC • 1 total finding • Code4rena • Emmanuel

#21

medium

Proposal requiring native coin transfers cannot be executed

Nouns DAO

Nouns DAO

58.98 USDC • Code4rena • Emmanuel

#16

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

9,112.31 USDC • 5 total findings • Code4rena • Emmanuel

#9

high

Lack of return value handing in `ArbitrumBranchBridgeAgent._performCall()` could cause users' deposit to be locked in contract

high

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

high

`RootBridgeAgent->CheckParamsLib#checkParams` does not check that `_dParams.token` is underlying of `_dParams.hToken`

high

Due to inadequate checks, Adversary can call `BranchBridgeAgent#retrieveDeposit` with an invalid `_depositNonce`, which would lead to loss of other users' deposit.

medium

When an anyExecute call is made to `RootBridgeAgent` with a `depositNonce` that has been recorded in `executionHistory`, initialGas and userFeeInfo will not be updated, which would affect the next caller of `retrySettlement`.

Perennial

Perennial

2,688.26 USDC • 2 total findings • Sherlock • Emmanuel

#5

medium

Accounts will not be liquidated when they are meant to.

medium

User would liquidate his account to sidestep `takerInvariant` modifier

Venus Protocol Isolated Pools

Venus Protocol Isolated Pools

248.74 USDC • 1 total finding • Code4rena • Emmanuel

#33

medium

DOS attack prevents refunding previous bid in Shortfall.sol and malicious bidder always wins the auction

Apr '23

Frankencoin

Frankencoin

123.68 USDC • 3 total findings • Code4rena • Emmanuel

#40

high

CHALLENGER_REWARD can be used to drain reserves and free mint

medium

need alternative ways for fund transfer in `end()` to prevent DoS

medium

POSITION LIMIT COULD BE FULLY REDUCED TO ZERO BY CLONES

Caviar Private Pools

Caviar Private Pools

26.76 USDC • 1 total finding • Code4rena • Emmanuel

#62

high

PrivatePool owner can steal all ERC20 and NFT from user via arbitrary execution

Rubicon v2

Rubicon v2

0.15 USDC • 1 total finding • Code4rena • Emmanuel

#125

high

Reward accounting is incorrect in BathBuddy contract

Mar '23

Asymmetry contest

Asymmetry contest

15.67 USDC • 2 total findings • Code4rena • Emmanuel

#108

high

`WstEth` derivative assumes a ~1=1 peg of stETH to ETH

medium

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

Canto Identity Subprotocols contest

Canto Identity Subprotocols contest

401.03 USDC • 1 total finding • Code4rena • Emmanuel

#10

high

Users will be able to purchase fewer NFTs than the project had anticipated

Y2K

Y2K

100.04 USDC • 2 total findings • Sherlock • Emmanuel

#52

high

Attacker can rollover more shares than a user's intention or cause the mintRollovers function to be unusable.

high

For any epochId, an attacker can prevent many other users' assets from being rolled over