https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/ccd1dc86-522d-4599-b1aa-118cd5d50e20.jpg

ZdravkoHr.

Security Researcher

Operating with the Ethereum Vending Machine

Contact Me

High

26

Total

Medium

1

Solo

35

Total

$9.84K

Total Earnings

#551 All Time

22x

Payouts

gold

1x

1st Places

silver

1x

2nd Places

bronze

1x

3rd Places

All

Sherlock

Code4rena

Cantina

CodeHawks

Feb '25

Rova

Rova

1,178.25 USDC • 1 total finding • Sherlock • ZdravkoHr.

silver

medium

Updating paritcipations breaks the system

Oct '24

mev-commit

mev-commit

152.32 USDC • 3 total findings • Cantina • ZdravkoHr

#33

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

Aug '24

Chakra

Chakra

49.85 USDT • 7 total findings • Code4rena • ZdravkoHr

#36

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

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

A cross-chain message can be initiated with invalid parameters

Jul '24

TraitForge

TraitForge

69.69 USDC • 8 total findings • Code4rena • ZdravkoHr

#50

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

medium

Forger Entities can forge more times than intended

medium

Pause and unpause functions are inaccessible

medium

NFTs mature too slowly under default settings.

medium

Duplicate NFT generation via repeated forging with the same parent

medium

Discrepancy between nfts minted, price of nft when a generation changes & position of `_incrementGeneration()` inside `_mintInternal()` & `_mintNewEntity()`

medium

Incorrect check against golden entropy value in the first two batches

TempleGold

TempleGold

238.86 USDC • 4 total findings • CodeHawks • ZdravkoHr

#15

high

Incompatibility with Multisig Wallets in `TempleGold::send` Function

medium

Not upadting `_totalAuctionTokenAllocation` when removing last auction config at cooldown leads to wrong accounting of `_totalAuctionTokenAllocation` and permanent lock of auction tokens

low

Incosistent message generation in TempleTeleporter.quote() and TempleTeleporter.teleport() results in inaccurate required fee calculation by TempleTeleporter.quote()

low

Incorrect templeGold minting due to unresolved accumulation in `TempleGold::setVestingFactor`

May '24

Midas

Midas

69.66 USDC • 1 total finding • Sherlock • ZdravkoHr.

#5

medium

Incorrect implementation of storage gaps in Midas contracts

Munchables

Munchables

0.01 USDC • 1 total finding • Code4rena • ZdravkoHr

#16

medium

Missing disapproval check in `LockManager.sol::approveUSDPrice` allows simultaneous approval and disapproval of a price proposal

Sophon Farming Contracts

Sophon Farming Contracts

1,329.90 USDC • 2 total findings • Sherlock • ZdravkoHr.

bronze

medium

`accPointsPerShare` can reach a very large value leading to overflows

medium

`SophonFarming.updatePool` doesn't check if the farming has started

Apr '24

NOYA

NOYA

1.38 USDC + NOYA stars • 3 total findings • Code4rena • ZdravkoHr

#116

high

`executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`

medium

Attacker can increase the length of `withdrawQueue` by withdrawing 0 amount of tokens frequently

medium

Incorrect modifier condition

TITLES Publishing Protocol

TITLES Publishing Protocol

326.85 USDC • 5 total findings • Sherlock • ZdravkoHr.

#15

high

Mint referral fee is stolen by the collection referral

medium

`Edition.mintBatch()` will revert for batches with more than one tokens

medium

`Edition.supportsInterface` is not EIP1155 compliant

medium

`Edition._refundExcess()` will not refund user funds

medium

`TitlesGraph` signatures are malleable

Mar '24

Zap Protocol

Zap Protocol

259.20 USDC • 4 total findings • Sherlock • ZdravkoHr.

#5

high

The `Vesting` contract can be drained because of a reentrancy in its `claim` function

medium

Max allocations can be bypassed with multiple addresses because of guaranteed allocations

medium

Claiming native tokens in `Vesting` does not work

medium

Blocklisted investors can still claim USDC in `TokenSale.sol`

Telcoin Platform Audit Update

Telcoin Platform Audit Update

3,070.99 USDC • 2 total findings • Sherlock • ZdravkoHr.

gold

medium

Blacklisting functionality can be completely bypassed by sandwiching the transaction

medium

Not all ERC20 tokens can be bridged because of hardcoded `PREDICATE_ADDRESS`

Jan '24

Decent

Decent

122.24 USDC • 4 total findings • Code4rena • ZdravkoHr

#34

high

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

high

Due to missing checks on minimum gas passed through LayerZero, executions can fail on the destination chain

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

reNFT

reNFT

150.71 USDC • Code4rena • ZdravkoHr

#36

Truflation

Truflation

67.11 USDC • 1 total finding • Sherlock • ZdravkoHr.

#10

medium

Migration done on unaccessable users will result in a loss of their rewards

SYMM IO

SYMM IO

7.18 USDC • Sherlock • ZdravkoHr.

#28

Oct '23

NextGen

NextGen

1,930.27 USDC • 6 total findings • Code4rena • ZdravkoHr

#5

high

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

high

Attacker can reenter to mint all the collection supply

high

Multiple mints can brick any form of `salesOption` 3 mintings

high

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

medium

getPrice `salesOption` 2 can round down to the lower barrier, skipping the last time period

medium

Auction winner can prevent payments via `safeTransferFrom` callback

The Wildcat Protocol

The Wildcat Protocol

671.15 USDC • 5 total findings • Code4rena • ZdravkoHr

#8

high

Lenders can escape the blacklisting of their accounts because they can move their MarketTokens to different accounts and gain the WithdrawOnly Role on any account they want

high

Borrower has no way to update `maxTotalSupply` of `market` or close market.

high

Borrower can drain all funds of a sanctioned lender

medium

Function WildcatMarketController.setAnnualInterestBips allows for values outside the factory range

medium

`create2WithStoredInitCode()` does not revert if contract deployment failed

Sep '23

Maia DAO - Ulysses

Maia DAO - Ulysses

89.28 USDC • 1 total finding • Code4rena • ZdravkoHr

#39

medium

Incorrect source address decoding in RootBridgeAgent and BranchBridgeAgent's _requiresEndpoint breaks LayerZero communication

Allo V2

Allo V2

43.42 USDC • 4 total findings • Sherlock • ZdravkoHr.

#48

high

_hasVoiceCreditsLeft check is not working

medium

Vote inflation due to incorrect accounting

medium

Funds can be trapped in the vault strategy

medium

Distribution not possible in some cases

Aug '23

Tangible Caviar

Tangible Caviar

0.75 USDC • Code4rena • ZdravkoHr

#85

Jul '23

Beedle - Oracle free perpetual lending

Beedle - Oracle free perpetual lending

11.35 USDC • 4 total findings • CodeHawks • ZdravkoHr

#150

high

Sandwich attack to steal all ERC-20 tokens in the Fees contract

low

Zero address leads to transaction reverts

low

Loan can be seized during an auction

gas

Unnecessary If condition in update() of Staking.sol