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

klaus

Security Researcher

Contact Me

High

37

Total

Medium

44

Total

$74.03K

Total Earnings

#114 All Time

30x

Payouts

gold

2x

1st Places

bronze

1x

3rd Places

regular

15x

Top 10

All

Sherlock

Code4rena

CodeHawks

Feb '25

Rova

Rova

0.04 USDC • 1 total finding • Sherlock • klaus

bronze

medium

Incorrect update of _userTokensByLaunchGroup in updateParticipation allows bypassing user max/min limits

Jan '25

Liquid Ron

Liquid Ron

0.03 USDC • 2 total findings • Code4rena • klau5

#10

high

The calculation of `totalAssets()` could be wrong if `operatorFeeAmount` > 0, this can cause potential loss for the new depositors

medium

Incorrect Logic in onlyOperator Modifier Leading to Denial-of-Service for Authorized Operators Across Critical Functions

Oct '24

Kleidi

Kleidi

393.19 USDC • 1 total finding • Code4rena • klau5

#9

medium

Wrong handling of call data check indices, forcing it sometimes to revert

Sep '24

Staking

Staking

1,037.43 USDC • CodeHawks • klaus

#18

Aug '24

Chakra

Chakra

1,282.88 USDT • 9 total findings • Code4rena • klau5

#10

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

In settlement.cairo::receive_cross_chain_msg - the payload_type can be passed by the user, confusing offchain systems

high

Anyone can manipulate user nonce (nonce_manager) in settlement contract

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

Does not check if to_chain and to_handler is whitelisted in cross_chain_erc20_settlement

medium

SettlementSignatureVerifier's required_validators is not updated, resulting in a low or high number of signatures being required

Axelar Network

Axelar Network

50,568.21 USDC • 2 total findings • Code4rena • klau5

gold

high

Bridge requests to remote chains where interchain tokens are not deployed can result in DoS attacks

high

Can block bridge or limit the bridgeable amount by initializing the ITSHub balance of the original chain

Jul '24

TraitForge

TraitForge

0 USDC • 5 total findings • Code4rena • klau5

#89

high

`mintToken()`, `mintWithBudget()`, and `forge()` in the `TraitForgeNft` Contract Will Fail Due to a Wrong Modifier Used in `EntropyGenerator.initializeAlphaIndices()`

high

Number of entities in generation can surpass the 10k number

high

Wrong minting logic based on total token count across generations

medium

Forger Entities can forge more times than intended

medium

Pause and unpause functions are inaccessible

Mar '24

DittoETH

DittoETH

7,224.33 USDC • 6 total findings • Code4rena • klau5

gold

high

Valid redemption proposals can be disputed by decreasing collateral

high

Closing a SR during a wrong redemption proposal leads to loss of funds

medium

Using cached price to create a proposal reduce the efficacity of redemptions for asset peg

medium

oracleCircuitBreaker: Not checking if price information of asset is stale

medium

transferShortRecord: Can transfer a newly created ShortRecord using a previously minted NFT

medium

Can manipulate the C.SHORT_STARTING_ID ShortRecord of the TAPP

Zap Protocol

Zap Protocol

25.12 USDC • 2 total findings • Sherlock • klaus

#10

high

Tokens deposited in the Vesting contract can be drained by re-entering Vesting.claim

medium

Native tokens cannot be deposited in the Vesting contract

WOOFi Swap

WOOFi Swap

981.93 USDC • 2 total findings • Sherlock • klaus

#6

medium

_swapBaseToBase: Can mipulate base token price by swapping between same base token

medium

Chainlink price oracle can be zero or negative, but does not check for it

Feb '24

Rio Network

Rio Network

337.45 USDC • 4 total findings • Sherlock • klaus

#20

high

New withdrawal requests can be created in the same epoch after WithdrawalQueue.queueCurrentEpochSettlement, causing loss of tokens for the user

medium

depositTokenToOperators: When allocating ERC20 to multiple operators, it always fails because the predicted share and the actual share received are not the same

medium

Can verify with an external validator that is not registered in the Rio system. Prevent other operators from verifying

medium

RioLTROperatorDelegator.receive always reverts so it is unable to receive partial withdrawals and any amount in excess of 32 ETH for full withdrawals

AI Arena

AI Arena

387.62 USDC • 12 total findings • Code4rena • klau5

