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

thimthor

Security Researcher

Contact Me

High

6

Total

Medium

6

Total

$12.07K

Total Earnings

#578 All Time

5x

Payouts

silver

1x

2nd Places

regular

1x

Top 10

regular

5x

Top 25

All

Sherlock

Code4rena

Nov '25

stNXM by EaseDeFi

stNXM by EaseDeFi

54.03 USDC • 4 total findings • Sherlock • thimthor

#20

high

`removeTokenIdAtIndex` lets owner remove active staking NFTs from accounting to mint underpriced shares and drain the vault

medium

Duplicate tranche entries let owner over-withdraw vault assets

medium

`stNXM::extendDeposit` removes stake from accounting

medium

Uniswap TWAP oracle bricks Morpho market when pool keeps default observation cardinality

Ekubo

Ekubo

11,721.43 USDC • 2 total findings • Code4rena • thimthor

silver

high

Oracle Data Corruption via Storage Key Collision

medium

Router does not check if Exact Out Single Swap was partial leading to unexpected results for the users

Oct '25

Index Fun Order Book

Index Fun Order Book

2.16 USDC • 1 total finding • Sherlock • thimthor

#14

high

Seller pays for buyerFeeRate inside of `MarketController::_executeTokenSwap` instead of buyer

Sep '25

Ammplify

Ammplify

290.19 USDC • 4 total findings • Sherlock • thimthor

#23

high

`FeeWalker::up` will undercalculate `compoundingLiq` by a factor of `key.width()` for all unvisited nodes

high

Inconsistent high tick exclusivity between `WalkerLib::modify` and `PoolWalker::settle` resulting in inconsistent updates and settles

medium

`TimedAdmin` implemented in `Diamond` is broken for `acceptOwnership` resulting in ownership not being able to be transferred

medium

`NFTManager::_generateMetadata` and `NFTManager::_generateSVG` retrieves asset data from NFTManager storage instead of Diamond storage resulting in DoS of `NFTManager::tokenURI` calls

Mar '25

Crestal Network

Crestal Network

0.01 USDC • 1 total finding • Sherlock • thimthor

#12

high

Arbitrary transfer from in public function `Payment::payWithERC20` allows an attacker to steal approved funds