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

Lambda

Security Researcher

High

65

Total

Medium

3

Solo

104

Total

$199.31K

Total Earnings

#46 All Time

57x

Payouts

gold

4x

1st Places

silver

4x

2nd Places

bronze

5x

3rd Places

All

Sherlock

Code4rena

Nov '24

MANTRA DEX

MANTRA DEX

3,818.92 USDC • 10 total findings • Code4rena • Lambda

#5

high

Farms can be created to start in past epochs

high

User cannot claim rewards or close_position, due to vulnerable division by zero handling

high

Block gas limit can be hit due to loop depth

high

Logical error in `validate_fees_are_paid` can cause a DoS or allow users to bypass fees if `denom_creation_fee` includes multiple coins including `pool_creation_fee` and the user attempts to pay all fees using only `pool_creation_fee`

medium

In edge cases, create_pool can either be reverted or allow user underpay fees.

medium

Emergency Unlocking Penalty Makes Long Duration Positions Economically Advantageous

medium

Penalty fees can be shared among future farms or expired farms, risks of exploits

medium

Insufficient Intermediate Value Precision in StableSwap Calculations

medium

Liquidity providers can lose tokens due to disproportionate deposits not being properly handled

medium

M-07- Slippage Tolerance Vulnerability in StableSwap

Jul '24

MakerDAO Endgame

MakerDAO Endgame

6,682.42 USDC • Sherlock • Lambda

#16

Jun '24

Allora

Allora

31,547.27 USDC • 2 total findings • Sherlock • Lambda

#12

medium

Standard deviation calculation is biased

medium

Malicious peer can cause a syncing node to panic during blocksync

Dec '22

Caviar contest

Caviar contest

750.98 USDC • 1 total finding • Code4rena • Lambda

#15

high

Reentrancy in buy function for ERC777 tokens allows buying funds with considerable discount

Escher contest

Escher contest

162.91 USDC • 1 total finding • Code4rena • Lambda

#22

medium

NFTs mintable after Auction deadline expires

Nov '22

ParaSpace contest

ParaSpace contest

1,303.37 USDC • 6 total findings • Code4rena • Lambda

#18

high

Data corruption in NFTFloorOracle; Denial of Service

medium

safeTransfer is not implemented correctly

medium

Fallback oracle is using spot price in Uniswap liquidity pool, which is very vulnerable to flashloan price manipulation

medium

During oracle outages or feeder outages/disagreement, the `ParaSpaceFallbackOracle` is not used

medium

Centralization risk: admin can with rug the project by removing asset and price manipulation on oracle.

medium

MintableIncentivizedERC721 and NToken do not comply with ERC721, breaking composability

Redacted Cartel contest

Redacted Cartel contest

25.32 USDC • 1 total finding • Code4rena • Lambda

#50

high

Underlying assets stealing in `AutoPxGmx` and `AutoPxGlp` via share price manipulation

LSD Network - Stakehouse contest

LSD Network - Stakehouse contest

2,393.71 USDC • 8 total findings • Code4rena • Lambda

#10

high

GiantLP with a transferHookProcessor cant be burned, users' funds will be stuck in the Giant Pool

high

GiantMevAndFeesPool.bringUnusedETHBackIntoGiantPool function loses the addition of the idleETH which allows attackers to steal most of eth from the Giant Pool

high

Giant pools can be drained due to weak vault authenticity check

medium

Banned BLS public keys can still be registered

medium

Attacker can grift syndicate staking by staking a small amount

medium

Incorrect checking in _assertUserHasEnoughGiantLPToClaimVaultLP

medium

Medium: Vaults can be griefed to not be able to be used for deposits

medium

Freezing of funds - Hacker can prevent users withdraws in giant pools

Blur Exchange contest

Blur Exchange contest

612.43 USDC • 2 total findings • Code4rena • Lambda

#10

high

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

high

Direct theft of buyers ETH funds.

LooksRare Aggregator contest

LooksRare Aggregator contest

330.18 USDC • Code4rena • Lambda

#10

SIZE contest

SIZE contest

482.51 USDC • 3 total findings • Code4rena • Lambda

#10

medium

Seller's ability to decrypt bids before reveal could result in a much higher clearing price than anticpated and make buyers distrust the system

medium

Attacker may DOS auctions using invalid bid parameters

medium

Incompatibility with fee-on-transfer/inflationary/deflationary/rebasing tokens, on both base tokens and quote tokens, with varying impacts

Debt DAO contest

Debt DAO contest

5,717.17 USDC • 5 total findings • Code4rena • Lambda

#6

high

Non-existing revenue contract can be passed to claimRevenue to send all tokens to treasury

high

addCredit / increaseCredit cannot be called by lender first when token is ETH

medium

