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

hickuphh3

Security Researcher

Contact Me

High

39

Total

Medium

1

Solo

66

Total

$149.96K

Total Earnings

#63 All Time

42x

Payouts

gold

3x

1st Places

silver

3x

2nd Places

bronze

4x

3rd Places

All

Sherlock

Code4rena

Mar '23

Olympus Update

Olympus Update

310.09 USDC • 1 total finding • Sherlock • hickuphh3

#4

high

User withdrawals can be griefed via indirect vault deposits

Y2K

Y2K

882.71 USDC • 7 total findings • Sherlock • hickuphh3

#16

high

Users lose profit in `mintRollovers` from incorrect variable used

high

Funds can be stolen because of incorrect update to `ownerToRollOverQueueIndex` for existing rollovers

high

Earlier users in rollover queue can grief later users

high

`depositFee` can be bypassed via deposit queue

medium

Stuck emissions for nullified epochs

medium

Minting queue deposits / rollovers fails after ~24.5k enrollments as it exceeds arbitrum gas limit

medium

No way to remove dust orders in the rollover queue

Feb '23

Fair Funding by Alchemix & Unstoppable

Fair Funding by Alchemix & Unstoppable

5,205.35 USDC • 3 total findings • Sherlock • hickuphh3

bronze

high

Incorrect shares accounting cause liquidations to fail in some cases

medium

Broken Operator Mechanism: Just 1 malicious / compromised operator can permanently break functionality

medium

Migrator contract lacks sufficient permissions over vault positions

Nov '22

Telcoin

Telcoin

2,553.91 USDC • 3 total findings • Sherlock • hickuphh3

silver

medium

Slashing fails if claims revert

medium

Audit Report

medium

Slashing can be frontrun

Oct '22

Merit Circle

Merit Circle

300.84 USDC • 3 total findings • Sherlock • hickuphh3

#8

medium

Curve is not guaranteed to be monotonically increasing

medium

Insufficient input validation of `escrowPortion` and `escrowPool`

medium

Rewards distribution may be frontrun

Sep '22

Harpie

Harpie

263.32 USDC • 3 total findings • Sherlock • hickuphh3

#7

medium

Use `safeTransferFrom()` instead of `transferFrom()` for outgoing erc721 transfers

medium

Funds can be held hostage due to uncapped fee

medium

Unsafe casting of user amount from `uint256` to `uint128`

Canto Dex Oracle contest

Canto Dex Oracle contest

1,359.13 CANTO • 2 total findings • Code4rena • hickuphh3

#5

high

Hardcoded USD pegs can be broken

medium

Calculated `token0TVL` may be zero under certain scenarios

Jul '22

Yield Witch v2 contest

Yield Witch v2 contest

401.22 USDC • Code4rena • hickuphh3

#4

May '22

OpenSea Seaport contest

OpenSea Seaport contest

2,557.04 USDC • Code4rena • hickuphh3

#18

Sturdy contest

Sturdy contest

1,766.82 USDC • 2 total findings • Code4rena • hickuphh3

#7

high

The check for value transfer success is made after the return statement in _withdrawFromYieldPool of LidoVault

medium

`UNISWAP_FEE` is hardcoded which will lead to significant losses compared to optimal routing

Cally contest

Cally contest

590.99 USDC • 4 total findings • Code4rena • hickuphh3

#18

medium

Expiration calculation overflows if call option duration ≥ 195 days

medium

Use safeTransferFrom instead of transferFrom for ERC721 transfers

medium

Owner can set the feeRate to be greater than 100% and cause all future calls to `exercise` to revert

medium

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

FactoryDAO contest

FactoryDAO contest

636.6 DAI • 4 total findings • Code4rena • hickuphh3

#13

high

SpeedBumpPriceGate: Excess ether did not return to the user

medium

MerkleResistor: zero coinsPerSecond will brick tranche initialization and withdrawals

medium

Malicious token reward could disable withdrawals

medium

amount requires to be updated to contract balance increase (1)

Forgotten Runes Warrior Guild contest

Forgotten Runes Warrior Guild contest

108.74 USDC • 1 total finding • Code4rena • hickuphh3

#32

medium

Use of `.send()` May Revert if The Recipient's Fallback Function Consumes More Than 2300 Gas

Apr '22

JPEG'd contest

JPEG'd contest

14,085.37 USDC • 5 total findings • Code4rena • hickuphh3

silver

high

Existing user’s locked JPEG could be overwritten by new user, causing permanent loss of JPEG funds

