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

minhquanym

Security Researcher

Contact Me

High

32

Total

Medium

47

Total

$80.22K

Total Earnings

#137 All Time

58x

Payouts

silver

4x

2nd Places

bronze

3x

3rd Places

regular

19x

Top 10

All

Sherlock

Code4rena

Cantina

CodeHawks

Jul '24

Zaros Part 1

Zaros Part 1

25.25 USDC • 2 total findings • CodeHawks • minhquanym

#72

high

Inadequate Checking of `isIncreasing` when trader adjusts position size

high

Incorrect logic for checking isFillPriceValid

MagicSea - the native DEX on the IotaEVM

MagicSea - the native DEX on the IotaEVM

64.75 USDC • 4 total findings • Sherlock • minhquanym

#34

medium

Incorrect parameters passed in `_requireOnlyOperatorOrOwnerOf()` function allows any caller to have rights over any tokenID

medium

Inconsistent check in `harvestPositionsTo()` function

medium

`addToPosition()` might use incorrect `amountToAdd` value if amount received is different than input parameter

medium

Users are able to front-run reward distribution

Jan '24

Opus

Opus

12,319.79 USDC • Code4rena • minhquanym

silver

Dec '23

stake.link

stake.link

250.11 USDC • 1 total finding • CodeHawks • minhquanym

#16

medium

A user can lose funds in `sdlPoolSecondary` if tries to add more sdl tokens to a lock that has been queued to be completely withdrawn

Nov '23

core-and-erc1155a

core-and-erc1155a

282.99 USDC • 1 total finding • Cantina • minhquanym

#21

high

Finding not yet public.

Aug '23

Dopex

Dopex

19.17 USDC • Code4rena • minhquanym

#109

Jun '23

Llama

Llama

80.16 USDC • 1 total finding • Code4rena • minhquanym

#19

medium

It is not possible to execute actions that require ETH (or other protocol token)

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

5,802.61 USDC • 2 total findings • Code4rena • minhquanym

#11

high

`UlyssesToken` asset ID accounting error

high

Second per liquidity inside could overflow `uint256` causing the LP position to be locked in UniswapV3Staker

Juicebox Buyback Delegate

Juicebox Buyback Delegate

434.43 USDC • Code4rena • minhquanym

#9

Mar '23

Neo Tokyo contest

Neo Tokyo contest

3,004.1 USDC • 2 total findings • Code4rena • minhquanym

bronze

high

Underflow of `lpPosition.points` during withdrawLP causes huge reward minting

high

Updating a pool's total points doesn't affect existing stake positions for rewards calculation

Jan '23

RabbitHole Quest Protocol contest

RabbitHole Quest Protocol contest

44.45 USDC • Code4rena • minhquanym

#49

Ondo Finance contest

Ondo Finance contest

2,517.13 USDC • 1 total finding • Code4rena • minhquanym

#8

high

Loss of user funds when completing CASH redemptions

Dec '22

Caviar contest

Caviar contest

850.48 USDC • 3 total findings • Code4rena • minhquanym

#9

high

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

high

Liquidity providers may lose funds when adding liquidity

high

First depositor can break minting of shares

Escher contest

Escher contest

239.83 USDC • 4 total findings • Code4rena • minhquanym

#19

high

`LPDA` price can underflow the price due to bad settings and potentially brick the contract

high

`saleReceiver` and `feeReceiver` can steal refunds after sale has ended

medium

Unsafe downcasting operation truncate user's input

medium

NFTs mintable after Auction deadline expires

Maverick contest

Maverick contest

728.88 USDC • Code4rena • minhquanym

#10

Nov '22

ParaSpace contest

ParaSpace contest

13,222.4 USDC • Code4rena • minhquanym

silver
Debt DAO contest

Debt DAO contest

2,480.3 USDC • 7 total findings • Code4rena • minhquanym

#10

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

Mutual consent cannot be revoked and stays valid forever

medium

Variable balance ERC20 support

medium

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

medium

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

medium

Lender can reject closing a position

Sense

Sense

99.23 USDC • 1 total finding • Sherlock • minhquanym

#7

medium