Lender can trade claimToken in a malicious way to steal the borrower's money via claimAndRepay() in SpigotedLine by using malicious zeroExTradeData

medium

Variable balance ERC20 support

medium

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

Chainlink Staking contest

Chainlink Staking contest

8,441.5 USDC • Code4rena • Lambda

#4

Oct '22

Paladin - Warden Pledges contest

Paladin - Warden Pledges contest

343.87 USDC • 2 total findings • Code4rena • Lambda

#16

medium

Reward can be over- or undercounted in `extendPledge` and `increasePledgeRewardPerVote`

medium

Owner can transfer all ERC20 reward token out using function recoverERC20

Inverse Finance contest

Inverse Finance contest

3,456.08 USDC • 4 total findings • Code4rena • Lambda

#6

medium

ERC777 reentrancy when withdrawing can be used to withdraw all collateral

medium

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

medium

Oracle assumes token and feed decimals will be limited to 18 decimals

medium

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

NFTPort

NFTPort

176.00 USDC • 1 total finding • Sherlock • Lambda

#9

medium

Replayable signatures allowing free deploys when they should not be free

Holograph contest

Holograph contest

6,646.71 USDC • 6 total findings • Code4rena • Lambda

bronze

high

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

high

Gas price spikes cause the selected operator to be vulnerable to frontrunning and be slashed

medium

HolographERC721.safeTransferFrom not compliant with EIP-721

medium

HolographERC721.approve not EIP-721 compliant

medium

Bond tokens (HLG) can get permanently stuck in operator

medium

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

Juicebox contest

Juicebox contest

3,820.1 USDC • 2 total findings • Code4rena • Lambda

bronze

medium

Changing default reserved token beneficiary may result in wrong beneficiary for tier

medium

Iterations over all tiers in recordMintBestAvailableTier can render system unusable

Union Finance

Union Finance

1,829.40 USDC • 5 total findings • Sherlock • Lambda

#5

high

Overdue balances cannot be paid back

medium

Downcast in UToken.borrow allowing borrows that should not be allowed

medium

Comptroller.withdrawRewards: totalFrozen subtracted two times from totalStaked

medium

AssetManager.removeAdapter: Adapter not removed from withdrawSeq

medium

UserManager.cancelVouch not updating voucherIndexes / voucheeIndexes

Trader Joe v2 contest

Trader Joe v2 contest

13,556.88 USDC • 2 total findings • Code4rena • Lambda

silver

high

Transfering funds to yourself increases your balance

medium

beforeTokenTransfer called with wrong parameters in LBToken._burn

Merit Circle

Merit Circle

444.22 USDC • 1 total finding • Sherlock • Lambda

#5

high

setCurvePoint: unit not updated when curve.length changes

Blur Exchange contest

Blur Exchange contest

197.95 USDC • 2 total findings • Code4rena • Lambda

#16

high

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

high

Direct theft of buyers ETH funds.

Mycelium

Mycelium

109.26 USDC • 1 total finding • Sherlock • Lambda

#8

medium

Deployment can be bricked by manually transferring small LINK amount before first deposit

Sep '22

Sherlock

Sherlock

2,870.26 USDC • 1 total finding • Sherlock • Lambda

silver

medium

TrueFiStrategy: Too little withdrawn when used with AlphaBetaSplitter

QuickSwap and StellaSwap contest

QuickSwap and StellaSwap contest

4,186.23 USDC • 2 total findings • Code4rena • Lambda

#4

medium

It is possible that, after swapping, extra input token amount is transferred from user to pool but pool does not give user output token amount that corresponds to the extra input token amount

medium

Biased estimator for volatility used

Frax Ether Liquid Staking contest

Frax Ether Liquid Staking contest

2,123.84 USDC • 4 total findings • Code4rena • Lambda

bronze

high

Wrong accounting logic when syncRewards() is called within beforeWithdraw makes withdrawals impossible

medium

removeValidator() and removeMinter() may fail due to exceeding gas limit

medium

frxETHMinter.depositEther may run out of gas, leading to lost ETH

medium

frxETHMinter: Non-conforming ERC20 tokens not recoverable

VTVL contest

VTVL contest

552.99 USDC • 2 total findings • Code4rena • Lambda

#12

medium

Two address tokens can be withdrawn by the admin even if they are vested

medium

Reentrancy may allow an admin to steal funds

Art Gobblers contest

Art Gobblers contest

3,942.29 USDC • 2 total findings • Code4rena • Lambda

#7

medium

The reveal process could brick if `randProvider` stops working

medium

Wrong balanceOf user after minting legendary gobbler

Harpie

Harpie

205.26 USDC • 3 total findings • Sherlock • Lambda

#9

medium

Funds are locked up for fee-on-transfer

medium

Withdrawing payments may fail

medium

Overflow possible in logIncomingERC20

Y2k Finance contest

