https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/c5512aea-7898-47d8-a8b6-81b2a4f2d2a3.jpg

PeterSR

Security Researcher

Contact Me

High

44

Total

Medium

2

Solo

45

Total

$20.06K

Total Earnings

#361 All Time

31x

Payouts

silver

3x

2nd Places

regular

14x

Top 10

regular

22x

Top 25

All

Sherlock

Code4rena

Cantina

CodeHawks

Feb '25

THORWallet

THORWallet

0 USDC • 1 total finding • Code4rena • EPSec

#10

medium

Improper Transfer Restrictions on Non-Bridged Tokens Due to Boolean Bridged Token Tracking, Allowing a DoS Attack Vector

Liquidity Management

Liquidity Management

400.87 usdc • 5 total findings • CodeHawks • ChainDefenders

#17

medium

PerpetualVault can be completely bricked

medium

getExecutionGasLimit() reports a lower gas limit due to gasPerSwap miscalculation

medium

Functions that rely on chainlink prices cannot be queried on avalanche due to sequencer uptime check.

low

Incorrect Token Price Validation in KeeperProxy

low

Protocol Recovery Mechanism at Risk Due to Unhandled Token Transfer Failures

Jan '25

Liquid Ron

Liquid Ron

0.03 USDC • 2 total findings • Code4rena • EPSec

#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

IQ AI

IQ AI

551.36 USDC • 1 total finding • Code4rena • EPSec

#10

medium

[M-3] Anyone can deploy a new `FraxSwapPair` with a Low fee incurring losses to the protocol

Part 2

Part 2

3,317.52 usdc • 16 total findings • CodeHawks • ChainDefenders

#6

high

Incorrect Credit Capacity Validation in `VaultRouterBranch.redeem` Enables Locked Collateral Drainage

high

Multiple instances where Vault's `totalAssets()` is not properly scaled to ZAROS precision

high

Underflow when updating credit delegation will result protocol DoS

high

Vaults weth reward is not distributed correctly

high

Unclaimed Rewards Loss Due to Missing Validation in `VaultRouterBranch.stake()`

medium

Fee Recipient Shares Cannot Be Decreased When Total Fee recipients’s share is at Max Limit

medium

Refund Underflow in Swap Refund Logic Leading to Locked Funds

medium

Wrong values of newly added `vault`

medium

Lack of credit capacity update from VaultRouterBranch::deposit causes DOS in CreditDelegationBranch::depositcreditformarket

medium

`checkFeeDistributionNeeded` Will Not Work With Low Decimal Assets

medium

Incorrect weight assignment in Vault::updateVaultAndCreditDelegationWeight leads to overleveraging vault positions and insolvency

medium

No Mechanism to Remove Fee Recipients Can Lead to Failed Reward Distributions

medium

rebalanceVaultsAssets incorrectly accounts vaults' depositedUsdc

low

`initiateSwap` allows users to initiate swap even when the vault is paused

low

Lack of an update of the pool state will cause Initiate Swap to return an incorrect Amountout

low

Total debt used in fulfiling swap actions is wrong because we did not update the vault.

Plaza Finance

Plaza Finance

108.69 USDC • 2 total findings • Sherlock • PeterSR

#36

medium

Auction is using push over pull

medium

If all leverage tokens are redeemed, new ones can't be issued

Ignite

Ignite

346.63 usdc • CodeHawks • ChainDefenders

#11

Dec '24

QuantAMM

QuantAMM

503.46 op • 3 total findings • CodeHawks • ChainDefenders

#21

high

Out-of-Bounds Array Access in `_calculateQuantAMMVariance` with Odd Number of Assets and Vector Lambda

medium

quantAMMSwapFeeTake used for both getQuantAMMSwapFeeTake and getQuantAMMUpliftFeeTake.

medium

`setUpdateWeightRunnerAddress` could break the protocol

Alchemix Transmuter

Alchemix Transmuter

14.98 op • 3 total findings • CodeHawks • ChainDefenders

#24

medium

