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

MrPotatoMagic

Security Researcher

Security Researcher

Contact Me

High

49

Total

Medium

50

Total

$61.60K

Total Earnings

#145 All Time

31x

Payouts

gold

1x

1st Places

silver

2x

2nd Places

bronze

1x

3rd Places

All

Sherlock

Code4rena

Immunefi

Dec '24

Lambo.win

Lambo.win

81.07 USDC • 3 total findings • Code4rena • MrPotatoMagic

#26

high

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

medium

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

medium

LP for v3 pool of underlying tokens with decimals != 18 would have incorrect NFT metadata

Oct '24

Ramses Exchange

Ramses Exchange

16,033.68 USDC • 1 total finding • Code4rena • MrPotatoMagic

silver

medium

Inflated `GaugeV3` rewards when period is skipped

Aug '24

Chakra

Chakra

50.68 USDT • 2 total findings • Code4rena • MrPotatoMagic

#35

high

Malicious actors can manipulate the `cross_chain_callback` callback

high

There is no refund mechanism in `ChakraSettlement.processCrossChainCallback` or `ChakraSettlementHandler.receive_cross_chain_callback` function

Phi

Phi

13,796.08 USDC • 11 total findings • Code4rena • MrPotatoMagic

gold

high

Unrestricted Changes to Token Settings Allow Artists to Alter Critical Features

high

Reentrancy Vulnerability Allows Bypass of Cooldown, Leading to Unfair Reward Extraction Through Flash Loan

high

Exposed `_removeCredIdPerAddress` & `_addCredIdPerAddress` allows anyone to cause issues to current holders as well as upcoming ones

high

Forced endTime extension in updateArtSettings() allows attacker to mint more tokens

medium

`PhiFactory:claim` Potentially Causing Loss of Funds If `mintFee` Changed Beforehand

medium

Refunds sent to incorrect addresses in certain cases

medium

Incorrect Fee Handling Prevents Protocol from Updating Fees

medium

Contract `PhiNFT1155` can't be paused

medium

Attacker can DOS user from selling shares of a credId

medium

PhiNFT1155 contracts continue sending fees/royalties to old protocol destination address

medium

Lack of data validation when users are claiming their art allows malicious user to bypass signature/merkle hash to provide unapproved `ref_`, `artId_` and `imageURI`

Winnables Raffles

Winnables Raffles

0.76 USDC • 1 total finding • Sherlock • MrPotatoMagic

#38

medium

Admin cannot remove an existing role in case of address compromise

Axelar Network

Axelar Network

0 USDC • Code4rena • MrPotatoMagic

#9

Jul '24

Munchables

Munchables

706.18 USDC • 9 total findings • Code4rena • MrPotatoMagic

bronze

high

Malicious User can call `lockOnBehalf` repeatedly extend a users `unlockTime`, removing their ability to withdraw previously locked tokens

high

Invalid validation allows users to unlock early

high

Single plot can be occupied by multiple renters

high

in `farmPlots()` an underflow in edge case leading to freeze of funds (NFT)

high

[H-01] Miscalculation in `_farmPlots` function could lead to a user unable to unstake all NFTs

high

Invalid validation in _farmPlots function allowing a malicious user repeated farming without locked funds

medium

When `LockManager.lockOnBehalf` is called from `MigrationManager`, the user's `reminder` will be set to 0, resulting in fewer received `MunchableNFTs`

medium

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

medium

Users can farm on zero-tax land if the landlord locked tokens before the LandManager deployment

Jun '24

Vultisig

Vultisig

598.65 USDC • 2 total findings • Code4rena • MrPotatoMagic

#8

high

Vultisig whitelisting can be bypassed by anyone

medium

Vultisig should be burnable

May '24

Munchables

Munchables

516 USDC • 9 total findings • Code4rena • MrPotatoMagic

#6

high

Malicious User can call `lockOnBehalf` repeatedly extend a users `unlockTime`, removing their ability to withdraw previously locked tokens

high

Invalid validation allows users to unlock early

high

Single plot can be occupied by multiple renters

high

in `farmPlots()` an underflow in edge case leading to freeze of funds (NFT)

high