Y2k Finance contest

4,430.88 USDC • 10 total findings • Code4rena • Lambda

bronze

high

Incorrect handling of pricefeed.decimals()

high

Users who deposit in one vault can lose all deposits and receive nothing when counterparty vault has no deposits

high

LOSS OF PRECISION RESULTING IN WRONG VALUE FOR PRICE RATIO

high

Risk users are required to payout if the price of the pegged asset goes higher than underlying

high

Vault.sol is not EIP-4626 compliant

high

Depeg event can happen at incorrect price

medium

Oracle is tracked per token instead of per pair, leading to surprise results

medium

Fee-on-Transfer tokens cause problems in multiple places

medium

StakingRewards: Significant loss of precision possible

medium

Different Oracle issues can return outdated prices

PartyDAO contest

PartyDAO contest

17,083.74 USDC • 7 total findings • Code4rena • Lambda

gold

high

Possibility to burn all ETH in Crowdfund under some circumstances

high

PartyGovernance: Can vote multiple times by transferring NFT in same block as proposal

high

TokenDistributor: ERC777 tokensToSend hook can be exploited to drain contract

high

A majority attack can steal precious NFT from the party by crafting and chaining two proposals

medium

Possible that unanimous votes is unachievable

medium

Maximum bid will always be used in Auction

medium

# Only part of `keccak256()` is used as hash, making it susceptible to collision attacks

Notional

Notional

167.14 USDC • 1 total finding • Sherlock • Lambda

#12

medium

ExchangeRate age not checked

FEI and TRIBE Redemption contest

FEI and TRIBE Redemption contest

47.65 USDC • Code4rena • Lambda

#8

Nouns Builder contest

Nouns Builder contest

1,905.7 USDC • 2 total findings • Code4rena • Lambda

#14

medium

Token: Founder percentages not always respected

medium

`Token:mint`: infinite loop if the founders' shares sum up to 100

Aug '22

Sentiment

Sentiment

5,013.40 USDC • 9 total findings • Sherlock • Lambda

#4

high

LEther: Flash loan can be used to manipulate borrow rate

high

ChainlinkOracle: Assumes all feeds have 8 decimals

high

ERC4626Oracle: Assumes that asset and share have same number of decimals

high

UniV2LPOracle: Decimals of pair tokens ignored

medium

StableBalancerLPOracle: Wrong calculation

medium

BalancerController: Can be misused to get non-approved tokens into the account

medium

AccountManager: Liquidations not possible when transfer fails

medium

AccountManager: address(0) used for borrowing ETH

medium

AccountManager: Fee-On-Transfer tokens not supported

Olympus DAO contest

Olympus DAO contest

3,033.35 USDC • 5 total findings • Code4rena • Lambda

#5

medium

Voted votes cannot change after the user are issued with new votes or the user's old votes are revoked during voting

medium

[NAZ-M1] Chainlink's `latestRoundData` Might Return Stale Results

medium

Unexecutable proposals when Actions.MigrateKernel is not last instruction

medium

Activating same Policy multiple times in Kernel possible

medium

Heart::beat() could be called several times in one block if no one called it for a some time

Nouns DAO contest

Nouns DAO contest

1,800.55 USDC • 1 total finding • Code4rena • Lambda

bronze

high

ERC721Checkpointable: delegateBySig allows the user to vote to address 0, which causes the user to permanently lose his vote and cannot transfer his NFT.

FIAT DAO veFDT contest

FIAT DAO veFDT contest

29.89 USDC • Code4rena • Lambda

#66

Fraxlend (Frax Finance) contest

Fraxlend (Frax Finance) contest

7,629.07 USDC • 4 total findings • Code4rena • Lambda

silver

high

Any borrower with bad debt can be liquidated multiple times to lock funds in the lending pair

high

`liquidate()` doesn't mark off bad debt, leading to a 'last lender to withdraw looses' scenario

medium

No incentives to write off bad debt when remaining collateral is very small

medium

FraxlendPair.sol is not fully EIP-4626 compliant

Foundation Drop contest

Foundation Drop contest

9,387.62 USDC • 4 total findings • Code4rena • Lambda

gold

medium

Forget to check "Some manifolds contracts of ERC-2981 return (address(this), 0) when royalties are not defined" in 3rd priority - MarketFees.sol

medium

NFT of NFT collection or NFT drop collection can be locked when calling _mint or mintCountTo function to mint it to a contract that does not support ERC721 protocol

medium

Creator fees may be burned

medium

User may get all of the creator fees by specifying high number for himself

Mimo August 2022 contest

Mimo August 2022 contest

5,035.44 USDC • 3 total findings • Code4rena • Lambda

silver

high

Automation / management can be set for not yet existing vault

high

Registry.sol works bad - it fails to delivere expected functionality

medium

