https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/82574042-e9f8-4bd9-abc3-2a1591efc8c1.png

haxatron

Security Researcher

#RoadToLSW

Contact Me

High

43

Total

Medium

68

Total

$451.85K

Total Earnings

#16 All Time

25x

Payouts

gold

1x

1st Places

silver

1x

2nd Places

bronze

2x

3rd Places

All

Sherlock

Code4rena

Cantina

CodeHawks

Immunefi

Mar '25

interop-portal

interop-portal

500 USDC • Cantina • Haxatron

#6

Jan '25

infrared-contracts

infrared-contracts

11,584.36 USDC • 2 total findings • Cantina • Haxatron

#7

medium

Finding not yet public.

medium

Finding not yet public.

Dec '24

story-protocol

story-protocol

81,021.43 USDC • 17 total findings • Cantina • Haxatron

#4

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Oct '24

Omni Network

Omni Network

230,531.77 USDC • 5 total findings • Cantina • Haxatron

gold

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Aug '24

Chakra

Chakra

174.71 USDT • 9 total findings • Code4rena • haxatron

#22

high

There is no refund mechanism in `ChakraSettlement.processCrossChainCallback` or `ChakraSettlementHandler.receive_cross_chain_callback` function

high

`ChakraSettlement.receive_cross_chain_msg` and `ChakraSettlement.receive_cross_chain_callback` functions do not ensure that receiving `ChakraSettlement` contract's `contract_chain_name` must match `to_chain` corresponding to respective `txid` input though

high

SettlementSignatureVerifier is missing check for duplicate validator signatures

high

In Starknet already processed messages can be re-submitted and by anyone

high

handler's `receive_cross_chain_callback()` will always set the tx_status to `SETTLED` on source chain & burn the tokens (MintBurn Mode) even when the msg fails on destination

medium

A cross-chain message can be initiated with invalid parameters

medium

Wrong usage of transaction originator address instead of caller address

medium

Does not check if to_chain and to_handler is whitelisted in cross_chain_erc20_settlement

medium

Excessive Authority Granted to Managers in the `ckr_btc.cairo` Contract Presents Significant Management Risks

zetachain-protocol

zetachain-protocol

11,749.12 USDC • 14 total findings • Cantina • Haxatron

silver

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Jul '24

ArkProject: NFT Bridge

ArkProject: NFT Bridge

3,153.43 USDC • 5 total findings • CodeHawks • haxatron

bronze

high

`Tokens` Are Automatically Whitelisted Upon Creation And Binding Even When `_whiteListEnabled == false`

high

`Bridge` is unable to transfer ownership and upgrade on `ERC721Bridgeable`

medium

Starknet tokens deposited with use_withdraw_auto can never be withdrawn

medium

Tokens irrecoverable by owner on L1 if not an `ERC721` receiver

medium

Starknet bridge contract does not check if the collection supports IERC721Metadata interface, so the ones that do not implement it will not be able to bridge NFTs

MakerDAO Endgame

MakerDAO Endgame

964.34 USDC • Sherlock • haxatron

#59

CCIP v1.5

CCIP v1.5

10,792.88 USDC • CodeHawks • haxatron

bronze

May '24

Beanstalk: The Finale

Beanstalk: The Finale

4.60 USDC • 1 total finding • CodeHawks • haxatron

#37

low

`BeanL1RecieverFacet#recieveL1Beans()` would never work

Olas

Olas

6,493.8 USDC • 6 total findings • Code4rena • haxatron

#4

high

Arbitrary tokens and data can be bridged to `GnosisTargetDispenserL2` to manipulate staking incentives

medium

Users will lose all ETH sent as `cost` parameter in transactions to and from Optimism

medium

Non-normalized amounts sent via Wormhole lead to failure to redeem incentives

medium

Refunds for unconsumed gas will be lost due to incorrect refund chain ID

medium

The `msg.value` - `cost` for multiple cross-chain bridges are not refunded to users

medium

