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

shw

Security Researcher

Contact Me

High

29

Total

Medium

1

Solo

43

Total

$236.33K

Total Earnings

#38 All Time

24x

Payouts

gold

1x

1st Places

silver

6x

2nd Places

bronze

4x

3rd Places

All

Sherlock

Code4rena

Jan '23

Optimism

Optimism

29,882.58 USDC • 1 total finding • Sherlock • shw

#6

medium

Panic when decoding a malformed deposit transaction JSON string

Mar '22

LI.FI contest

LI.FI contest

1,962.85 USDC • 5 total findings • Code4rena • shw

#12

medium

WithdrawFacet's withdraw calls native payable.transfer, which can be unusable for DiamondStorage owner contract

medium

Should prevent users from sending more native tokens in the `startBridgeTokensViaCBridge` function

medium

DexManagerFacet: batchRemoveDex() removes first dex only

medium

cBridge integration fails to send native tokens

medium

Anyone can get swaps for free given certain conditions in `swap`.

Jan '22

Behodler contest

Behodler contest

19,451.47 USDC • 7 total findings • Code4rena • shw

gold

high

Lack of access control on `assertGovernanceApproved` can cause funds to be locked

high

Double transfer in the `transferAndCall` function of `ERC677`

high

LP pricing formula is vulnerable to flashloan manipulation

high

Logic error in `burnFlashGovernanceAsset` can cause locked assets to be stolen

medium

Calling `generateFLNQuote` twice in every block prevents any migration

medium

Lack of access control in the `parameterize` function of proposal contracts

medium

Tolerance is not enforced during a flash governance decision

Aug '21

Gravity Bridge contest

Gravity Bridge contest

6,956 USDC • 2 total findings • Code4rena • shw

#4

medium

Incorrect accounting on transfer-on-fee/deflationary tokens in `Gravity`

medium

Lack of sufficient power check in `updateValset` of `Gravity`

Reality Cards contest

Reality Cards contest

1,731.15 tokens) • 4 total findings • Code4rena • shw

#6

high

Unchecked ERC20 transfers can cause lock up

high

anyone can call function sponsor

medium

Function `foreclosureTimeUser` returns a shorter user's foreclosure time than expected

medium

RCFactory.createMarket() does not enforce _timestamps[1] and _timestamps[2] being larger than _timestamps[0], even though proper functioning requires them to be so

Yield micro contest #1

Yield micro contest #1

5,340.34 USDC • 2 total findings • Code4rena • shw

silver

high

Exchange rates from Compound are assumed with 18 decimals

medium

Use `safeTransfer` instead of `transfer`

Float Capital contest

Float Capital contest

10,049.11 USDC • 3 total findings • Code4rena • shw

silver

high

Users could shift tokens on `Staker` with more than he has staked

high

copy paste error in _batchConfirmOutstandingPendingActions

medium

latestMarket used where marketIndex should have been used

Jul '21

PoolTogether micro contest #1

PoolTogether micro contest #1

992.88 USDC • 2 total findings • Code4rena • shw

#7

medium

Use of safeApprove will always cause approveMax to revert

medium

Inconsistent balance when supplying transfer-on-fee or deflationary tokens

Sherlock contest

Sherlock contest

11,670.34 USDC • 1 total finding • Code4rena • shw

bronze

medium

Incorrect internal balance bookkeeping

Spartan Protocol contest

Spartan Protocol contest

6,414.99 USDC • 6 total findings • Code4rena • shw

#4

high

Flash loan manipulation on `getPoolShareWeight` of `Utils`

high

Pool.sol & Synth.sol: Failing Max Value Allowance

high

Result of transfer / transferFrom not checked

medium

Missleading onlyDAO modifiers

medium

Improper access control of `claimAllForMember` allows anyone to reduce the weight of a member

medium

Dao.sol: Insufficient validation for proposal creation

Connext contest

Connext contest

3,334.78 USDC • 4 total findings • Code4rena • shw

#4

high

activeTransactionBlocks are vulnerable to DDoS attacks

high

