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

zzzitron

Security Researcher

Contact Me

High

34

Total

Medium

37

Total

$65.89K

Total Earnings

#148 All Time

34x

Payouts

gold

1x

1st Places

silver

1x

2nd Places

bronze

2x

3rd Places

All

Code4rena

Jan '24

reNFT

reNFT

327.81 USDC • Code4rena • zzzitron

#28

Oct '23

zkSync Era

zkSync Era

273.57 USDC • Code4rena • zzzitron

#35

Sep '23

Maia DAO - Ulysses

Maia DAO - Ulysses

0.11 USDC • 1 total finding • Code4rena • zzzitron

#62

high

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

Aug '23

Chainlink Staking v0.2

Chainlink Staking v0.2

3,697.32 USDC • Code4rena • zzzitron

#16

Jul '23

PoolTogether

PoolTogether

3,606.36 USDC • 3 total findings • Code4rena • zzzitron

#4

high

_requireVaultCollateralized() is called at the beginning of the functions mintYieldFee() and liquidate()

high

`Vault.mintYieldFee` FUNCTION CAN BE CALLED BY ANYONE TO MINT `Vault Shares` TO ANY RECIPIENT ADDRESS

high

Malicious user can steal other user's deposits from Vault.sol

Tapioca DAO

Tapioca DAO

11,287.84 USDC • 13 total findings • Code4rena • zzzitron

#7

high

Liquidation transactions can potentially fail for all markets

high

Reentrancy in `USDO.flashLoan()`, enabling an attacker to borrow unlimited USDO exceeding the max borrow limit

high

Collateral can be locked in BigBang contract when `debtStartPoint` is nonzero

high

Ability to steal user funds and increase collateral share infinitely in BigBang and Singularity

high

`SGLLiquidation::_computeAssetAmountToSolvency`, `Market::_isSolvent` and `Market::_computeMaxBorrowableAmount` may overestimate the collateral, resulting in false solvency

high

`BigBang::repay` and `Singularity::repay` spend more than allowed amount

medium

liquidation will fail if the Seer or Oracle reverts instead of returning false

medium

`totalCollateralShare` state variable not updated in `Singularity` market upon liquidation, resulting in an error on `addCollateral` with skim functionality

medium

Tapioca Bar: Unusable Market Add Functions in Penrose Contract

medium

`TapiocaOptionLiquidityProvision.registerSingularity()` not checking for duplicate assetIds leading to multiple issues.

medium

all deposit and withdraw function in Convex and Curve nativeLP Strategy, apply slippage on internal pricing; which call real-time on chain price from Curve directly and subject to MEV

medium

`YieldBox::deposit`, `YieldBox::withdraw` might lock ERC1155 NFT if deposited/withdrawn with less than 1e8 share.

medium

`SGLBorrow::repay` and `BigBang::repay` uses `allowedBorrow` with the asset amount, whereas other functions use it with share of collateral

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

95.38 USDC • 1 total finding • Code4rena • zzzitron

#59

high

`UlyssesToken` asset ID accounting error

Mar '23

Asymmetry contest

Asymmetry contest

42.06 USDC • Code4rena • zzzitron

#83

Feb '23

Ethos Reserve contest

Ethos Reserve contest

455.47 USDC • Code4rena • zzzitron

#24

Jan '23

Drips Protocol contest

Drips Protocol contest

122.82 USDC • Code4rena • zzzitron

#12

Nov '22

Chainlink Staking contest

Chainlink Staking contest

2,440.19 USDC • Code4rena • zzzitron

#9

Oct '22

Trader Joe v2 contest

Trader Joe v2 contest

0.97 USDC • 1 total finding • Code4rena • zzzitron

#28

medium

beforeTokenTransfer called with wrong parameters in LBToken._burn

The Graph L2 bridge contest

The Graph L2 bridge contest

50.28 USDC • Code4rena • zzzitron

#15

Sep '22

VTVL contest

VTVL contest

136.28 USDC • 2 total findings • Code4rena • zzzitron

#37

medium

Variable balance token causing fund lock and loss

medium

Supply cap of VariableSupplyERC20Token is not properly enforced

Art Gobblers contest

Art Gobblers contest

55.2 USDC • Code4rena • zzzitron

#21

Y2k Finance contest

Y2k Finance contest

73.23 USDC • 1 total finding • Code4rena • zzzitron

#47

high

Incorrect handling of pricefeed.decimals()

Nouns Builder contest

Nouns Builder contest

235.47 USDC • 4 total findings • Code4rena • zzzitron

#54

medium

Founders can receive less tokens that expected

medium

Truncation in casting can lead to a founder receiving all the base tokens

medium

`Token:mint`: infinite loop if the founders' shares sum up to 100

medium

Proposals can be bricked and Auctions stalled by bad settings

Aug '22

Olympus DAO contest

Olympus DAO contest

6,773.28 USDC • 9 total findings • Code4rena • zzzitron

gold

high

In `Governance.sol`, it might be impossible to activate a new proposal forever after failed to execute the previous active proposal.

high

TRSRY: front-runnable `setApprovalFor`

medium

`activateProposal()` need time delay

medium