not adding `claimable` balance to the total assets in `_harvestAndReport` can cause losses.

low

Missing Router Update Mechanism in StrategyMainnet Contract

low

Old router retains token allowance after update

SecondSwap

SecondSwap

763.43 USDC • 5 total findings • Code4rena • EPSec

#8

high

In `transferVesting`, the `grantorVesting.releaseRate` is calculated incorrectly, which leads to the sender being able to unlock more tokens than were initially locked.

medium

MarketPlace Change In Vesting Manager, Leads To Loss Of Previous MarketPlace Listing

medium

Creator of one vesting plan can affect vesting plans created by other users.

medium

`buyFee` And `sellFee` Should Be Known Before Purchase

medium

Incorrect referral fee calculations

Teller Lender Groups Update Audit

Teller Lender Groups Update Audit

331.68 USDC • 1 total finding • Sherlock • PeterSR

#5

medium

Anyone can remove lender and borrowers from MarketRegistry

Oku's New Order Types Contract Contest

Oku's New Order Types Contract Contest

0.27 OP • 2 total findings • Sherlock • PeterSR

#62

high

`generateOrderId` will generate the same id

medium

Pending orders in `OracleLess` can dos the system

Autonomint Colored Dollar V1

Autonomint Colored Dollar V1

93.33 OP • 9 total findings • Sherlock • PeterSR

#24

high

`updateDownsideProtected` could be updated by anyone

high

`withdrawInterest` can't withdraw from the protocol the `totalInterestFromLiquidation`

high

`StrikePrice` should be based on `StrikePercent`

high

Malicious user can benefit from `redeemUSDT`

high

During withdraw in borrow, downsideProtected is not deducted

high

`lastEventTime` is not set during liquidate and is set before `calculateCumulativeRate` in the withdraw

high

`optionsRenewedTimeStamp` is not used during the calculation of downsideProtected

high

`verify` in CDS is vulnerable to replay attack

medium

Multiple problems during `liquidationType2`

Lambo.win

Lambo.win

1,314.64 USDC • 4 total findings • Code4rena • EPSec

#4

high

Minting zero tokens when underlyingToken is not Ether in cashIn()

high

Anyone can call `LamboRebalanceOnUniwap.sol::rebalance()` function with any arbitrary value, leading to rebalancing goal i.e. (1:1 peg) unsuccessful.

medium

Since the cost of launching a new pool is minimal, an attacker can maliciously consume VirtualTokens.

medium

`LamboRebalanceOnUniswap::_getTokenInOut` formula used to compute rebalancing amount is wrong for a UniV3 pool

Nov '24

Telcoin Update #2

Telcoin Update #2

1.19 USDC • Sherlock • PeterSR

#53

Oct '24

Usual V1

Usual V1

3,354.08 USDC • 1 total finding • Sherlock • PeterSR

silver

high

Reward is not updated during `removeOriginalAllocation`

Dria

Dria

3,289.32 USDC • 10 total findings • CodeHawks • ChainDefenders

silver

high

No protection implemented against listing clone NFTs

high

Subtraction in `variance()` will revert due to underflow

high

Potential underflow vulnerability in score range calculation of `LLMOracleCoordinator::finalizeValidation`, leading to DoS.

medium

Platform fees withdrawal will sweep oracle agents earned fees

medium

Request responses and validations can be mocked leading to extraction of fees and/or forcing other generators to lose their fees by making them outliers

medium

Users can list assets with price < 1 ERC20 (ETH, WETH), leading to potential DoS vulnerability.

medium

Update state requests or Purchase requests occurring at the end of the phase will not process

low

Inaccurate best response selection in `LLMOracleCoordinator::getBestResponse`.

low

Sequential Fee Calculations Lead to Lost Platform Revenue Due to Precision Loss

low

Consensus Mechanism Allows Participation Of Voters With Insufficent Stake

Flow

Flow

172.56 USDC • 1 total finding • CodeHawks • ChainDefenders

#8

low

