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

BTK

Security Researcher

Contact Me

High

30

Total

Medium

39

Total

$12.16K

Total Earnings

#489 All Time

57x

Payouts

bronze

2x

3rd Places

regular

5x

Top 10

regular

25x

Top 25

All

Sherlock

Code4rena

May '24

LoopFi

LoopFi

71.11 USDC • 1 total finding • Code4rena • btk

#8

high

Availability of deposit invariant can be bypassed

Apr '24

Renzo

Renzo

1.48 USDC • 1 total finding • Code4rena • btk

#54

medium

Lack of slippage and deadline during withdraw and deposit

NOYA

NOYA

74.92 USDC + NOYA stars • 4 total findings • Code4rena • btk

#51

medium

AccountingManager has no correct implementations of the core ERC-4626 functions `deposit`, `mint`, `withdraw` and `redeem`

medium

`maxDeposit`, `maxMint`, `maxWithdraw`, and `maxRedeem` functions do not return 0 when they should

medium

`AccountingManager` contract's `previewDeposit`, `previewMint`, `previewWithdraw`, and `previewRedeem` functions are not compliant with EIP-4626 standard

medium

`depositQueue.queue` in `AccountingManager` can be flooded causing a DoS

DYAD

DYAD

11.66 USDC • 5 total findings • Code4rena • btk

#89

high

Attacker can make 0 value deposit() calls to deny user from redeeming or withdrawing collateral

high

Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine

high

Users can get their Kerosene stuck until TVL becomes greater than Dyad's supply

high

Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults

medium

Incorrect deployment / missing contract will break functionality

Mar '24

Ondo Finance

Ondo Finance

8.28 USDC • Code4rena • btk

#17

Revert Lend

Revert Lend

61.28 USDC • 1 total finding • Code4rena • btk

#53

medium

V3Vault is not ERC-4626 compliant

PoolTogether

PoolTogether

132.61 USDC • 4 total findings • Code4rena • btk

#21

high

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

high

Any fee claim lesser than the total `yieldFeeBalance` as unit of shares is lost and locked in the `PrizeVault` contract

medium

`VaultFactory` allows deployment of vaults with non-authentic `TwabController` and `PrizePool`

medium

Lack of Slippage Protection in `withdraw`/`redeem` Functions of the Vault

Feb '24

Spectra

Spectra

53.72 USDC • 1 total finding • Code4rena • btk

#20

medium

PrincipalToken is not ERC-5095 compliant

AI Arena

AI Arena

311.81 USDC • 10 total findings • Code4rena • btk

#15

high

Malicious user can stake an amount which causes zero curStakeAtRisk on a loss but equal rewardPoints to a fair user on a win

high

A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fighters

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

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

high

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

medium

Minter / Staker / Spender roles can never be revoked`..,

medium

Constraints of dailyAllowanceReplenishTime and allowanceRemaining during mint() can be bypassed by using alias accounts & safeTransferFrom()

medium

Burner role can not be revoked

medium

DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passed.

Jan '24

Curves

Curves

1,647.76 USDC • 6 total findings • Code4rena • btk

bronze

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

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.

Dec '23

Ethereum Credit Guild

Ethereum Credit Guild

529.18 USDC • 4 total findings • Code4rena • btk

#27

high

Users staking via the `SurplusGuildMinter` can be immediately slashed when staking into a gauge that had previously incurred a loss

medium

Wrong ProfitManager in GuildToken, will always revert for other types of gauges leading to bad debt

medium

ProfitManager's "creditMultiplier" calculation does not count undistributed rewards; this can cause value losses to users

medium

Anyone can prolong the time for the rewards to get distributed

Nov '23

Canto Application Specific Dollars and Bonding Curves for 1155s

Canto Application Specific Dollars and Bonding Curves for 1155s

4.08 USDC • Code4rena • btk

#30

Kelp DAO | rsETH

Kelp DAO | rsETH

145.34 USDC • 2 total findings • Code4rena • btk

#25

high

The price of rsEHT could be manipulated by the first staker

medium

Lack of slippage control on LRTDepositPool.depositAsset

Oct '23

NextGen

NextGen

1,386.77 USDC • 4 total findings • Code4rena • btk

#8

high

Attacker can drain all ETH from AuctionDemo when block.timestamp == auctionEndTime

high

Attacker can reenter to mint all the collection supply

high

Adversary can block `claimAuction()` due to push-strategy to transfer assets to multiple bidders

medium

`MinterContract::payArtist` can result in double the intended payout

Ethena Labs

Ethena Labs

166.32 USDC • 1 total finding • Code4rena • btk

#22

medium

Soft Restricted Staker Role can withdraw stUSDe for USDe

Open Dollar

Open Dollar

130.38 USDC • 3 total findings • Code4rena • btk

#32

medium

Test addresses and incorrect interface in code prevent integration with UniswapV3 and Camelot

medium

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

medium

`ODSafeManager#allowSAFE()` cannot be executed either by the proxy contract or any other address.

ENS

ENS

5.43 USDC • Code4rena • btk

#20

Sep '23

Venus Prime

Venus Prime

4.37 USDC • Code4rena • btk

#39

Maia DAO - Ulysses

Maia DAO - Ulysses

0.11 USDC • 1 total finding • Code4rena • btk

#62

high

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

Centrifuge

Centrifuge

12.79 USDC • Code4rena • btk

#34

Aug '23

Tangible Caviar

Tangible Caviar

128.89 USDC • Code4rena • btk

#44

Jul '23

Amphora Protocol

Amphora Protocol

