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

d3e4

Security Researcher

Contact Me

High

22

Total

Medium

51

Total

$53.37K

Total Earnings

#191 All Time

51x

Payouts

gold

3x

1st Places

silver

1x

2nd Places

bronze

2x

3rd Places

All

Code4rena

Apr '25

Kinetiq

Kinetiq

4.38 USDC • 1 total finding • Code4rena • d3e4

#34

high

Users Who Queue Withdrawal Before A Slashing Event Disadvantage Users Who Queue After And Eventually Leads To Loss Of Funds For Them

Mar '25

Nudge.xyz

Nudge.xyz

0.06 USDC • 1 total finding • Code4rena • d3e4

#8

medium

Unauthorized Reallocation in `NudgeCampaign::handleReallocation` and Reward Disruption Vulnerability in `NudgeCampaign::invalidateParticipations`

Jan '25

Next Generation

Next Generation

3.55 USDC • 1 total finding • Code4rena • d3e4

#15

medium

Lack of deadline check in forwarded request

Jul '24

TraitForge

TraitForge

101.68 USDC • 1 total finding • Code4rena • d3e4

#38

medium

Potential Uninitialized `entropySlots` Reading in `getNextEntropy`, Causing 0 Entropy Mint

May '24

LoopFi

LoopFi

213.33 USDC • 1 total finding • Code4rena • d3e4

#5

high

Availability of deposit invariant can be bypassed

Apr '24

Renzo

Renzo

101.32 USDC • 2 total findings • Code4rena • d3e4

#35

high

Withdrawals logic allows MEV exploits of TVL changes and zero-slippage zero-fee swaps

medium

stETH/ETH Feed being used opens up to 2 way deposit<->withdrawal arbitrage

NOYA

NOYA

215.64 USDC + NOYA stars • 6 total findings • Code4rena • d3e4

#36

medium

`totalAssets()`, and thus `convertToShares()` and `convertToAssets()`, may revert, in violation of ERC-4626

medium

AccountingManager has no correct implementations of the core ERC-4626 functions `deposit`, `mint`, `withdraw` and `redeem`

medium

First depositor can make subsequent depositor lose all of her or his deposit

medium

`maxDeposit`, `maxMint`, `maxWithdraw`, and `maxRedeem` functions do not return 0 when they should

medium

`AccountingManager` contract's `previewDeposit`, `previewMint`, `previewWithdraw`, and `previewRedeem` functions are not compliant with EIP-4626 standard

medium

`performanceFeeReceiver` cannot mint any performance fee shares even if TVL is dropped by only a very tiny amount

DYAD

DYAD

381.21 USDC • 5 total findings • Code4rena • d3e4

#30

high

Inability to perform partial liquidations allows huge positions to accrue bad debt in the system

high

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

medium

Value of kerosene can be manipulated to force liquidate users

medium

Incorrect deployment / missing contract will break functionality

medium

Liquidation bonus logic is wrong

Panoptic

Panoptic

32.96 USDC • Code4rena • d3e4

#18

Mar '24

DittoETH

DittoETH

6,092.51 USDC • 1 total finding • Code4rena • d3e4

bronze

high

A successfully disputed redemption proposal has still increased the redemption fee base rate; exploit to depeg dUSD

Smart Wallet

Smart Wallet

36.34 USDC • Code4rena • d3e4

#14

PoolTogether

PoolTogether

9,434.22 USDC • 4 total findings • Code4rena • d3e4

gold

high

Any fee claim lesser than the total `yieldFeeBalance` as unit of shares is lost and locked in the `PrizeVault` contract

medium

Funds locked due to missing transfer check

medium

`maxDeposit()` uses `yieldVault.maxDeposit()` but `_depositAndMint()` uses `yieldVault.mint()`

medium

`_maxYieldVaultWithdraw()` uses `yieldVault.convertToAssets()`

Feb '24

Althea Liquid Infrastructure

Althea Liquid Infrastructure

275.02 USDC • 3 total findings • Code4rena • d3e4

#11

high

Holders array can be manipulated by transferring or burning with amount 0, stealing rewards or bricking certain functions

medium

Withdrawal from NFTs can be temporarily blocked