Malicious manipulation of gas reserve can deny access to MIMOProxy

Rigor Protocol contest

Rigor Protocol contest

8,065.14 USDC • 10 total findings • Code4rena • Lambda

gold

high

Builder can call `Community.escrow` again to reduce debt further using same signatures

high

Builder can halve the interest paid to a community owner due to arithmetic rounding

high

Add members to the not yet created community

high

Untyped data signing

high

Wrong APR can be used when project is unpublished and published again

high

Project funds can be drained by reusing signatures, in some cases

medium

Project.addTasks() wouldn't work properly when it's called from disputes contract.

medium

Attacker can drain all the projects within minutes, if admin account has been exposed

medium

changeOrder requires subcontractor signature when the subcontractor address is 0

medium

Hash approval not possible when contractor == subcontractor

Jul '22

Axelar Network v2 contest

Axelar Network v2 contest

7,710.47 USDC • 3 total findings • Code4rena • Lambda

#4

medium

Change of operators possible from old operators

medium

System will not work anymore after EIP-4758

medium

removeWrapping can be called when there are still wrapped tokens

Golom contest

Golom contest

373.55 USDC • Code4rena • Lambda

#34

Swivel v3 contest

Swivel v3 contest

48.55 USDC • 1 total finding • Code4rena • Lambda

#50

medium

Error in allowance logic

ENS contest

ENS contest

1,056.57 USDC • 1 total finding • Code4rena • Lambda

#15

medium

Incorrect implementation of `RRUtils.serialNumberGte`

Fractional v2 contest

Fractional v2 contest

1,664.34 USDC • 9 total findings • Code4rena • Lambda

#14

high

Fund will be stuck if a buyout is started while there are pending migration proposals

high

Steal NFTs from a Vault, and ETH + Fractional tokens from users.

high

Division rounding can make fraction-price lower than intended (down to zero)

high

Malicious User Could Burn The Assets After A Successful Migration

high

```migrateFractions``` may be called more than once by the same user which may lead to loss of tokens for other users

medium

Migration fails when all tokens are joined

medium

An attacker can DoS vault's buyout with as little as 1 wei per 4 days

medium

Delegate call in `Vault#_execute` can alter Vault's ownership

medium

Migration total supply reduction can be used to remove minority shareholders

Juicebox V2 contest

Juicebox V2 contest

4,428.88 USDC • 1 total finding • Code4rena • Lambda

#5

high

Token Change Can Be Frontrun, Blocking Token

Jun '22

Putty contest

Putty contest

1,443.96 USDC • 3 total findings • Code4rena • Lambda

#12

high

`acceptCounterOffer()` May Result In Both Orders Being Filled

medium

Options with a small strike price will round down to 0 and can prevent assets to be withdrawn

medium

Put options are free of any fees

Canto v2 contest

Canto v2 contest

2,274.77 USDC • 2 total findings • Code4rena • Lambda

#5

high

getBorrowRate returns rate per year instead of per block

high

Deny of service in `CNote.doTransferOut`

Nibbl contest

Nibbl contest

1,328.64 USDC • 2 total findings • Code4rena • Lambda

#7

medium

NibblVault: In the buy function, users can avoid paying fees

medium

Buyout cannot be rejected when paused

Yieldy contest

Yieldy contest

5,457.45 USDC • 3 total findings • Code4rena • Lambda

gold

high

No withdrawal possible for ETH TOKE pool

medium

Functions in the `BatchRequests` contract revert for removed contract addresses

medium

coolDown & warmUp period do not work when a low _firstEpochEndTime is passed to initialize

Illuminate contest

Illuminate contest

1,517.93 USDC • 5 total findings • Code4rena • Lambda

#11

high

Allowance check always true in ERC5095 redeem

high

ERC5095 redeem/withdraw does not update allowances

high

Unable to redeem from Notional

high

`Redeemer.sol#redeem()` can be called by anyone before maturity, which may lead to loss of user funds

high

Funds may be stuck when `redeeming` for Illuminate

Infinity NFT Marketplace contest

Infinity NFT Marketplace contest

175.61 USDC • 2 total findings • Code4rena • Lambda

#35

high

Overpayment of native ETH is not refunded to buyer

high

Accumulated ETH fees of InfinityExchange cannot be retrieved

Canto contest

Canto contest

855.82 USDC • 1 total finding • Code4rena • Lambda

#24

high

`lending-market/Note.sol` Wrong implementation of access control

Connext Amarok contest

Connext Amarok contest

482.61 USDC • 1 total finding • Code4rena • Lambda

#23

medium

`LibDiamond.diamondCut()` should check `diamondStorage().acceptanceTimes[keccak256(abi.encode(_diamondCut))] != 0`

Notional x Index Coop

Notional x Index Coop

135.56 USDC • Code4rena • Lambda

#36