Possible DOS in RollerPeriphery `approve()` function

Chainlink Staking contest

Chainlink Staking contest

11,694.18 USDC • Code4rena • minhquanym

silver

Oct '22

Astaria

Astaria

85.66 USDC • 3 total findings • Sherlock • minhquanym

#22

high

Funds are not refunded to current bidder in `cancelAuction(...)` function

medium

Bug #1 - Incorrect `newDuration` calculation cause auction extending to `maxDuration` every time

medium

Bug #2 - Incorrect new duration logic cause DOS in `createBid(...)` function

NFTPort

NFTPort

176.00 USDC • 1 total finding • Sherlock • minhquanym

#9

medium

User can deploy and call multiple times with the same signature

Juicebox contest

Juicebox contest

3,498.68 USDC • 2 total findings • Code4rena • minhquanym

#4

high

Making a payment to the protocol with `_dontMint` parameter will result in lost fund for user.

medium

Beneficiary credit balance can unwillingly be used to mint low tier NFT

Mover

Mover

2,594.88 USDC • 1 total finding • Sherlock • minhquanym

silver

high

Anyone can steal fee in ExchangeProxy to do the swap

Merit Circle

Merit Circle

66.63 USDC • 1 total finding • Sherlock • minhquanym

#11

medium

Possible DOS in `deposit()`, `extendLock()` and `increaseLock()` because of potential overflow

Blur Exchange contest

Blur Exchange contest

114.82 USDC • 1 total finding • Code4rena • minhquanym

#20

high

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

Mycelium

Mycelium

99.78 USDC • 1 total finding • Sherlock • minhquanym

#9

high

First depositor can break minting of shares

Sep '22

Knox Finance

Knox Finance

20.77 USDC • 1 total finding • Sherlock • minhquanym

#12

medium

Oracle data feed is insufficiently validated.

Harpie

Harpie

537.28 USDC • 3 total findings • Sherlock • minhquanym

bronze

medium

Replay signature attack to changeRecipientAddress function

medium

Incompatability with deflationary / fee-on-transfer tokens

medium

There is no limit on the amount of fee users have to pay

Aug '22

Fraxlend (Frax Finance) contest

Fraxlend (Frax Finance) contest

238.34 USDC • 1 total finding • Code4rena • minhquanym

#21

medium

Wrong percent for `FraxlendPairCore.dirtyLiquidationFee`.

Rigor Protocol contest

Rigor Protocol contest

799.63 USDC • 3 total findings • Code4rena • minhquanym

#16

high

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

medium

Possible DOS in `lendToProject()` and `toggleLendingNeeded()` function because unbounded loop can run out of gas

medium

updateProjectHash does not check project address

Jul '22

Golom contest

Golom contest

212.42 USDC • Code4rena • minhquanym

#50

Fractional v2 contest

Fractional v2 contest

158.59 USDC • 2 total findings • Code4rena • minhquanym

#52

high

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

high

Cash-out from a successful buyout allows an attacker to drain Ether from the `Buyout` contract

Jun '22

Putty contest

Putty contest

2,830.87 USDC • 4 total findings • Code4rena • minhquanym

bronze

high

Create a short call order with non empty floor makes the option impossible to exercise and withdraw

high

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

medium

An attacker can create a short put option order on an NFT that does not support ERC721(like cryptopunk), and the user can fulfill the order, but cannot exercise the option

medium

Zero strike call options will avoid paying system fee

Nibbl contest

Nibbl contest

49.7 USDC • Code4rena • minhquanym

#28

Yieldy contest

Yieldy contest

1,214.5 USDC • 4 total findings • Code4rena • minhquanym

#13

high

`Staking.sol#stake()` DoS by staking 1 wei for the recipient when `warmUpPeriod > 0`

medium

Cannot mint to exactly max supply using `_mint` function

medium

`_storeRebase()` is called with the wrong parameters

medium

Possible DOS (out-of-gas) on loops.

Nested Finance contest

Nested Finance contest

83.14 USDC • Code4rena • minhquanym

#15

Badger-Vested-Aura contest

Badger-Vested-Aura contest

1,881.47 USDC • 2 total findings • Code4rena • minhquanym