The `refundAccount` is erroneously set to `msg.sender` instead of `tx.origin` when `refundAccount` specified as `address(0)`

safe-extensions

safe-extensions

749.7 USDC • 1 total finding • Cantina • Haxatron

#23

medium

Finding not yet public.

Mar '24

Optimism Fault Proofs

Optimism Fault Proofs

2,203.02 USDC • 1 total finding • Sherlock • haxatron

#6

medium

Anchor state registry can be corrupted which will prevent game creation of the same type.

Feb '24

curvance

curvance

34,386.65 USDC • 12 total findings • Cantina • Haxatron

#4

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

UniStaker Infrastructure

UniStaker Infrastructure

694.3 USDC • Code4rena • haxatron

#5

Audit Comp | Puffer Finance

Audit Comp | Puffer Finance

240 USDC • 1 total finding • Immunefi • Haxatron

#32

low

Finding not yet public.

AI Arena

AI Arena

3,246.87 USDC • 9 total findings • Code4rena • haxatron

#4

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

Player can mint more fighter NFTs during claim of rewards by leveraging reentrancy on the `claimRewards() function `

high

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

high

Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`

medium

Erroneous probability calculation in physical attributes can lead to significant issues

medium

NFTs can be transferred even if StakeAtRisk remains, so the user's win cannot be recorded on the chain due to underflow, and can recover past losses that can't be recovered(steal protocol's token)

medium

Can mint NFT with the desired attributes by reverting transaction

medium

Fighter created by mintFromMergingPool can have arbitrary weight and element

Jan '24

Blast

Blast

49,659.25 USDC • 7 total findings • Cantina • Haxatron

#7

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Olympus On-Chain Governance

Olympus On-Chain Governance

524.45 USDC • 1 total finding • Sherlock • haxatron

#6

medium

High risk quorum bypass by appending extra bytes into the calldata.

Decent

Decent

1,726.63 USDC • 6 total findings • Code4rena • haxatron

#5

high

When `DecentBridgeExecutor.execute` fails, funds will be sent to a random address

high

Users will lose their cross-chain transaction if the destination router do not have enough WETH reserves.

high

Anyone can update the address of the Router in the DcntEth contract to any address they would like to set.

medium

DecentEthRouter.sol#_bridgeWithPayload() - Any refunded ETH (native token) will be refunded to the DecentBridgeAdapter, making them stuck

medium

Missing access control on UTB:receiveFromBridge allows UTB swaps to be executed without spending bridge fees while bypassing fee/swap instruction signature verification

medium

Users can use the protocol freely without paying any fees by calling the `DecentEthRouter::bridgeWithPayload()` function directly.

Salty.IO

Salty.IO

817.82 USDC • 5 total findings • Code4rena • haxatron

#17

medium

Persistent Contract Call revert prevents finalizing a ballot

medium

Incorrect calculation to check remaining ratio after reward in StableConfig.sol

medium

Adversary can prevent updating price feed addresses by creating poisonous proposals ending in `_confirm`

medium

DOS of proposals by abusing ballot names without important parameters

medium

SALT staker can get extra voting power by simply unstaking their xSALT

Curves

Curves

2.61 USDC • 6 total findings • Code4rena • haxatron

#114

high

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

high

Unauthorized Access to setCurves Function

medium

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

medium

onBalanceChange causes previously unclaimed rewards to be cleared

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

331.02 USDC • Code4rena • haxatron

#27

Dec '23

The Standard

The Standard

243.37 USDC • 4 total findings • CodeHawks • haxatron

#13

high

Rewards can be drained because of lack of access control

high

Looping over unbounded `pendingStakes` array can lead to permanent DoS and frozen funds

medium

No incentive to liquidate small positions could result in protocol going underwater

medium

Incorrect calculation of amount of EURO to burn during liquidation

Revolution Protocol

Revolution Protocol

51.14 USDC • 1 total finding • Code4rena • haxatron

#52

medium

`ERC20TokenEmitter::buyToken` function mints more tokens to users than it should do