[H-01] Miscalculation in `_farmPlots` function could lead to a user unable to unstake all NFTs

high

Invalid validation in _farmPlots function allowing a malicious user repeated farming without locked funds

medium

When `LockManager.lockOnBehalf` is called from `MigrationManager`, the user's `reminder` will be set to 0, resulting in fewer received `MunchableNFTs`

medium

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

medium

Users can farm on zero-tax land if the landlord locked tokens before the LandManager deployment

Apr '24

NOYA

NOYA

1,002.1 USDC + NOYA stars • 10 total findings • Code4rena • MrPotatoMagic

#13

high

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

high

`NoyaValueOracle.getValue` returns an incorrect price when a multi-token route is used

high

Base tokens like USDT, USDC having different decimals on different chains can have their TVL updated incorrectly

medium

`AccountingManager#totalWithdrawnAmount` should reflect tokens actually transferred to users, instead of expected transfers

medium

The modifier `onlyExistingRoute` works incorrectly

medium

AccountingManager has no correct implementations of the core ERC-4626 functions `deposit`, `mint`, `withdraw` and `redeem`

medium

`Keepers` does not implement EIP712 correctly on multiple occasions

medium

Incorrect modifier condition

medium

Stale price can be used in `getValueFromChainlinkFeed` function

medium

Contract does not earn any boosted position rewards in Maverick Connector

DYAD

DYAD

529.7 USDC • 6 total findings • Code4rena • MrPotatoMagic

#16

high

Attacker can make 0 value deposit() calls to deny user from redeeming or withdrawing collateral

high

Inability to perform partial liquidations allows huge positions to accrue bad debt in the system

high

User can get their Kerosene stuck because of an invalid check on withdraw

medium

`VaultManagerV2.sol::burnDyad` function is missing an `isDNftOwner` modifier, allowing a user to burn another user's minted DYAD

medium

Attacker can frontrun to prevent vaults from being removed from the dNFT owner's position

medium

No incentive to liquidate small positions could result in protocol going underwater

Mar '24

Taiko

Taiko

7,230.36 USDC • 4 total findings • Code4rena • MrPotatoMagic

#5

high

Taiko L1 - Proposer can maliciously cause loss of funds by forcing someone else to pay prover's fee

high

Users will never be able to withdraw their claimed airdrop fully in ERC20Airdrop2.sol contract

medium

Incorrect __Essential_init() function is used in TaikoToken making snapshooter devoid of calling snapshot()

medium

retryMessage unable to handle edge cases.

Feb '24

Audit Comp | Puffer Finance

Audit Comp | Puffer Finance

1,596 USDC • 4 total findings • Immunefi • MrPotatoMagic

#12

medium

Finding not yet public.

low

Finding not yet public.

low

Finding not yet public.

low

Finding not yet public.

Althea Liquid Infrastructure

Althea Liquid Infrastructure

391.06 USDC • 1 total finding • Code4rena • MrPotatoMagic

#7

high

Holders array can be manipulated by transferring or burning with amount 0, stealing rewards or bricking certain functions

AI Arena

AI Arena

489.37 USDC • 12 total findings • Code4rena • MrPotatoMagic

#9

high

Malicious user can stake an amount which causes zero curStakeAtRisk on a loss but equal rewardPoints to a fair user on a win

high

A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fighters

high

Since you can reroll with a different fighterType than the NFT you own, you can reroll bypassing maxRerollsAllowed and reroll attributes based on a different fighterType

high

Players have complete freedom to customize the fighter NFT when calling `redeemMintPass` and can redeem fighters of types Dendroid and with rare attributes

high

Player can mint more fighter NFTs during claim of rewards by leveraging reentrancy on the `claimRewards() function `

high

Fighters cannot be minted after the initial generation due to uninitialized `numElements` mapping