9.43 USDC • Code4rena • btk

#23

Tokemak

Tokemak

67.15 USDC • 1 total finding • Sherlock • BTK

#48

medium

LMPVault is not 4626 compatible

PoolTogether

PoolTogether

25.21 USDC • 4 total findings • Code4rena • btk

#61

high

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

high

Any fee claim lesser than the total `yieldFeeBalance` as unit of shares is lost and locked in the `PrizeVault` contract

medium

`VaultFactory` allows deployment of vaults with non-authentic `TwabController` and `PrizePool`

medium

Lack of Slippage Protection in `withdraw`/`redeem` Functions of the Vault

Jun '23

Lybra Finance

Lybra Finance

500 USDC • 1 total finding • Code4rena • btk

#23

medium

CLOCK_MODE() will not work properly for Arbitrum or Optimism due to block.number

Stader Labs

Stader Labs

18.57 USDC • Code4rena • btk

#36

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

172.82 USDC • 1 total finding • Code4rena • btk

#55

medium

Wrong consideration of blockformation period causes incorrect votingPeriod and votingDelay calculations

BASE

BASE

813.4 USDC • Code4rena • btk

bronze
Venus Protocol Isolated Pools

Venus Protocol Isolated Pools

56.63 USDC • Code4rena • btk

#42

Ajna Protocol

Ajna Protocol

36.24 USDC • Code4rena • btk

#49

Apr '23

EigenLayer Contest

EigenLayer Contest

71.6 USDC • Code4rena • btk

#25

Frankencoin

Frankencoin

22.6 USDC • Code4rena • btk

#66

Caviar Private Pools

Caviar Private Pools

321.04 USDC • 1 total finding • Code4rena • btk

#21

high

Risk of silent overflow in reserves update

Rubicon v2

Rubicon v2

0.29 USDC • 1 total finding • Code4rena • btk

#123

medium

Calling `ExpiringMarket.stop` and `ExpiringMarket.isClosed` functions cannot pause any functionlities of the market

Mar '23

Asymmetry contest

Asymmetry contest

42.06 USDC • Code4rena • btk

#83

Polynomial Protocol contest

Polynomial Protocol contest

956.38 USDC • Code4rena • btk

#13

Neo Tokyo contest

Neo Tokyo contest

235.24 USDC • Code4rena • btk

#11

Wenwin contest

Wenwin contest

21.7 USDC • Code4rena • btk

#26

Feb '23

Surge

Surge

26.07 USDC • 1 total finding • Sherlock • BTK

#19

medium

`feeRecipient` can be set to address(0) even if `feeMantissa` is more than zero

Ethos Reserve contest

Ethos Reserve contest

61.26 USDC • Code4rena • btk

#33

Jan '23

Popcorn contest

Popcorn contest

319.58 USDC • 2 total findings • Code4rena • btk

#47

high

Staking rewards can be drained

medium

Fee on transfer token not supported

Canto Identity Protocol contest

Canto Identity Protocol contest

44.97 CANTO • Code4rena • btk

#13

Numoen contest

Numoen contest

997.11 USDC • Code4rena • btk

#11

RabbitHole Quest Protocol contest

RabbitHole Quest Protocol contest

122.19 USDC • 1 total finding • Code4rena • btk

#35

high

Bad implementation in minter access control for `RabbitHoleReceipt` and `RabbitHoleTickets` contracts

Drips Protocol contest

Drips Protocol contest

122.82 USDC • Code4rena • btk

#12

Timeswap contest

Timeswap contest

837.8 USDC • Code4rena • btk

#13

OpenSea Seaport 1.2 contest

OpenSea Seaport 1.2 contest

140.67 USDC • Code4rena • btk

#9

Ondo Finance contest

Ondo Finance contest

304.58 USDC • Code4rena • btk

#14

Reserve contest

Reserve contest

121.59 USDC • Code4rena • btk

#26

Astaria contest

Astaria contest

51.32 USDC • Code4rena • btk

#52

Biconomy - Smart Contract Wallet contest

Biconomy - Smart Contract Wallet contest

361.01 USDC • Code4rena • btk

#31

Dec '22

GoGoPool contest

GoGoPool contest

130.36 USDC • 4 total findings • Code4rena • btk

#53

high

Inflation of ggAVAX share price by first depositor

medium

Users may not be able to redeem their shares due to underflow

medium

wrong reward distribution between early and late depositors because of the late syncRewards() call in the cycle, syncReward() logic should be executed in each withdraw or deposits (without reverting)

medium

`requireNextActiveMultisig` will always return the first enabled multisig which increases the probability of stuck minipools

Forgeries contest

Forgeries contest

19.22 USDC • 1 total finding • Code4rena • btk

#25

high

Admin does not have to wait to call `lastResortTimelockOwnerClaimNFT()`

Escher contest

Escher contest

0.61 USDC • 1 total finding • Code4rena • btk

#71

medium

Use of `payable.transfer()` Might Render ETH Impossible to Withdraw

Nov '22

Redacted Cartel contest

Redacted Cartel contest

53.49 USDC • Code4rena • btk

#46

LSD Network - Stakehouse contest

LSD Network - Stakehouse contest

129.76 USDC • 2 total findings • Code4rena • btk

#40

high

Reentrancy in LiquidStakingManager.sol#withdrawETHForKnow leads to loss of fund from smart wallet.

medium

Calling `updateNodeRunnerWhitelistStatus` function always reverts

Debt DAO contest

Debt DAO contest

61.35 USDC • Code4rena • btk

#51