Banner
https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/f43baf69-16fe-4713-8441-e7804efb53e8.png

zzykxx

Security Researcher

Contact Me

High

51

Total

Medium

3

Solo

41

Total

$202.46K

Total Earnings

#44 All Time

25x

Payouts

gold

8x

1st Places

silver

5x

2nd Places

bronze

3x

3rd Places

All

Sherlock

Code4rena

Feb '25

THORWallet

THORWallet

346.49 USDC • 2 total findings • Code4rena • zzykxx

bronze

high

The user can send tokens to any address by using two bridge transfers, even when transfers are restricted.

medium

Improper Transfer Restrictions on Non-Bridged Tokens Due to Boolean Bridged Token Tracking, Allowing a DoS Attack Vector

Rova

Rova

10,178.25 USDC • 1 total finding • Sherlock • zzykxx

silver

medium

`updateParticipation()` incorrectly adds/subtracts different tokens when performing critical operations

Sep '24

Flayer

Flayer

21,711.09 USDC • 23 total findings • Sherlock • zzykxx

bronze

high

NFTs in protected listings that are unlocked but not withdrawn can be stolen

high

Native tokens donations to UniswapV4 pools can be stolen by adding/removing liquidity before/after a swap

high

Quorum votes downcasting in `CollectionShutdown.sol` leads to lower quorum and stolen funds

high

Voters can't withdraw their collection tokens after a shutdown is canceled

high

It's possible to cancel a shutdown after it's been executed

high

It's possible to create listings with an arbitrary start timestamp

high

Relisting liquidated listings should not distribute taxes and refunds

high

`ProtectedListings::_createCheckpoint()` returns wrong checkpoint index in some cases

high

`ProtectedListings::adjustPosition()` doesn't adjust the taxes to pay

high

First liquidity providers lose all of their assets

high

Lack of caller validation in `InfernalRiftAbove::claimRoyalties()` allows to steal royalties

high

`InfernalRiftBelow` lacks a way to withdraw ERC1155 royalties

high

`Listings::reserve()` doesn't delete the old listing

high

`Listings::reserve()` doesn't clear the `isLiquidation[collection][tokenId]` mapping

high

Protected listings checkpoints are not always updated when the total supply changes

high

Collection tokens fees price can be manipulated in the `beforeSwap()` hook

medium

`CollectionShutdown::execute()` doesn't ensure that all locked NFTs are sold

medium

Fee exemptions are never applied

medium

If the royalties receiver it's a smart contract it might be impossible to collect L2 royalties

medium

Moongate assumes royalties are always implemented as a fixed percentage of the price, leading to discrepancies or locked tokens

medium

`UniswapImplementation::beforeSwap()` might revert when swapping native tokens to collection tokens

medium

Maximum borrowable amount in protected listings should be lower

medium

`initializeCollection()` doesn't refund native tokens

Jun '24

dHEDGE

dHEDGE

37,720.77 USDC • Sherlock • zzykxx

silver

Findings not publicly available for private contests.

May '24

Sophon Farming Contracts

Sophon Farming Contracts

8,485.94 USDC • 3 total findings • Sherlock • zzykxx

gold

high

`ethToeETH()` returns the amount of shares minted instead of the amount of tokens received

high

`depositSteth()` and `depositeEth()` will revert

medium

`setStartBlock()` doesn't change the block at which already existing pools will start accumulating points

Napier Finance - LST/LRT Integrations

Napier Finance - LST/LRT Integrations

17,682.91 USDC • 7 total findings • Sherlock • zzykxx

gold

high

Users can frontrun LSTs/LRTs tokens prices decrease in order to avoid losses

medium

`_stake()` function in `PufEthAdapter` will always revert

medium

Adapters revert when 0 shares are minted, making it impossible to deposit under certain conditions

medium

Kelp adapter won't allow users to deposit in some situations

medium

Kelp adapter won't allow users to deposit if `getAssetCurrentLimit` returns `0`

medium

`_stake()` function in `RenzoAdaper` and `RsETHAdapter` doesn't check if max TVL is reached

medium

`RsETHAdapter` adapter `_stake()` function lacks slippage control

Apr '24

Renzo

Renzo

1,384.21 USDC • 6 total findings • Code4rena • zzykxx

#12

high

The amount of `xezETH` in circulation will not represent the amount of `ezETH` tokens 1:1

high

Incorrect withdraw queue balance in TVL calculation

high

Withdrawals logic allows MEV exploits of TVL changes and zero-slippage zero-fee swaps

high

ETH withdrawals from EigenLayer always fail due to `OperatorDelegator`'s nonReentrant `receive()`

medium

Deposits will always revert if the amount being deposited is less than the bufferToFill value

medium

`calculateTVL` may run out of gas for modest number of operators and tokens breaking deposits, withdrawals, and trades

Arcadia - Aerodrome integrations

Arcadia - Aerodrome integrations

9,160.71 USDC • 2 total findings • Sherlock • zzykxx

gold

medium

Donating (and syncing) tokens to an Aerodrome allows to bypass exposure limits

medium

Swapping large amounts of assets back and forth in an Aerodrome pool allows to bypass exposure limits

Mar '24

Goat Trading

Goat Trading

9,990.94 USDC • 3 total findings • Sherlock • zzykxx

silver

high

Liquidity provider fees can be stolen from any pair

medium

The router is not compatible with fee on transfers tokens

medium

It's possible to create pairs that cannot be taken over