Approval is not reset if the call to IFulfillHelper fails

high

Router liquidity on receiving chain can be double-dipped by the user

medium

Signatures use only tx ID instead of entire digest

Wild Credit contest

Wild Credit contest

1,789.88 USDC • 2 total findings • Code4rena • shw

#5

medium

safeTransferFrom in TransferHelper is not safeTransferFrom

medium

Chainlink - Use latestRoundData instead latestAnswer to run more validations

Gro Protocol contest

Gro Protocol contest

18,939 USDC • 3 total findings • Code4rena • shw

#4

high

`Buoy3Pool.safetyCheck` is not precise and has some assumptions

high

sortVaultsByDelta doesn't work as expected

medium

Use of deprecated Chainlink function `latestAnswer`

Jun '21

Tracer contest

Tracer contest

7,250.47 USDC • 3 total findings • Code4rena • shw

#5

high

Wrong trading pricing calculations

medium

No check transferFrom() return value

medium

Use of deprecated Chainlink API

PoolTogether contest

PoolTogether contest

11,074.45 USDC • 4 total findings • Code4rena • shw

bronze

high

User could lose underlying tokens when redeeming from the `IdleYieldSource`

medium

Return values of ERC20 `transfer` and `transferFrom` are unchecked

medium

SafeMath not completely used in yield source contracts

medium

Using `transferFrom` on ERC721 tokens

Reality Cards contest

Reality Cards contest

3,103.21 USDC • 4 total findings • Code4rena • shw

#5

high

Unchecked ERC20 transfers can cause lock up

high

anyone can call function sponsor

medium

Function `foreclosureTimeUser` returns a shorter user's foreclosure time than expected

medium

RCFactory.createMarket() does not enforce _timestamps[1] and _timestamps[2] being larger than _timestamps[0], even though proper functioning requires them to be so

May '21

Yield contest

Yield contest

12,603.62 USDC • 3 total findings • Code4rena • shw

bronze

medium

User can redeem more tokens by artificially increasing the chi accrual

medium

Possible DoS attack when creating `Joins` in `Wand`

medium

Users can avoid paying borrowing interest after the fyToken matures

FairSide contest

FairSide contest

14,513.79 USDC • 7 total findings • Code4rena • shw

silver

high

Locked funds from tokenization are credited twice to user leading to protocol fund loss

high

`Withdrawable.withdraw` does not decrease `pendingWithdrawals`

high

Incorrect implementation of arctan in the contract `FairSideFormula`

high

Incorrect type conversion in the contract `ABC` makes users unable to burn FSD tokens

medium

Incorrect use of _addTribute instead of _addGovernanceTribute

medium

Should check return data from Chainlink aggregators

medium

The variable `fShareRatio` is vulnerable to manipulation by flash minting and burning

Visor contest

Visor contest

13,258.08 USDC • 1 total finding • Code4rena • shw

silver

medium

Unbounded loop in `_removeNft` could lead to a griefing/DOS attack

88mph contest

88mph contest

13,213.64 USDC • 1 total finding • Code4rena • shw

silver

medium

Unchecking the ownership of `mph` in function `distributeFundingRewards` could cause several critical functions to revert

NFTX contest

NFTX contest

8,535.85 USDC • 2 total findings • Code4rena • shw

#4

high

Missing nonReentrant in swapTo

medium

Use safeTransfer/safeTransferFrom consistently instead of transfer/transferFrom

Apr '21

Based Loans contest

Based Loans contest

5,892.87 USDC • 1 total finding • Code4rena • shw

bronze

high

uint(-1) index for not found

Vader Protocol contest

Vader Protocol contest

6,094.54 USDC • 3 total findings • Code4rena • shw

#5

high

Missing access restriction on `lockUnits/unlockUnits`

high

Users may unintendedly remove liquidity under a phishing attack.

medium

Allowing duplicated anchors could cause bias on anchor price.

Maple Finance contest

Maple Finance contest

22,270.74 USDC • 1 total finding • Code4rena • shw

silver

medium

Bypass or reduction on the lockup period of Pool FDTs.