#10

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

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(...)`

high

FighterFarm:: reroll won't work for nft id greator than 255 due to input limited to uint8

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

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

medium

Can mint NFT with the desired attributes by reverting transaction

medium

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

medium

Fighter created by mintFromMergingPool can have arbitrary weight and element

Jan '24

Salty.IO

Salty.IO

2,147.7 USDC • 10 total findings • Code4rena • klau5

#6

high

When borrowers repay USDS, it is sent to the wrong address, allowing anyone to burn Protocol Owned Liquidity and build bad debt for USDS

high

User can evade `liquidation` by depositing the minimum of tokens and gain time to not be liquidated

medium

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

medium

Some rewards from POL will not be send to team wallet nor burned

medium

DOS of proposals by abusing ballot names without important parameters

medium

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

medium

Unwhitelisting does not clear _arbitrageProfits, so re-whitelisting may result in an unfair distribution of liquidity rewards.

medium

Remove Liquidity has missing reserve1 DUST check, which can make reserve1 to be less than DUST

medium

Impossible to change managed wallets with `proposeWallets` after first rejection

medium

Absence of autonomous mechanism for `selling collateral assets in the external market in exchange for USDS` will cause undercollateralization during market crashes and will cause USDS to depeg.

Curves

Curves

16.26 USDC • 5 total findings • Code4rena • klau5

#80

high

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

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

onBalanceChange causes previously unclaimed rewards to be cleared

Dec '23

Ethereum Credit Guild

Ethereum Credit Guild

142.04 USDC • 3 total findings • Code4rena • klau5

#61

high

The userGaugeProfitIndex is not set correctly, allowing an attacker to receive rewards without waiting

high

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

medium

Incorrect calculations in debtCeiling

Oct '23

Party Protocol

Party Protocol

435.06 USDC • 2 total findings • Code4rena • klau5

#16

high

Single host can unfairly skip veto period for proposal that does not have full host support

medium

PartyGovernanceNFT.sol#mint - User can delegate another user funds to themselves and brick them from changing the delegation

LooksRare

LooksRare

1,078.43 USDC • 2 total findings • Sherlock • klaus

#4

high

_killWoundedAgents

medium

fulfillRandomWords

Open Dollar

Open Dollar

2,455.71 USDC • 4 total findings • Code4rena • klau5

#4

medium

`transferSAFEOwnership()` does not fully transfer ownership

medium

Unable to retrieve price information with CamelotRelayer contract

medium

ODSafeManager.enterSystem - Transfer wrong amount of collateral, debt

medium

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

Brahma

Brahma

1,396.18 USDC • 1 total finding • Code4rena • klau5

#4

medium

Module transactions will always fail because incompatible with Safe 1.5.0

Sep '23

Maia DAO - Ulysses

Maia DAO - Ulysses

243.44 USDC • 1 total finding • Code4rena • klau5

#30

high

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

Centrifuge

Centrifuge

12.79 USDC • Code4rena • klau5

#34

Ondo Finance

Ondo Finance

7.08 USDC • Code4rena • klau5

#32

Aug '23

Cooler Update

Cooler Update

196.44 USDC • 2 total findings • Sherlock • klaus

#10

high

At claimDefaulted, the lender may not receive the token because the Unclaimed token is not processed

high

Should be able to reset callback setting in transferOwnership function

Dopex

Dopex

19.18 USDC • 1 total finding • Code4rena • klau5

#108

high

The settle feature will be broken if attacker arbitrarily transfer collateral tokens to the PerpetualAtlanticVaultLP

Sparkn

Sparkn

0.99 USDC • 1 total finding • CodeHawks • klaus

#86

low

Owner can incorrectly pull funds from contests not yet expired

veRWA

veRWA

9.82 USDC • Code4rena • klau5

#52

Jul '23

Foundry DeFi Stablecoin CodeHawks Audit Contest

Foundry DeFi Stablecoin CodeHawks Audit Contest

62.42 USDC • 4 total findings • CodeHawks • klaus

#36

medium

Chainlink oracle will return the wrong price if the aggregator hits `minAnswer`

medium

Anyone can burn **DecentralizedStableCoin** tokens with `burnFrom` function

medium

Double-spending vulnerability leads to a disruption of the DSC token

low

Precision loss when calculating the health factor

CodeHawks Escrow Contract - Competition Details

CodeHawks Escrow Contract - Competition Details

0.00 USDC • 1 total finding • CodeHawks • klaus

#96

low

Constructor of `Escrow` should make sure that `buyer`, `seller`, `arbiter` are different from each other.

Lens Protocol V2

Lens Protocol V2

3,458.78 USDC • 1 total finding • Code4rena • klau5

#5

medium

Blocked follower can keep follow with `batchMigrateFollows`

Nouns DAO

Nouns DAO

114.28 USDC • Code4rena • klau5

#15