medium

Distribution can be bricked, and double claims by a few holders are possible when owner calls `LiquidInfrastructureERC20::setDistributableERC20s`

AI Arena

AI Arena

6,523.25 USDC • 8 total findings • Code4rena • d3e4

silver

high

Malicious user can stake an amount which causes zero curStakeAtRisk on a loss but equal rewardPoints to a fair user on a win

high

A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fighters

high

Since you can reroll with a different fighterType than the NFT you own, you can reroll bypassing maxRerollsAllowed and reroll attributes based on a different fighterType

high

Players have complete freedom to customize the fighter NFT when calling `redeemMintPass` and can redeem fighters of types Dendroid and with rare attributes

high

Fighters cannot be minted after the initial generation due to uninitialized `numElements` mapping

medium

Almost all rarity rank combinations cannot be, and are not uniformly, generated

medium

Can mint NFT with the desired attributes by reverting transaction

medium

Fighter created by mintFromMergingPool can have arbitrary weight and element

Jan '24

Curves

Curves

140.97 USDC • 4 total findings • Code4rena • d3e4

#32

high

Whitelised accounts can be forcefully DoSed from buying curveTokens during the presale

high

Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`

medium

Selling will be bricked if all other tokens are withdrawn to ERC20 token

medium

onBalanceChange causes previously unclaimed rewards to be cleared

Nov '23

Canto Application Specific Dollars and Bonding Curves for 1155s

Canto Application Specific Dollars and Bonding Curves for 1155s

212.56 USDC • 2 total findings • Code4rena • d3e4

#14

medium

No slippage protection for Market functions

medium

Users will lose rewards when buying new tokens if they already own some tokens

Kelp DAO | rsETH

Kelp DAO | rsETH

902.57 USDC • 1 total finding • Code4rena • d3e4

#12

high

Possible arbitrage from Chainlink price discrepancy

Oct '23

Ethena Labs

Ethena Labs

520.42 USDC • 1 total finding • Code4rena • d3e4

#12

medium

Malicious users can front-run to cause a denial of service (DoS) for StakedUSDe due to MinShares checks

The Wildcat Protocol

The Wildcat Protocol

6.67 USDC • 1 total finding • Code4rena • d3e4

#71

high

Borrower can drain all funds of a sanctioned lender

ENS

ENS

93.86 USDC • Code4rena • d3e4

#10

Sep '23

Venus Prime

Venus Prime

4.37 USDC • Code4rena • d3e4

#39

Aug '23

Shell Protocol

Shell Protocol

1,933.59 USDC • 1 total finding • Code4rena • d3e4

#7

high

Lack of Balance Validation

May '23

Juicebox Buyback Delegate

Juicebox Buyback Delegate

16.19 USDC • Code4rena • d3e4

#18

Apr '23

EigenLayer Contest

EigenLayer Contest

528.25 USDC • Code4rena • d3e4

#20

ENS Contest

ENS Contest

760.66 USDC • Code4rena • d3e4

#14

Frankencoin

Frankencoin

22.6 USDC • Code4rena • d3e4

#66

Mar '23

Asymmetry contest

Asymmetry contest

3,238.66 USDC • 8 total findings • Code4rena • d3e4

gold

high

An attacker can manipulate the preDepositvePrice to steal from other users.

high

Reth.sol: Withdrawals are unreliable and depend on excess RocketDepositPool balance which can brick the whole protocol

medium

sFrxEth may revert on redeeming non-zero amount

medium

No slippage protection on `stake()` in SafEth.sol

medium

Residual ETH unreachable and unuitilized in SafEth.sol

medium

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

medium

DoS due to external call failure

medium

Missing derivative limit and deposit availability checks will revert the whole `stake()` function

Canto Identity Subprotocols contest

Canto Identity Subprotocols contest

9,809.85 USDC • 3 total findings • Code4rena • d3e4

gold

medium

`characterModifier` is `uint8` but encodes `1.38e24` different Zalgo distortions.

medium

The range of `iteratePRNG` limits the number of Zalgo distortions

medium

ProfilePicture subprotocol is immutably linked by `subprotocolName` to the CID protocol

Wenwin contest

Wenwin contest

713.63 USDC • 2 total findings • Code4rena • d3e4

#9

medium

Unsafe casting from `uint256` to `uint16` could cause ticket prizes to become much smaller than intended

medium

Possibility to steal jackpot bypassing restrictions in the executeDraw()

Feb '23

Ethos Reserve contest

Ethos Reserve contest

2,089.29 USDC • 1 total finding • Code4rena • d3e4

#15

medium

``lastFeeOperationTime`` is not modified correctly in function ``_updateLastFeeOpTime()``, resuling a much slower decay model for borrowing base rate

Jan '23

Canto Identity Protocol contest

Canto Identity Protocol contest

44.97 CANTO • Code4rena • d3e4

#13

Nov '22

Debt DAO contest

Debt DAO contest

13.42 USDC • 2 total findings • Code4rena • d3e4

#55

medium

address.call{value:x}() should be used instead of payable.transfer()

medium

Borrower/Lender excessive ETH not refunded and permanently locked in protocol

Oct '22

Inverse Finance contest

Inverse Finance contest

432.83 USDC • 2 total findings • Code4rena • d3e4

#20

medium

Protocol withdrawals of collateral can be unexpectedly locked if governance sets the `collateralFactorBps` to 0.

medium

Chainlink oracle data feed is not sufficiently validated and can return stale `price`

Holograph contest

Holograph contest

833.77 USDC • 4 total findings • Code4rena • d3e4

#13

high

An attacker can manipulate each pod and gain an advantage over the remainder Operators

medium

Bad source of randomness

medium

`_payoutToken[s]()` is not compatible with tokens with missing return value

medium

`_payoutEth()` calculates `balance` with an offset, always leaving dust `ETH` in the contract

3xcalibur contest

3xcalibur contest

696.87 USDC • Code4rena • d3e4

#10

Juicebox contest

Juicebox contest

37.88 USDC • Code4rena • d3e4

#18

Trader Joe v2 contest

Trader Joe v2 contest

0.97 USDC • Code4rena • d3e4

#28

The Graph L2 bridge contest

The Graph L2 bridge contest

2,278.81 USDC • 1 total finding • Code4rena • d3e4

#4

medium

Governor can rug pull the escrow

Blur Exchange contest

Blur Exchange contest

3,002.1 USDC • 2 total findings • Code4rena • d3e4

bronze

high

StandardPolicyERC1155.sol returns amount == 1 instead of amount == order.amount

medium

Protocol can be easily rug-pulled by the owner

Sep '22

QuickSwap and StellaSwap contest

QuickSwap and StellaSwap contest

52.04 USDC • Code4rena • d3e4

#51

Frax Ether Liquid Staking contest

Frax Ether Liquid Staking contest

12.83 USDC • Code4rena • d3e4

#76

VTVL contest

VTVL contest

28.69 USDC • 1 total finding • Code4rena • d3e4

#64

medium

Supply cap of VariableSupplyERC20Token is not properly enforced

Y2k Finance contest

Y2k Finance contest

16.18 USDC • Code4rena • d3e4

#53

PartyDAO contest

PartyDAO contest

117.69 USDC • Code4rena • d3e4

#48

FEI and TRIBE Redemption contest

FEI and TRIBE Redemption contest

33.6 USDC • Code4rena • d3e4

#13

Nouns Builder contest

Nouns Builder contest

66.38 USDC • 1 total finding • Code4rena • d3e4

#93

medium

Founders can receive less tokens that expected

Aug '22

Olympus DAO contest

Olympus DAO contest

948.61 USDC • 2 total findings • Code4rena • d3e4

#23

medium

The governance system can be held hostage by a malicious user

medium

Moving average precision is lost

Nouns DAO contest

Nouns DAO contest

52.11 USDC • Code4rena • d3e4

#37

FIAT DAO veFDT contest

FIAT DAO veFDT contest

162.42 USDC • Code4rena • d3e4

#26

Fraxlend (Frax Finance) contest

Fraxlend (Frax Finance) contest

67 USDC • Code4rena • d3e4

#56

Foundation Drop contest

Foundation Drop contest

62.96 USDC • Code4rena • d3e4

#43