Security Researcher
āļø Smart Contracts Auditor š SR1 & Validator @code4rena šµļøāāļø Whitehat @immunefi š§Ŗ Layer 2 Researcher
High
Total
Medium
Total
Total Earnings
#186 All Time
Payouts
1st Places
2nd Places
Top 10
All
Sherlock
Code4rena
Jan '25
Jun '24
high
Adversary can prevent the launch of any ILO pool with enough raised capital at any moment by providing single-sided liquidity
high
Vultisig whitelisting can be bypassed by anyone
high
Most users won't be able to claim their share of Uniswap fees
medium
`claim` function lacks slippage controls for `amount0` and `amount1` returned by `pool.burn` function call
medium
Transfer of ILOPool NFT token to different account allows for users to bypass the pool's `maxCapPerUser` invariant
Feb '24
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
Fighters cannot be minted after the initial generation due to uninitialized `numElements` mapping
high
Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`
medium
Erroneous probability calculation in physical attributes can lead to significant issues
medium
Minter / Staker / Spender roles can never be revoked`..,
medium
Can mint NFT with the desired attributes by reverting transaction
medium
Fighter created by mintFromMergingPool can have arbitrary weight and element
Jan '24
high
When borrowers repay USDS, it is sent to the wrong address, allowing anyone to burn Protocol Owned Liquidity and build bad debt for USDS
high
User can evade `liquidation` by depositing the minimum of tokens and gain time to not be liquidated
medium
No proposal time limit traps sponsors of unpopular proposals
medium
Chainlink price feed uses BTC, not WBTC. In case of depegging, oracles will become easier to manipulate.
medium
Adversary can prevent updating price feed addresses by creating poisonous proposals ending in `_confirm`
medium
DOS of proposals by abusing ballot names without important parameters
medium
Remove Liquidity has missing reserve1 DUST check, which can make reserve1 to be less than DUST
medium
Impossible to change managed wallets with `proposeWallets` after first rejection
Aug '23
Jul '23
medium
Users can make any user follow them via `FollowNFT::tryMigrate()` without their consent
medium
Users can self-follow via `FollowNFT::tryMigrate()` on Lens V2
medium
EIP-712 typehash is incorrect for several functions in `MetaTxLib`
medium
Whitelisted profile creators could accidentally break migration for V1 profiles
medium
Users can unfollow through `FollowNFT` contract when LensHub is paused by governance
May '23
high
`StableOracleDAI` calculates `getPriceUSD` with inverted base/rate tokens for Chainlink price
high
`getPriceUSD` in `StableOracleDai` is miscalculated with wrong decimals from the `priceFeedDAIETH` Chainlink feed
high
The protocol can't rebalance because `USSD::UniV3SwapInput()` will revert as it is missing the `deadline` when creating the `ExactInputParams` for the swap
high
`USSDRebalancer::getOwnValuation()` is easy to manipulate as it doesn't use TWAP for getting the pool price
high
Missing access control on `mintRebalancer` allows unrestricted minting of USSD tokens by anyone affecting pool balance on rebalance
high
`ethOracle` is not defined in `StableOracleDAI` making `getPriceUSD` always revert
medium
`latestRoundData` from Chainlink might return stale or incorrect results
medium
There is no method for redeeming DAI to prevent negative scenarios described in the whitepaper
medium
Collateral tokens will be stuck on the contract and will be unusable after calling `USSD::removeCollateral()`
Apr '23
high
Borrowers can steal lenders principal without providing collateral by frontrunning `lenderAcceptBid` and updating the bid
high
Adversary can modify the commited collateral of any bid at any time leading to lost or locked assets and DOS of the protocol
medium
Marketplaces owners can frontrun `submitBid` to steal collateral by modifying market parameters
Mar '23
Feb '23
Jan '23