Voted votes cannot change after the user are issued with new votes or the user's old votes are revoked during voting

medium

OlympusGovernance: Users can prevent their votes from being revoked

medium

TRSRY: reenter from OlympusTreasury::repayLoan to Operator::swap

medium

Operator: if WallSpread is 10000, `operate` and `beat` will revert and price information cannot be updated anymore

medium

[NAZ-M1] Chainlink's `latestRoundData` Might Return Stale Results

medium

Heart::beat() could be called several times in one block if no one called it for a some time

Nouns DAO contest

Nouns DAO contest

1,718.73 USDC • 1 total finding • Code4rena • zzzitron

#6

high

ERC721Checkpointable: delegateBySig allows the user to vote to address 0, which causes the user to permanently lose his vote and cannot transfer his NFT.

Fraxlend (Frax Finance) contest

Fraxlend (Frax Finance) contest

238.34 USDC • 1 total finding • Code4rena • zzzitron

#22

medium

Wrong percent for `FraxlendPairCore.dirtyLiquidationFee`.

Jul '22

Golom contest

Golom contest

526.19 USDC • Code4rena • zzzitron

#22

ENS contest

ENS contest

11,088.16 USDC • 5 total findings • Code4rena • zzzitron

silver

high

[PNM-001] `PARENT_CANNOT_CONTROL` can be bypassed by maliciously unwrapping parent node

medium

transfer() depends on gas consts

medium

ERC1155Fuse: `_transfer` does not revert when sent to the old owner

medium

BytesUtils: compare will not revert when the offset and len exceeds the bytes lengths

medium

Incorrect implementation of `RRUtils.serialNumberGte`

Fractional v2 contest

Fractional v2 contest

3,913.01 USDC • 9 total findings • Code4rena • zzzitron

#6

high

Any fractions deposited into any proposal can be stolen at any time until it is commited

high

Vault implementation can be destroyed leading to loss of all assets

high

Fund will be stuck if a buyout is started while there are pending migration proposals

high

Steal NFTs from a Vault, and ETH + Fractional tokens from users.

high

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

high

Malicious User Could Burn The Assets After A Successful Migration

high

Migration Module: Re-enter `commit` using custom token

medium

`fallback()` function can bypass permission/auth checks imposed in `execute()`

medium

Buyout Module: `redeem`ing before the update of totalSupply will make buyout's current state success

Juicebox V2 contest

Juicebox V2 contest

6,473.84 USDC • 4 total findings • Code4rena • zzzitron

bronze

high

ORACLE DATA FEED CAN BE OUTDATED YET USED ANYWAYS WHICH WILL IMPACT ON PAYMENT LOGIC

medium

Duplicated locked splits can be discarded

medium

Lack of check on `mustStartAtOrAfter`

medium

Use a safe transfer helper library for ERC20 transfers

Jun '22

Putty contest

Putty contest

1,816.25 USDC • 4 total findings • Code4rena • zzzitron

#7

high

Fee is being deducted when Put is expired and not when it is exercised.

high

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

medium

Put option sellers can prevent exercise by specifying zero amounts, or non-existant tokens

medium

`fillOrder()` and `exercise()` may lock Ether sent to the contract, forever

Canto v2 contest

Canto v2 contest

1,207.8 USDC • 2 total findings • Code4rena • zzzitron

#8

medium

Non view function is called with staticcall in `CErc20Delegator`

medium

Stableswap - Deadline do not work

Nibbl contest

Nibbl contest

258.54 USDC • 1 total finding • Code4rena • zzzitron

#14

medium

NibblVault: In the buy function, users can avoid paying fees

Yieldy contest

Yieldy contest

368.53 USDC • 2 total findings • Code4rena • zzzitron

#26

high

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

medium

No way to set CURVE_POOL approval after setting new curve pool address

Badger-Vested-Aura contest

Badger-Vested-Aura contest

3,600.11 USDC • 1 total finding • Code4rena • zzzitron

bronze

high

attacker can call sweepRewardToken() when `bribesProcessor==0` and reward funds will be lost because there is no check in sweepRewardToken() and _handleRewardTransfer() and _sendTokenToBribesProcessor()

Infinity NFT Marketplace contest

Infinity NFT Marketplace contest

848.48 USDC • 2 total findings • Code4rena • zzzitron

#13

high

`canExecTakeOrder` mismatches `makerOrder` and `takerItems` when duplicated items present

high

`_transferNFTs()` succeeds even if no transfer is performed

Canto contest

Canto contest

2,001.96 USDC • 4 total findings • Code4rena • zzzitron

#15

high

Stealing Wrapped Manifest in WETH.sol

high

WETH.sol computes the wrong totalSupply()

high

Anyone can create Proposal Unigov Proposal-Store.sol

high

It's not possible to execute governance proposals through the GovernorBravoDelegate contract

Connext Amarok contest

Connext Amarok contest

141.82 USDC • Code4rena • zzzitron

#53

Notional x Index Coop

Notional x Index Coop

89.19 USDC • Code4rena • zzzitron

#38

May '22

OpenSea Seaport contest

OpenSea Seaport contest

1,923.74 USDC • Code4rena • zzzitron

#30