https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/0e278139-89f7-4fe5-83bf-89d96adef609.jpg

peakbolt

Security Researcher

Smart Contract Security Researcher || hunting bugs on @code4rena @sherlockdefi @immunefi || 10+ years of experience in security dev

Contact Me

High

27

Total

Medium

45

Total

$60.31K

Total Earnings

#160 All Time

16x

Payouts

silver

3x

2nd Places

regular

9x

Top 10

regular

13x

Top 25

All

Sherlock

Code4rena

Oct '23

ENS

ENS

1,779.62 USDC • 1 total finding • Code4rena • peakbolt

#4

medium

Some tokens enable the direct draining of all approved `ERC20Votes` tokens

Sep '23

Maia DAO - Ulysses

Maia DAO - Ulysses

852.82 USDC • 3 total findings • Code4rena • peakbolt

#18

high

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

medium

Message channels can be blocked resulting in DoS

medium

`ArbitrumBranchBridgeAgent::_performFallbackCall` Function Does Not Refund Users Their Excess Native Gas Deposit

Aug '23

Dopex

Dopex

10,393.3 USDC • 14 total findings • Code4rena • peakbolt

silver

high

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

high

Put settlement can be anticipated and lead to user losses and bonding DoS

high

Improper precision of strike price calculation can result in broken protocol

high

The peg stability module can be compromised by forcing lowerDepeg to revert.

high

Users can get immediate profit when deposit and redeem in `PerpetualAtlanticVaultLP`

high

`UniV3LiquidityAMO::recoverERC721` will cause `ERC721` tokens to be permanently locked in `rdpxV2Core`

medium

Inaccurate swap amount calculation in ReLP leads to stuck tokens and lost liquidity

medium

No mechanism to settle out-of-money put options even after Bond receipt token is redeemed.

medium

`sync` function in `RdpxV2Core.sol` should be called in multiple scenarios to account for the balance changes that occurs

medium

Can not withdraw RDPX if WETH withdrawn is zero

medium

User can avoid paying high premium price by correctly timing his bond call

medium

User that delegate eth to `RdpxV2Core` will incur loss if his delegated eth fulfilled by decaying bonds

medium

Change of `fundingDuration` causes "time travel" of `PerpetualAtlanticVault.nextFundingPaymentTimestamp()`

medium

`reLPContract.reLP()` is susceptible to sandwich attack due to user control over `bond()`

Jul '23

Tapioca DAO

Tapioca DAO

17,734.08 USDC • 23 total findings • Code4rena • peakbolt

silver

high

[HF06] `BaseTOFT.sol`: `retrieveFromStrategy` can be used to manipulate other user's positions due to absent approval check.

high

Refund mechanism for failed cross-chain transactions does not work

high

Lack of safety buffer between liquidation threshold and LTV ratio for borrowers to prevent unfair liquidations

high

Incorrect liquidation reward computation causes excess liquidator rewards to be given

high

`_liquidateUser()` should not re-use the same minimum swap amount out for multiple liquidation

high

`twTAP.participate()` can be permanently frozen due to lack of access control on host-chain-only operations

high

`multiHopSellCollateral()` will fail due to call on an invalid market address causing bridged collateral to be locked up

high

Liquidated USDO from BigBang not being burned after liquidation inflates USDO supply and can threaten peg permanently

high

Anybody can buy collateral on behalf of other users without having any allowance using the multiHopBuyCollateral()

medium

BigBang and Singularity should not pause repay() and liquidate()

medium

Incorrect refund address for `BaseTOFT.retrieveFromStrategy()` prevents gas refund to user

medium

Incorrect `eligibleAmount` for `AirdropBroker` Phase 3

medium

`BaseTOFTSTrategyModule.strategyWithdraw()` cross chain call will fail due to missing approvals

medium

`BaseTOFT.sendToYBAndBorrow()` will fail when withdrawing the borrowed asset to another chain

medium

`extractTAP()` function can allow minting an infinite amount in one week, leading to a DoS attack in `emitForWeek()`

medium

TOFT `exerciseOption` fails due to not passing `msg.value` properly

medium

Multihop buying and selling of collateral will fail due to missing gas payment

medium

`exitPositionAndRemoveCollateral()` will fail as `MagnetarV2` does not implement `onERC721Received()`

medium

`MagnetarV2#burst` double counts `msg.value` for `TOFT_WRAP` operation, making the transaction revert unless the user overpays

medium

Some actions inside MagnetarV2.burst will not work because msg.value is used inside delegate call

medium

BigBang Contract: The repay function can be DoSed