high

yVault: First depositor can break minting of shares

high

yVaultLPFarming: No guarantee JPEG currentBalance > previousBalance

high

Controller: Strategy migration will fail

medium

Oracle data feed is insufficiently validated.

Backed Protocol contest

Backed Protocol contest

497.71 USDC • 1 total finding • Code4rena • hickuphh3

#11

medium

`requiredImprovementRate` can not work as expected when `previousInterestRate` less than 10 due to precision loss

Mar '22

Joyn contest

Joyn contest

2,346.14 USDC • 6 total findings • Code4rena • hickuphh3

#4

high

Splitter: Anyone can call incrementWindow to steal the tokens in the contract

high

ERC20 transferFrom return values not checked

high

Funds cannot be withdrawn in `CoreCollection.withdraw`

medium

Ineffective Handling of FoT or Rebasing Tokens

medium

CoreCollection: Starting index is pseudo-randomly generated, allowing for gameable NFT launches

medium

Differing percentage denominators causes confusion and potentially brick claims

Sublime contest

Sublime contest

14,361.92 USDC • 3 total findings • Code4rena • hickuphh3

gold

high

LenderPool: Principal withdrawable is incorrectly calculated if start() is invoked with non-zero start fee

high

https://github.com/sublime-finance/sublime-v1/blob/46536a6d25df4264c1b217bd3232af30355dcb95/contracts/PooledCreditLine/LenderPool.sol#L404-L406

medium

Interest accrued could be zero for small decimal tokens

LI.FI contest

LI.FI contest

3,115.31 USDC • 6 total findings • Code4rena • hickuphh3

#8

medium

`AnyswapFacet` can be exploited to approve arbitrary tokens.

medium

Should prevent users from sending more native tokens in the `startBridgeTokensViaCBridge` function

medium

LibSwap: Excess funds from swaps are not returned

medium

DexManagerFacet: batchRemoveDex() removes first dex only

medium

cBridge integration fails to send native tokens

medium

Anyone can get swaps for free given certain conditions in `swap`.

Biconomy Hyphen 2.0 contest

Biconomy Hyphen 2.0 contest

5,783.05 USDT • 6 total findings • Code4rena • hickuphh3

#4

high

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

medium

WhitelistPeriodManager: Improper state handling of exclusion removals

medium

WhitelistPeriodManager: Improper state handling of exclusion additions

medium

Improper Upper Bound Definition on the Fee

medium

Owners have absolute control over protocol

medium

Incompatibility With Rebasing/Deflationary/Inflationary token

Feb '22

Anchor contest

Anchor contest

4,319.2 UST • Code4rena • hickuphh3

#9

JPYC contest

JPYC contest

5,806.81 USDC • Code4rena • hickuphh3

gold
PoolTogether TWAB Delegator contest

PoolTogether TWAB Delegator contest

375.91 USDC • Code4rena • hickuphh3

#5

Redacted Cartel contest

Redacted Cartel contest

2,515.71 USDC • 2 total findings • Code4rena • hickuphh3

#4

medium

Wrong slippage check

medium

ThecosomataETH: Oracle price can be better secured (freshness + tamper-resistance)

Badger Citadel contest

Badger Citadel contest

625.19 USDC • 1 total finding • Code4rena • hickuphh3

#13

medium

[WP-H3] `saleRecipient` can rug buyers

Concur Finance contest

Concur Finance contest

5,061.62 USDC • 7 total findings • Code4rena • hickuphh3

#4

high

Masterchef: Improper handling of deposit fee

high

[WP-H8] `ConvexStakingWrapper.sol#_calcRewardIntegral` Wrong implementation can disrupt rewards calculation and distribution

high

[WP-H13] `MasterChef.sol` Users won't be able to receive the `concur` rewards

high

[WP-H14] `ConvexStakingWrapper`, `StakingRewards` Wrong implementation will send `concur` rewards to the wrong receiver

high

Repeated Calls to Shelter.withdraw Can Drain All Funds in Shelter

medium

`MasterChef.updatePool()` Fails To Update Reward Variables If `block.number >= endBlock`

medium

Unconstrained fee

Jan '22

Sandclock contest

Sandclock contest

2,274.9 USDC • 3 total findings • Code4rena • hickuphh3

#10

high

deposit() function is open to reentrancy attacks

medium

A Single Malicious Trusted Account Can Takeover Parent Contract

medium

Medium: Consider alternative price feed + ensure _minLockPeriod > 0 to prevent flash loan attacks

