Security Researcher
Independent Web3 security researcher Senior Watson at @sherlockdefi DM for audit
High
Total
Medium
Solo
Total
Total Earnings
#202 All Time
Payouts
2nd Places
Top 10
Top 25
All
Sherlock
Code4rena
Jan '24
Oct '23
15,736.55 USDC • 1 total finding • Code4rena • TrungOre
high
Lenders can escape the blacklisting of their accounts because they can move their MarketTokens to different accounts and gain the WithdrawOnly Role on any account they want
high
Borrower has no way to update `maxTotalSupply` of `market` or close market.
high
Borrowers can escape from paying half of the penalty fees by closing the market, and those remaining penalty fees will be covered by the lender who withdraws last
high
Borrower can drain all funds of a sanctioned lender
medium
Function WildcatMarketController.setAnnualInterestBips allows for values outside the factory range
Jul '23
medium
Users must pay a lot of fee to claim rewards when they first stake in the OTLM contracts
medium
Adversary can spam tx to stop accuring the rewards
medium
DOS issue in `OTLM` contract when the `payoutToken` revert on transfer 0 token
medium
optionToken can't be exercise right after function `create` is called
Mar '23
high
Attacker can delist another user's rollover
high
Users can lose their profit when using a rollover mechanism
high
Some rollovers can't be processed due to the function `Carousel.delistInRollover`
high
Users can bypass the fee when depositing in the vault
medium
Copy entire array to memory can lead to DOS in functions `mintDepositInQueue` and `mintRollovers`
medium
Attackers can deposit into vaults after the de-peg event is triggered to steal the funds.
medium
Incorrect treasury address was used in function `VaultFactoryV2.changeTreasury()`
medium
Missing check of oracle's return value
medium
The function `Carousel.mintRollovers()` can be DOS due to the updating `rolloverAccounting[_epochId]`
Feb '23
Findings not publicly available for private contests.
high
Malicious funders can call `refundDeposit()` after a bounty is closed to make bounty doesn't have enough fund to pay for the winners.
high
Missing check whether the nft is refunded before transferring the reward to users
high
Attacker can create a draft tokens and spam deposit to make function `DepositManagerV1.refundDeposit()` out-of-gas.
high
Attacker can fund malicious tokens to make competitor unable to claim their reward.
high
Bounty doesn't work as expected with token revert transferring with amount = 0
high
Missing check of deposit's endTime lead to unable to refundDeposit
medium
`setPayoutScheduleFixed()` can be executed with fewer tiers
medium
After the bounty completely distributed, the remaining tokens can be locked into the contracts
Jan '23
Dec '22
Findings not publicly available for private contests.
Nov '22
Aug '22
Jul '22
high
Proposal which started buyout which fails is able to settle migration as if its buyout succeeded.
high
Fund will be stuck if a buyout is started while there are pending migration proposals
high
Steal NFTs from a Vault, and ETH + Fractional tokens from users.
high
Proposer can `start` a perpetual buyout which can only `end` if the auction succeeds and is not rejected
high
Cash-out from a successful buyout allows an attacker to drain Ether from the `Buyout` contract
medium
Use of `payable.transfer()` may lock user funds
Jun '22
May '22
Apr '22