medium

mTapiocaOFT can't be rebalanced because the Balancer in tapiocaz-audit calls swapETH() or swap() of the RouterETH but does not forward ether for the message fee

medium

`SGLBorrow::repay` and `BigBang::repay` uses `allowedBorrow` with the asset amount, whereas other functions use it with share of collateral

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

9,354.39 USDC • 7 total findings • Code4rena • peakbolt

#7

high

Lack of return value handing in `ArbitrumBranchBridgeAgent._performCall()` could cause users' deposit to be locked in contract

high

Multiple issues with `retrySettlement()` and `retrieveDeposit()` will cause loss of users' bridging deposits

high

Missing unwrapping of native token in RootBridgeAgent.sweep() causes fees to be stuck

high

Reentrancy attack possible on `RootBridgeAgent.retrySettlement()` with missing access control for `RootBridgeAgentFactory.createBridgeAgent()`

high

Multiple issues with decimal scaling will cause incorrect accounting of hTokens and underlying tokens

medium

DoS of RootBridgeAgent due to missing negation of return values for UniswapV3Pool.swap()

medium

Replenishing gas is missing in `_payFallbackGas` of RootBridgeAgent

Apr '23

JOJO Exchange

JOJO Exchange

2,248.82 USDC • 4 total findings • Sherlock • peakbolt

#7

medium

USDC blocklist will prevent full liquidation of JUSD debt

medium

`FlashLoanLiquidate.JOJOFlashLoan()` does not have slippage protection for liquidator

medium

`maxColBorrowPerAccount` borrow cap for collateral in JUSDBank can be bypassed

medium

Lack of burn mechanism for JUSD repayments causes oversupply of JUSD

Frankencoin

Frankencoin

569.32 USDC • 2 total findings • Code4rena • peakbolt

#16

medium

anchorTime() will not work properly on Optimism due to use of block.number

medium

function `restructureCapTable()` in Equity.sol not functioning as expected

Rubicon v2

Rubicon v2

6.46 USDC • 1 total finding • Code4rena • peakbolt

#107

medium

Incorrect fee handling in Position.sol's Market Buy/Sell functions

Mar '23

Polynomial Protocol contest

Polynomial Protocol contest

9,022.89 USDC • Code4rena • peakbolt

silver

Feb '23

Ethos Reserve contest

Ethos Reserve contest

637.85 USDC • 1 total finding • Code4rena • peakbolt

#21

medium

updateStrategyAllocBPS() can cause loss of ActivePool's collateral during an emergency exit

Jan '23

Popcorn contest

Popcorn contest

1,935.79 USDC • 3 total findings • Code4rena • peakbolt

#7

high

Protocol loses fees because highWaterMark is updated every time someone deposit, withdraw, mint

medium

Owner can collect management fees with a new increased fee for previous time period.

medium

cool down time period is not properly respected for the `harvest` method

Numoen contest

Numoen contest

1,960.28 USDC • 2 total findings • Code4rena • peakbolt

#4

medium

Borrower can lose partial fund during minting of Power Token as excess ETH are not refunded automatically

medium

Fee on transfer tokens will not behave as expected

RabbitHole Quest Protocol contest

RabbitHole Quest Protocol contest

48.11 USDC • 4 total findings • Code4rena • peakbolt

#46

high

Protocol fees can be withdrawn multiple times in `Erc20Quest`

medium

Possible scenario for Signature Replay Attack

medium

Users may not claim Erc1155 rewards when the Quest has ended

medium

User may loose rewards if the receipt is minted after quest end time

Astaria contest

Astaria contest

2,628.65 USDC • 4 total findings • Code4rena • peakbolt

#10

high

Malicious strategist could deny borrowers from repaying loan and force liquidation by setting a extremely high vault fee

high

Malicious refinancing attack could lead to suboptimal NFT liquidation

high

`LienToken`: Lender and liquidator can collude to block auction and seize collateral

medium

Tokens with fee on transfer are not supported in `PublicVault.sol`

Biconomy - Smart Contract Wallet contest

Biconomy - Smart Contract Wallet contest

770.87 USDC • 2 total findings • Code4rena • peakbolt

#14

high

Replay attack (EIP712 signed transaction)

medium

DoS of user operations and loss of user transaction fee due to insufficient gas value submission by malicious bundler

Dec '22

GoGoPool contest

GoGoPool contest

369.1 USDC • 1 total finding • Code4rena • peakbolt

#42

medium

Division by zero error can block RewardsPool#startRewardCycle if all multisig wallet are disabled.