RadicalxChange

RadicalxChange

9,280.31 USDC • 2 total findings • Sherlock • zzykxx

gold

high

Users can cancel their own highest bid of any round, including the current one

medium

Currently auctioned NFTs can be transferred to a different address in a specific edge case

Amphor

Amphor

8,045.81 USDC • 4 total findings • Sherlock • zzykxx

gold

high

Claiming a deposit (or redeem) on the same epoch it has been requested leads to stuck funds

high

Exchange rate is calculated incorrectly when the vault is closed, potentially leading to funds being stolen

high

Requesting a redeem sets `lastRedeemRequestId` to the wrong address

medium

Wrong allowance check on the vault zapper

Feb '24

Rio Network

Rio Network

8,218.98 USDC • 11 total findings • Sherlock • zzykxx

silver

high

It's possible to steal funds via donations to Eigenlayer strategies

high

Operators can undelegate `LRTRioOperatorDelegator` instances from Eigenlayer, leading to loss of funds

high

Malicious operator can steal stakers ETH by setting a validator withdrawal credentials to an address he controls

high

Epoch currently queued for settlement might get settled via `rebalance()` leading to stuck funds

medium

Increase in Eigenlayer strategies shares value might lead `rebalance()` reverting

medium

`RioLRTOperatorRegistry::verifyWithdrawalCredentials()` doesn't verify that the validator has 32ETH deposited from the rio protocol

medium

The protocol can't receive rewards because of low gas limits on ETH transfers

medium

Stakers can avoid validator penalties

medium

LRT that accepts both ETH and non-ETH assets can be forced to exit validators and receive less rewards

medium

Up to 1 ETH might get stuck in an EigenPod

medium

A part of ETH rewards can be stolen by sandwiching `claimDelayedWithdrawals()`

Jan '24

Arcadia

Arcadia

15,246.79 USDC • 5 total findings • Sherlock • zzykxx

silver

high

Lending pools that accept both ERC777 and UniswapV3 positions as collateral can be drained

high

Lending pools with ERC777 as an underlying asset can be drained

medium

Account auction price will keep decreasing even when bids can't be placed

medium

Possible griefing attack on lending pools interest rates

medium

Stargate `STG` rewards are accounted incorrectly by `StakedStargateAM.sol`

LooksRare YOLO

LooksRare YOLO

104.78 USDC • 2 total findings • Sherlock • zzykxx

#5

high

An attacker can win a round while depositing no assets

medium

It's possible to bypass the `MAXIMUM_NUMBER_OF_DEPOSITS_PER_ROUND`

Telcoin Platform Audit

Telcoin Platform Audit

371.15 USDC • 2 total findings • Sherlock • zzykxx

#6

high

The `burn()` function logic in `CouncilMember.sol` will prevent some council member from claiming their tokens

high

The `topUp()` function distributes tokens to the wrong contracts

Rio Vesting Escrow

Rio Vesting Escrow

2,625 USDC • 1 total finding • Sherlock • zzykxx

gold

high

Arbitrary `delegatecall` in the `VestingEscrow.sol` implementation

Truflation

Truflation

2,091.09 USDC • 3 total findings • Sherlock • zzykxx

gold

high

TRUF tokens in `TrufVesting.sol` can be drained

high

The `cancelVesting()` function does not return the user locked funds

medium

An expired lock can be extended with a past `end` timestamp while increasing points

May '23

Venus Protocol Isolated Pools

Venus Protocol Isolated Pools

66.59 USDC • 1 total finding • Code4rena • zzykxx

#41

high

Incorrect `blocksPerYear` constant in `WhitepaperInterestRateModel`

Dec '22

Forgeries contest

Forgeries contest

45.71 USDC • Code4rena • zzykxx

#21

Nov '22

Chainlink Staking contest

Chainlink Staking contest

19,328.84 USDC • Code4rena • zzykxx

gold

Oct '22

Astaria

Astaria

1,403.33 USDC • 7 total findings • Sherlock • zzykxx

#8

high

ecrecover missing address(0) check allows for fund draining, if the vault delegate is the 0 address

high

`_deleteLienPosition` visibility allows for fund draining

high

`yIntercept` is not correctly updated in `PublicVault.beforePayment()`

high

Users calling `makePayment()` for collaterals with multiple liens might lose funds

high

The function buyoutLien always revert

high

in `_validateCommitment` the potentialDebt is calculated wrongly

medium

VAULT_FEE() getter returns from the wrong offset, returning a wrong fee

Trader Joe v2 contest

Trader Joe v2 contest

13,484.72 USDC • 2 total findings • Code4rena • zzykxx

bronze

high

Attacker can steal entire reserves by abusing fee calculation

medium

Very critical `Owner` privileges can cause complete destruction of the project in a possible privateKey exploit

Blur Exchange contest

Blur Exchange contest

165.3 USDC • 1 total finding • Code4rena • zzykxx

#17

high

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

Sep '22

VTVL contest

VTVL contest

19.6 USDC • 1 total finding • Code4rena • zzykxx

#74

medium

Supply cap of VariableSupplyERC20Token is not properly enforced

Art Gobblers contest

Art Gobblers contest

5,299.91 USDC • 3 total findings • Code4rena • zzykxx

#6

high

Can Recover Gobblers Burnt In Legendary Mint

medium

The reveal process could brick if `randProvider` stops working

medium

Wrong balanceOf user after minting legendary gobbler