Banner
https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/52a53282-7497-4665-9398-185237501524.jpg

hals

Security Researcher

Independent Smart Contract Security Researcher | Blockchain Developer

Contact Me

High

20

Total

Medium

2

Solo

44

Total

$35.09K

Total Earnings

#236 All Time

43x

Payouts

gold

3x

1st Places

silver

1x

2nd Places

bronze

2x

3rd Places

All

Sherlock

Code4rena

Cantina

Hats Finance

Dec '24

Flex Perpetuals

Flex Perpetuals

62.48 USDC • 1 total finding • Code4rena • hals

#4

medium

Missing slippage protection in `AerodromeDexter.sol` `swapExactTokensForTokens()`

Chainlink Payment Abstraction

Chainlink Payment Abstraction

1,987.07 USDC • Code4rena • hals

bronze
Oku's New Order Types Contract Contest

Oku's New Order Types Contract Contest

2.29 OP • 4 total findings • Sherlock • hals

#44

high

Filled and cancelled orders are not removed from the `orders` array which can be exploited by the order recipient to receive `tokenIn` via `modifyOrder()`

high

{actor} will {impact} {affected party`StopLimit._createOrder()` : user's previous order will be overwritten if another order is created in the same block

high

`OracleLess.createOrder()`: anyone can create an order and pull tokens from any recipient who have approved `OracleLess` contract on his tokens to be pulled

medium

`OracleLess.createOrder()` : any malicious user can grief the contract by pushing empty orders to the `pendingOrderIds` array

Nov '24

Ethos Network Financial Contracts

Ethos Network Financial Contracts

72.48 USDC • 2 total findings • Sherlock • hals

#25

high

`ReputationMarket.buyVotes()` adds the protocol and donation fees to the `marketFunds` which would result in draining the contract funds when a market is graduated

high

`ReputationMarket.buyVotes()` : protocol and donation fees are calculated based on the total sent tokens (`msg.value`) instead of calculating it based on the total price of the bought votes

Chiliz Chain System Contracts

Chiliz Chain System Contracts

460.97 USDC • Sherlock • hals

#11

Findings not publicly available for private contests.

vVv Launchpad - Investments & Token distribution

vVv Launchpad - Investments & Token distribution

94.59 USDC • 1 total finding • Sherlock • hals

gold

high

Malicious actor can frontrun `VVVVCTokenDistributor.claim()` and claims rewards for himself

Telcoin Update #2

Telcoin Update #2

294.52 USDC • Sherlock • hals

#6

Jul '24

MakerDAO Endgame

MakerDAO Endgame

1,893.77 USDC • Sherlock • hals

#46

Jun '24

Mellow Modular LRTs

Mellow Modular LRTs

768.70 USDC • 1 total finding • Sherlock • hals

#5

medium

`WStethRatiosAggregatorV3.getAnswer()` always assumes `stETH:ETH` is 1:1 (pegged to ETH)

Vultisig

Vultisig

10.42 USDC • 1 total finding • Code4rena • hals

#30

medium

Transfer of ILOPool NFT token to different account allows for users to bypass the pool's `maxCapPerUser` invariant

Mar '24

Smart-contracts

Smart-contracts

133.47 USDC • 2 total findings • Cantina • hals

#30

high

Finding not yet public.

medium

Finding not yet public.

WOOFi Swap

WOOFi Swap

1,326.86 USDC • 2 total findings • Sherlock • hals

#5

medium

`WooCrossChainRouterV4.crossSwap()` doesn't correctly check for slippage

medium

`WooCrossChainRouterV4._handleERC20Received()`: `dstExternalFeeRate` is deducted from the bridged amount when the swap is done via a woofi pool

Abracadabra Mimswap

Abracadabra Mimswap

1,118.36 USDC • 3 total findings • Code4rena • hals

#8

medium

Adjusting "_I_" will create a sandwich opportunity because of price changes

medium

Loss of assumed functionality of the Onboarding contract in a highly-sensitive area

medium

MagicLpAggregator doesn't consider the dcimal of MagicLP

Feb '24

Smilee Finance

Smilee Finance

92.26 USDC • 1 total finding • Sherlock • hals

#8

medium

`IG` contract can be DoS'd from minting or burning options

Wise Lending

Wise Lending

2,000 USDC • 2 total findings • Hats • hals

bronze

medium

`WiseOracleHub.getTokensPriceInUSD` function uses the returned ETH price without validation

medium

Unchecked return value when withdrawing the underlying asset from aave might result in stuck `aTokens` in `AaveHub` contract

Paladin

Paladin

1,100 PAL • Hats • hals

#8

Jan '24

Olympus On-Chain Governance

Olympus On-Chain Governance

2,537.41 USDC • 2 total findings • Sherlock • hals

silver

medium

Proposals can't be voted on due to a wrong call in `GovernorBravoDelegate.castVoteInternal` function

medium

`proposal.quorumVotes` doesn't reflect the actual quorum at the time of voting

Opus

Opus

558.84 USDC • Code4rena • hals

#15

Curves

Curves

2,455.15 USDC • 11 total findings • Code4rena • hals

gold

high

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

high

Attack to make ````CurveSubject```` to be a ````HoneyPot````

high

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

high

Unauthorized Access to setCurves Function

medium

Protocol and referral fee would be permanently stuck in the Curves contract when selling a token

medium

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

medium

A subject creator within a single block can claim holder fees without holding due to unprotected reentrancy path

medium

onBalanceChange causes previously unclaimed rewards to be cleared

medium

Stuck rewards in `FeeSplitter` contract

medium

Curves::_buyCurvesToken(), Excess of Eth received is not refunded back to the user.

medium

If a user sets their curve token symbol as the default one plus the next token counter instance it will render the whole default naming functionality obsolete

reNFT

reNFT

244.32 USDC • Code4rena • hals

#32

Dec '23

Revolution Protocol

Revolution Protocol

781.3 USDC • 5 total findings • Code4rena • hals

#12

high

`ArtPiece.totalVotesSupply` and `ArtPiece.quorumVotes` are incorrectly calculated due to inclusion of the inaccessible voting powers of the NFT that is being auctioned at the moment when an art piece is created

medium

Once EntropyRateBps is set too high, can lead to denial-of-service (DoS) due to an invalid ETH amount

medium

Anyone can pause AuctionHouse in _createAuction

medium

Violation of ERC-721 Standard in VerbsToken:tokenURI Implementation

medium

Bidder can use donations to get VerbsToken from auction that already ended.

Ethereum Credit Guild

Ethereum Credit Guild

20.82 USDC • Code4rena • hals

#84

Nov '23

core-and-erc1155a

core-and-erc1155a

1,987.21 USDC • 3 total findings • Cantina • hals

#13

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Kelp DAO | rsETH

Kelp DAO | rsETH

196.33 USDC • 1 total finding • Code4rena • hals

#20

medium

Lack of slippage control on LRTDepositPool.depositAsset

Oct '23

Open Dollar

Open Dollar

2,698.44 USDC • 5 total findings • Code4rena • hals

gold

medium

Approved address can approve other addresses for an owner's safe

medium

Due to extremely short `votingDelay` and `votingPeriod`, governance is practically impossible.

medium

Decimal Limitation in CamelotRelayer and UniV3Relayer Contract Deployment

medium

Mismatch between the SAFE generated debt and the amount of the system tokens minted for the user

medium

Updating `SafeManager` address in the `Vault721` will disable NFV minting

zkSync Era

zkSync Era

273.57 USDC • Code4rena • hals

#35

Sep '23

Venus Prime

Venus Prime

202.85 USDC • 1 total finding • Code4rena • hals

#19

high

A malicious user can avoid unfavorable score updates after alpha/multiplier changes, resulting in accrual of outsized rewards for the attacker at the expense of other users

Maia DAO - Ulysses

Maia DAO - Ulysses

3,886.65 USDC • 2 total findings • Code4rena • hals

#9

high

if the Virtual Account's owner is a Contract Account (multisig wallet), attackers can gain control of the Virtual Accounts by gaining control of the same owner's address in a different chain

high

All tokens can be stolen from `VirtualAccount` due to missing access modifier

Allo V2

Allo V2

222.09 USDC • 2 total findings • Sherlock • hals

#33

medium

`DonationVotingMerkleDistributionVaultStrategy::claim` doesn't support fee-on-transfer tokens

medium

`QVBaseStrategy` contract : recipient `reviewStatus` is not reset upon re-registration

Centrifuge

Centrifuge

34.69 USDC • Code4rena • hals

#33

Ondo Finance

Ondo Finance

25.93 USDC • Code4rena • hals

#28

Aug '23

Cooler Update

Cooler Update

0.70 USDC • 1 total finding • Sherlock • hals

#20

medium

`rollLoan` caller will lose his collateral tokens if he is not the loan borrower

Dopex

Dopex

104.24 USDC • 3 total findings • Code4rena • hals

#74

high

The peg stability module can be compromised by forcing lowerDepeg to revert.

high

Incorrect precision assumed from RdpxPriceOracle creates multiple issues related to value inflation/deflation

medium

`sync` function in `RdpxV2Core.sol` should be called in multiple scenarios to account for the balance changes that occurs

Arbitrum Security Council Election System

Arbitrum Security Council Election System

2,457.24 USDC • 1 total finding • Code4rena • hals

#6

medium

`SecurityCouncilMemberElectionGovernor` Owner Can Change `votingPeriod` During an Active Election

PoolTogether V5: Part Deux

PoolTogether V5: Part Deux

1,031.39 USDC • 1 total finding • Code4rena • hals

#9

medium

`VaultBooster`: users tokens will be stuck if they deposited with unsupported boost tokens

Jul '23

Moonwell

Moonwell

1,212.54 USDC • 2 total findings • Code4rena • hals

#9

medium

Proposals which intend to send native tokens to target addresses can't be executed

medium

`fastTrackProposalExecution` should only be callable when `TemporalGovernor` is paused

Axelar Network

Axelar Network

43.33 USDC • Code4rena • hals

#24

PoolTogether

PoolTogether

341.44 USDC • 1 total finding • Code4rena • hals

#38

medium

deposit function does not check for the `maxMint` amount.

Tapioca DAO

Tapioca DAO

41.16 USDC • Code4rena • hals

#88

Dinari

Dinari

122.59 USDC • 1 total finding • Sherlock • hals

#6

medium

Operators can take escrow of any cancelled order

Jun '23

Lybra Finance

Lybra Finance

76.32 USDC • 1 total finding • Code4rena • hals

#62

high

Incorrectly implemented modifiers in LybraConfigurator.sol allow any address to call functions that are supposed to be restricted

Stader Labs

Stader Labs

2,077.61 USDC • 1 total finding • Code4rena • hals

#14

high

`VaultProxy` implementation can be initialized by anyone and self-destructed

May '23

Ajna Protocol

Ajna Protocol

36.24 USDC • Code4rena • hals

#49