`SablierFlowBase` Lacks `EIP-165` Compliance for `EIP4906` Interface Support

stakeup-bloomv2

stakeup-bloomv2

57.12 USDC • 3 total findings • Cantina • PeterSR

#67

high

Finding not yet public.

high

Finding not yet public.

high

Finding not yet public.

Sep '24

Liquid Staking

Liquid Staking

1,205.88 USDC • 3 total findings • CodeHawks • ChainDefenders

#9

medium

Remove splitter will always revert if there are some rewards left on splitter contract

medium

Removed vaults still remain valid in `OperatorVCS`

medium

[WithdrawalPool.sol] Prevent efficient return of data in getBatchIds() by blocking updateWithdrawalBatchIdCutoff() update of newWithdrawalIdCutoff

Aug '24

Phi

Phi

2,635.65 USDC • 3 total findings • Code4rena • petarP1998

silver

high

Unrestricted Changes to Token Settings Allow Artists to Alter Critical Features

high

Signature replay in `createArt` allows to impersonate artist and steal royalties

medium

Cred creator could stuck funds

Winnables Raffles

Winnables Raffles

6.39 USDC • 3 total findings • Sherlock • PeterSR

#29

high

LockedEth has a stale value

high

Functions can be call by anyone, rewards will be lost

medium

Roles can be invoked, but not revoked

Jul '24

LoopFi

LoopFi

16.42 USDC • 2 total findings • Code4rena • petarP1998

#50

high

Availability of deposit invariant can be bypassed

medium

DOS attack to SwapAction.transferAndSwap() when using an ERC20 permit transferFrom.

LoopFi

LoopFi

70.87 USDC • 2 total findings • Code4rena • EPSec

#41

high

AuraVault inherits AccessControl BUT does not call the _setupRole() function in it's constructor to set the initial roles, this leads to a complete DOS of the important claim function rendering the contract unable to claim rewards

medium

`PendleLPOracle::_fetchAndValidate` uses Chainlink's deprecated `answeredInRound`

Munchables

Munchables

0.39 USDC • 3 total findings • Code4rena • EPSec

#48

high

Invalid validation allows users to unlock early

high

Single plot can be occupied by multiple renters

medium

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

Zaros Part 1

Zaros Part 1

245.25 USDC • 4 total findings • CodeHawks • petersr

#27

high

Inadequate Checking of `isIncreasing` when trader adjusts position size

high

`SettlementBranch._fillOrder` does not guarantee the collateral of a position is enough to pay the future liquidation fee.

high

`LiquidationBranch::checkLiquidatableAccounts()` executes `for` loop with wrong values, causing array out of bounds to be recovered, the program will not work as expected

low

Deleting CollateralTypes from the CollateralLiquidationPriority allows traders to be liquidated for free and getting back their full collateral as if they were not liquidated.

MagicSea - the native DEX on the IotaEVM

MagicSea - the native DEX on the IotaEVM

140.13 USDC • 4 total findings • Sherlock • PeterSR

#23

high

Modify is not working correctly

high

Vote function will never work

high

Loss of funds bribe rewarder

medium

`addToPosition` could be call by anyone

Jun '24

Vultisig

Vultisig

776.21 USDC • 2 total findings • Code4rena • EPSec

#5

high

Vultisig whitelisting can be bypassed by anyone

medium

Vultisig should be burnable

Thorchain

Thorchain

271.5 USDC • 1 total finding • Code4rena • EPSec

#15

medium

Due to the use of `msg.value` in for loop, anyone can drain all the funds from the `THORChain_Router` contract

May '24

Munchables

Munchables

0.01 USDC • 3 total findings • Code4rena • EPSec

#16

high

Invalid validation allows users to unlock early

high

Single plot can be occupied by multiple renters

medium

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

LoopFi

LoopFi

71.11 USDC • 2 total findings • Code4rena • petarP1998

#8

high

Availability of deposit invariant can be bypassed

medium

DOS attack to SwapAction.transferAndSwap() when using an ERC20 permit transferFrom.