Nov '21

Fei Protocol contest

Fei Protocol contest

86.99 USDC • Code4rena • hickuphh3

#9

yAxis contest

yAxis contest

365.69 USDC • 3 total findings • Code4rena • hickuphh3

#8

high

`Vault.withdraw` mixes normalized and standard amounts

medium

Vault: Swaps at parity with swap fee = withdrawal fee

medium

Vault: Withdrawals can be frontrun to cause users to burn tokens without receiving funds in return

FairSide contest

FairSide contest

3,653.72 ETH • 2 total findings • Code4rena • hickuphh3

#4

high

Anyone Can Arbitrarily Call `FSDVesting.updateVestedTokens()`

high

FSDVesting: Claiming tributes should call FSD token's corresponding functions

Oct '21

Slingshot Finance contest

Slingshot Finance contest

6,681.46 ETH • 1 total finding • Code4rena • hickuphh3

silver

medium

`initialBalance` for native token is wrong

Covalent contest

Covalent contest

830.71 ETH • 1 total finding • Code4rena • hickuphh3

#6

medium

reward tokens could get lost due to rounding down

Sep '21

Sushi Trident contest phase 2

Sushi Trident contest phase 2

26,145.52 USDC • 9 total findings • Code4rena • hickuphh3

gold

high

Understanding the fee growth mechanism (why nearestTick is unsuitable)

high

ConcentratedLiquidityPool: initialPrice should be checked to be within allowable range

high

ConcentratedLiquidityPool: rangeFeeGrowth and secondsPerLiquidity math needs to be unchecked

high

ConcentratedLiquidityPool: secondsPerLiquidity should be modified whenever pool liquidity changes

high

ConcentratedLiquidityPool: incorrect feeGrowthGlobal accounting when crossing ticks

high

`ConcentratedLiquidityPoolManager`'s incentives can be stolen

high

Wrong usage of `positionId` in `ConcentratedLiquidityPoolManager`

medium

ConcentratedLiquidityPoolHelper: getTickState() might run out of gas

medium

Cannot claim reward

Wild Credit contest

Wild Credit contest

348.69 USDC • Code4rena • hickuphh3

#9

yAxis contest

yAxis contest

2,106.31 tokens) • 3 total findings • Code4rena • hickuphh3

#5

high

`Vault.withdraw` mixes normalized and standard amounts

medium

Vault: Swaps at parity with swap fee = withdrawal fee

medium

Vault: Withdrawals can be frontrun to cause users to burn tokens without receiving funds in return

bveCVX by BadgerDAO contest

bveCVX by BadgerDAO contest

8,948.45 tokens) • Code4rena • hickuphh3

bronze

Aug '21

Gravity Bridge contest

Gravity Bridge contest

236.12 USDC • Code4rena • hickuphh3

#10

Reality Cards contest

Reality Cards contest

1,952.53 tokens) • 1 total finding • Code4rena • hickuphh3

#5

medium

Uninitialized Variable `marketWhitelist` in `RCTreasury.sol`

Yield micro contest #1

Yield micro contest #1

1,785.79 USDC • 2 total findings • Code4rena • hickuphh3

#5

medium

No ERC20 safe* versions called

medium

Rewards squatting - setting rewards in different ERC20 tokens opens various economic attacks.

Float Capital contest

Float Capital contest

7,177.16 USDC • 1 total finding • Code4rena • hickuphh3

bronze

medium

Staker.sol: Wrong values returned in edge cases of _calculateFloatPerSecond()

Jul '21

PoolTogether micro contest #1

PoolTogether micro contest #1

3,249.19 USDC • 3 total findings • Code4rena • hickuphh3

bronze

high

SwappableYieldSource: Missing same deposit token check in transferFunds()

high

`redeemToken` can fail for certain tokens

medium

Old yield source still has infinite approval

Sherlock contest

Sherlock contest

2,759.56 USDC • Code4rena • hickuphh3

#8

Spartan Protocol contest

Spartan Protocol contest

5,524.13 USDC • 6 total findings • Code4rena • hickuphh3

#5

high

Pool.sol & Synth.sol: Failing Max Value Allowance

medium

Missleading onlyDAO modifiers

medium

DEPLOYER can drain DAOVault funds + manipulate proposal results

medium

BondVault.sol: Possibly unwithdrawable bondedLP funds in claimForMember() + claimRate never zeros after full withdrawals

medium

Dao.sol: Insufficient validation for proposal creation

medium

Block usage of addCuratedPool