high

Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`

high

FighterFarm:: reroll won't work for nft id greator than 255 due to input limited to uint8

medium

Constraints of dailyAllowanceReplenishTime and allowanceRemaining during mint() can be bypassed by using alias accounts & safeTransferFrom()

medium

Burner role can not be revoked

medium

DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passed.

medium

Fighter created by mintFromMergingPool can have arbitrary weight and element

Jan '24

Decent

Decent

954.05 USDC • 5 total findings • Code4rena • MrPotatoMagic

#9

high

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

high

Users will lose their cross-chain transaction if the destination router do not have enough WETH reserves.

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

medium

Missing access control on UTB:receiveFromBridge allows UTB swaps to be executed without spending bridge fees while bypassing fee/swap instruction signature verification

Curves

Curves

257.43 USDC • 5 total findings • Code4rena • MrPotatoMagic

#17

high

Attack to make ````CurveSubject```` to be a ````HoneyPot````

high

Unauthorized Access to setCurves Function

medium

Protocol and referral fee would be permanently stuck in the Curves contract when selling a token

medium

Curves::_buyCurvesToken(), Excess of Eth received is not refunded back to the user.

medium

Withdrawing with amount = 0 will forcefully set name and symbol to default and disable some functions for token subject

Dec '23

Revolution Protocol

Revolution Protocol

1,577.15 USDC • 4 total findings • Code4rena • MrPotatoMagic

#4

high

Incorrect amounts of ETH are transferred to the DAO treasury in `ERC20TokenEmitter::buyToken()`, causing a value leak in every transaction

medium

MaxHeap.sol: Already extracted tokenId may be extracted again.

medium

positionMapping for last element in heap is not updated when extracting max element

medium

Bidder can use donations to get VerbsToken from auction that already ended.

Nov '23

Canto Application Specific Dollars and Bonding Curves for 1155s

Canto Application Specific Dollars and Bonding Curves for 1155s

278.33 USDC • Code4rena • MrPotatoMagic

#11

Oct '23

NextGen

NextGen

1,589.4 USDC • 4 total findings • Code4rena • MrPotatoMagic

#7

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

medium

Bidder Funds Can Become Unrecoverable Due to 1 second Overlap in `participateToAuction()` and `claimAuction()`

Open Dollar

Open Dollar

2,583.24 USDC • 4 total findings • Code4rena • MrPotatoMagic

silver

medium

Approved address can approve other addresses for an owner's safe

medium

SafeHandler contract doesn't have any method to call to `ODSafeManager.allowHandler()`, lead to DOS in some function

medium

Old permissions in handlerCan mapping are still attached to the safeHandler of a transferred safe

medium

`ODSafeManager#allowSAFE()` cannot be executed either by the proxy contract or any other address.

ENS

ENS

99.29 USDC • Code4rena • MrPotatoMagic

#9

Sep '23

Maia DAO - Ulysses

Maia DAO - Ulysses

5,981.43 USDC • 2 total findings • Code4rena • MrPotatoMagic

#6

high

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

medium

No deposit cross-chain calls/communication can still originate from a removed branch bridge agent

Aug '23

Chainlink Staking v0.2

Chainlink Staking v0.2

2,024.58 USDC • Code4rena • MrPotatoMagic

#23

Shell Protocol

Shell Protocol

315.93 USDC • Code4rena • MrPotatoMagic

#11

veRWA

veRWA

388.96 USDC • 2 total findings • Code4rena • MrPotatoMagic

#9

high

Users may be forced into long lock times to be able to undelegate back to themselves.

high

Delegated votes are locked when owner lock is expired

Tangible Caviar

Tangible Caviar

14.33 USDC • Code4rena • MrPotatoMagic

#77

Jul '23

Axelar Network

Axelar Network

188.68 USDC • Code4rena • MrPotatoMagic

#18

Chainlink Cross-Chain Contract Administration: Multi-signature Contract, Timelock and Call Proxies

Chainlink Cross-Chain Contract Administration: Multi-signature Contract, Timelock and Call Proxies

1,132.09 USDC • Code4rena • MrPotatoMagic

#4

Jun '23

Lybra Finance

Lybra Finance

550.53 USDC • 1 total finding • Code4rena • MrPotatoMagic

#20

medium

Incorrect function call in LybraRETHVault's getAssetPrice

May '23

Chainlink Cross-Chain Services: CCIP and ARM Network

Chainlink Cross-Chain Services: CCIP and ARM Network

642.75 USDC • Code4rena • MrPotatoMagic

#31