#6

medium

`_harvest` has no slippage protection when swapping `auraBAL` for `AURA`

medium

Withdrawing all funds at once to vault can be DoS attacked by frontrunning and locking dust

Connext Amarok contest

Connext Amarok contest

255.69 USDC • 1 total finding • Code4rena • minhquanym

#30

medium

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

Notional x Index Coop

Notional x Index Coop

1,942.85 USDC • 1 total finding • Code4rena • minhquanym

#9

high

Rounding Issues In Certain Functions

May '22

veToken Finance contest

veToken Finance contest

268.73 USDT • Code4rena • minhquanym

#31

Velodrome Finance contest

Velodrome Finance contest

294.83 USDC • 1 total finding • Code4rena • minhquanym

#24

medium

Malicious user can populate `rewards` array with tokens of their interest reaching limits of `MAX_REWARD_TOKENS`

Rubicon contest

Rubicon contest

203.47 USDC • 3 total findings • Code4rena • minhquanym

#39

high

First depositor can break minting of shares

medium

Use `safeTransfer()`/`safeTransferFrom()` instead of `transfer()`/`transferFrom()`

medium

`RubiconMarket.sol#isClosed()` always returns false, making the market can not be stopped as designed

Aura Finance contest

Aura Finance contest

83.25 USDC • Code4rena • minhquanym

#52

Cally contest

Cally contest

113.11 USDC • 2 total findings • Code4rena • minhquanym

#32

medium

Use safeTransferFrom instead of transferFrom for ERC721 transfers

medium

Vault is Not Compatible with Fee Tokens and Vaults with Such Tokens Could Be Exploited

Enso Finance contest

Enso Finance contest

174.21 USDT • Code4rena • minhquanym

#47

FactoryDAO contest

FactoryDAO contest

39.44 DAI • Code4rena • minhquanym

#59

Forgotten Runes Warrior Guild contest

Forgotten Runes Warrior Guild contest

45.77 USDC • Code4rena • minhquanym

#52

Apr '22

Phuture Finance contest

Phuture Finance contest

98.79 USDC • Code4rena • minhquanym

#20

Badger Citadel contest

Badger Citadel contest

1,815.58 USDC • 3 total findings • Code4rena • minhquanym

#13

high

StakedCitadel doesn't use correct balance for internal accounting

medium

Funding.deposit() doesn't work if there is no discount set

medium

New vest reset `unlockBegin` of existing vest without removing vested amount

JPEG'd contest

JPEG'd contest

2,280.15 USDC • 2 total findings • Code4rena • minhquanym

#9

medium

When _lpToken is jpeg, reward calculation is incorrect

medium

Division before Multiplication May Result In No Interest Being Accrued

Backed Protocol contest

Backed Protocol contest

181.41 USDC • 1 total finding • Code4rena • minhquanym

#20

medium

`sendCollateralTo` is unchecked in `closeLoan()`, which can cause user's collateral NFT to be frozen

Mar '22

Joyn contest

Joyn contest

325.2 USDC • 2 total findings • Code4rena • minhquanym

#22

high

ERC20 transferFrom return values not checked

high

Centralisation RIsk: Owner Of `RoyaltyVault` Can Take All Funds

Paladin contest

Paladin contest

160.66 USDC • Code4rena • minhquanym

#25

LI.FI contest

LI.FI contest

61.54 USDC • Code4rena • minhquanym

#56

prePO contest

prePO contest

80.3 USDC • Code4rena • minhquanym

#25

Biconomy Hyphen 2.0 contest

Biconomy Hyphen 2.0 contest

1,567.26 USDT • 2 total findings • Code4rena • minhquanym

#11

high

Wrong formula when add fee `incentivePool` can lead to loss of funds.

medium

Incompatibility With Rebasing/Deflationary/Inflationary token

Feb '22

JPYC contest

JPYC contest

655.35 USDC • Code4rena • minhquanym

#18

Hubble contest

Hubble contest

750.47 USDC • 2 total findings • Code4rena • minhquanym

#17

high

denial fo service

medium

Assets sent from MarginAccount to InsuranceFund will be locked forever