https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/83d70ee5-9631-4e8f-841d-5e111ca99c2a.png

tinnohofficial

Security Researcher

Software developer and cybersecurity practitioner.

Contact Me

High

25

Total

Medium

1

Solo

25

Total

$10.99K

Total Earnings

#549 All Time

11x

Payouts

bronze

1x

3rd Places

regular

4x

Top 10

regular

7x

Top 25

All

Sherlock

Cantina

CodeHawks

Apr '25

mighty-contracts

mighty-contracts

1,284.33 USDC • 6 total findings • Cantina • tinnohofficial

#4

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

medium

Finding not yet public.

Mar '25

colorpool-chromia

colorpool-chromia

726.81 USDC • 3 total findings • Cantina • tinnohofficial

#6

high

Finding not yet public.

medium

Finding not yet public.

medium

Finding not yet public.

Feb '25

Core Contracts

Core Contracts

277.04 usdc • 38 total findings • CodeHawks • tinnohofficial

#79

high

Incorrect decimal handling in `Auction::buy()` leads to massive overpayment for ZENO tokens

high

RAACNFT mint function receives funds to address(this) but has no way of withdrawing them

high

Multiple issues from unnecessary balance increase calculation in DebtToken.mint

high

Reward manipulation vulnerability in StabilityPool

high

Incorrect Reward Claim Logic in FeeCollector::claimRewards Causes Denial of Service

high

Users can borrow more assets than they have deposited as collateral

high

NFTs Get Permanently Locked in Stability Pool After Liquidation

high

RToken is Not Interest Bearing Due to Broken Liquidity Index Calculation

high

Incorrect Debt Scaling Leading to Protocol Solvency Risk

high

Ownership Parameter Mismatch in LendingPool’s Vault Withdrawal Logic

high

Untracked Direct Fee Transfers from RAACToken to FeeCollector Break Fee Distribution System

high

Voting Power Snapshot Missing

medium

Incorrect accounting in `veRAACToken::emergencyWithdraw` and `veRAACToken::withdraw` due to missing `totalLocked` update

medium

Incorrect utilization rate forces protocol to issue maximum rewards indefinitely

medium

Incorrect DebtToken totalSupply Scaling Breaks Interest Rate Calculations

medium

RToken.transferFrom() Does Not Scale User Balances Due to Stale Liquidity Index

medium

LendingPool deposits do not work with CurveVault due to lack of funds

medium

There is no logic checking for RAACNFT price staleness before minting it

medium

`RToken::calculateDustAmount` are incorrectly calculated, leading to not be able to transfer the accrued dust amount

medium

Concurrent Oracle Fulfillments Overwrite House IDs, which leads to Incorrect Pricing

medium

Treasury Contract Deposit Function Can Be Frontrun To Deny Protocol Operations

medium

Emergency revoke in RAACReleaseOrchestrator will freeze revoked RAAC tokens in orchestrator

medium

[L-1] Inaccurate boost calculations in `veRAACToken` due to wrong input parameter

medium

Failure to update `lastClaimTime` mapping when users claim rewards in FeeCollector Causes Time-Based Reward Calculation Issues

medium

`RAACReleaseOrchestrator::emergencyRevoke()` fails to update `categoryUsed`, leading to token lockup and incorrect accounting

medium

RAACToken burns less tokens than expected when feeCollector is unset

medium

getNormalizedDebt will return a wrong Amount when Timedelta is 0.

medium

Valid new periods are incorrectly rejected due to incorrect tracking of `totalDuration`

low

`mint` function in RToken contract doesn't return the correct expected values, leading to emission of ReserveLibrary `Deposit` event and LendingPool `Deposit` event with incorrect values.

low

Limited veRaac Token Supply Triggers DoS, Hampering Proper Governance Participation.

low

Emergency Timelock Bypass: No Enforced 1-Day Delay for Emergency Actions

low

Unauthorized Vote Casting Vulnerability

low

Impossible to rescue funds from `RToken` contract

low

Missing Pause Functionality in veRAACToken Contract Can Be Abused When Emergency Withdrawal Mechanism Is Activated

low

`FeeCollector::updateFeeType` wrong fee share validation leads to impossible update for some fee types

low

Incorrect Timestamp Tracking in RAACHousePrice contract

low

Incorrect Mint() Event Emission in RToken#mint()

low

Treasury's allocated funds not tracked during withdrawals leads to accounting issue where recepient can receive more than allocated funds.

Jan '25

Plaza Finance

Plaza Finance

71.48 USDC • 4 total findings • Sherlock • tinnohofficial

#39

high

Incorrect Redemption Rate Applied to Leverage Tokens Due to Unconstrained Market Rate Check

high

Incorrect period used in `transferReserveToAuction` leads to complete failure of action system and loss of bidders' funds.

medium

USDC blacklist will permanently DOS the Auction contract affecting all users

medium

Users will receive incorrect redemption amounts due to decimal normalization error in market rate calculation

Ignite

Ignite

15.29 usdc • CodeHawks • tinnohofficial

#21

Dec '24

QuantAMM

QuantAMM

1,460.01 op • 4 total findings • CodeHawks • tinnohofficial

#10

high

Fee Evasion via LP Token Transfer Resets Deposit Value

medium

quantAMMSwapFeeTake used for both getQuantAMMSwapFeeTake and getQuantAMMUpliftFeeTake.

medium

Wrong Fee Take Function Called in UpliftOnlyExample Causing Incorrect Fee Distribution

low

Inconsistent timestamp storage when the LPNFT is transferred.

Sep '24

Liquid Staking

Liquid Staking

154.80 USDC • 1 total finding • CodeHawks • tinnohofficial

#30

low

Upgrade Initialization Logic Will Never Execute Due to Incorrect Initializer Usage in CommunityVCS

Staking

Staking

6,905.56 USDC • CodeHawks • tinnohofficial

bronze
Boost Core Incentive Protocol

Boost Core Incentive Protocol

74.73 USDC • 1 total finding • Sherlock • tinnohofficial

#19

medium

Insecure randomness leads to manipulation of the raffle winner in ERC20Incentive

Aug '24

Cork Protocol

Cork Protocol

3.41 USDC • 1 total finding • Sherlock • tinnohofficial

#17

medium

Incorrect implementation of the LVDepositNotPaused modifier

Tadle

Tadle

21.49 USDC • 6 total findings • CodeHawks • tinnohofficial

#83

high

Incorrect set up and logic of `referralInfoMap` in `SystemConfig::updateReferrerInfo` function

high

Native token withdrawal fails until manually approved

high

Malicious user can drain protocol by bypassing `ASK` offer abortion validation in `Turbo` mode

high

Token withdrawal fails until someone manually approves spending

low

[Low-01] Missing Access Control in `CapitalPool::approve()` Function Allows any User to call it to set Allowance Amount `TokenContract` to `type(uint256).max`.

low

3 `OfferStatus` are never used, and code seems to have contradicting intentions