https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/81a8a905-dcaa-48aa-8f4f-d8931695f561.jpg

serial-coder

Security Researcher

Lead Smart Contract Auditor | 🚨 DM for Private Audits 🚨

Contact Me

High

24

Total

Medium

33

Total

$34.41K

Total Earnings

#241 All Time

21x

Payouts

gold

1x

1st Places

bronze

1x

3rd Places

regular

9x

Top 10

All

Sherlock

Code4rena

Cantina

CodeHawks

Feb '25

size-solidity

size-solidity

4,599.78 USDC • 2 total findings • Cantina • serial-coder

gold

medium

Finding not yet public.

medium

Finding not yet public.

Jan '25

Liquid Ron

Liquid Ron

0.03 USDC • 2 total findings • Code4rena • serial-coder

#10

high

The calculation of `totalAssets()` could be wrong if `operatorFeeAmount` > 0, this can cause potential loss for the new depositors

medium

Incorrect Logic in onlyOperator Modifier Leading to Denial-of-Service for Authorized Operators Across Critical Functions

Aave DIVA Wrapper

Aave DIVA Wrapper

0.04 usdc • 1 total finding • CodeHawks • serialcoder

#9

low

Incorrect sequence of AaveDIVAWrapper constructor parameters

Dec '24

Chainlink Payment Abstraction

Chainlink Payment Abstraction

1,987.07 USDC • Code4rena • serial-coder

bronze

Aug '24

Sentiment V2

Sentiment V2

674.84 USDC • 2 total findings • Sherlock • serial-coder

#16

high

A liquidator can seize more or even all collateral assets from all liquidatable positions

medium

The protocol allows borrowing small positions that can create bad debt

Jun '24

Size

Size

7,206.04 USDC • 3 total findings • Code4rena • serial-coder

#7

high

Users won't liquidate positions because the logic used to calculate the liquidator's profit is incorrect

medium

Fragmentation fee is not taken if user compensates with newly created position

medium

Inadequate checks to confirm the correct status of the sequecnce/sequecncerUptimeFeed in `PriceFeed.getPrice()` contract.

May '24

Sophon Farming Contracts

Sophon Farming Contracts

16.89 USDC • 1 total finding • Sherlock • serial-coder

#5

medium

Updating the `startBlock` state variable without affecting existing pools leads to incorrect points/rewards distributions

Mar '24

DittoETH

DittoETH

4,573.16 USDC • 4 total findings • Code4rena • serial-coder

#5

high

Flawed if check causes inaccurate tracking of the protocol's ercDebt and collateral

high

Users can mint DUSD with less collateral than required which gives them free DUSD and may open a liquidatable position

medium

oracleCircuitBreaker: Not checking if price information of asset is stale

medium

The `shortOrder` verification bug on the `RedemptionFacet::proposeRedemption()` allows an attacker to leave a small `shortOrder` on the order book, leading to the protocol's bad debt

Feb '24

Wise Lending

Wise Lending

10,899.43 USDC • 4 total findings • Code4rena • serial-coder

#5

high

Incorrect bad debt accounting can lead to a state where the `claimFeesBeneficial` function is permanently bricked and no new incentives can be distributed, potentially locking pending and future protocol fees in the `FeeManager` contract

medium

Unchecked return value bug on `TransferHelper::_safeTransferFrom()`

medium

Off-by-one bug prevents the `_compareMinMax()` from detecting Chainlink aggregators' circuit-breaking events

medium

The protocol allows borrowing small positions that can create bad debt

Jan '24

MorpheusAI

MorpheusAI

13.07 USDC • 1 total finding • CodeHawks • serialcoder

#23

low

The `editPool()` lacks a sanity check on the `payoutStart` parameter leading to incorrect or unfair reward distributions

reNFT

reNFT

541.72 USDC • Code4rena • serial-coder

#18

Dec '23

Ethereum Credit Guild

Ethereum Credit Guild

418.78 USDC • 4 total findings • Code4rena • serial-coder

#32

high

Users staking via the `SurplusGuildMinter` can be immediately slashed when staking into a gauge that had previously incurred a loss

medium

Re-triggering the `canOffboard[term]` flag to bypass the DAO vote of the lending term offboarding mechanism

medium

Replay attack to suddenly offboard the re-onboarded lending term

medium

SurplusGuildMinter.getReward() is susceptible to DoS due to unbounded loop

Oct '23

The Wildcat Protocol

The Wildcat Protocol

134.84 USDC • 4 total findings • Code4rena • serial-coder

#44

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

Borrower can drain all funds of a sanctioned lender

medium

Function WildcatMarketController.setAnnualInterestBips allows for values outside the factory range

Sep '23

DittoETH

DittoETH

2,281.22 USDC • 10 total findings • CodeHawks • serialcoder

#8

high

Users Lose Funds and Market Functionality Breaks When Market Reachs 65k Id

high

Flag can be overriden by another user

medium

Using a cached price in the critical shutdownMarket()

medium

Primary short liquidation can not be completed in the last hour of the liquidation timeline

medium

Secondary short liquidation reverts due to arithmetic underflow in volatile market conditions

medium

Lack of essential stale check in oracleCircuitBreaker()

medium

Decreasing and increasing a short's collateral potentially uses an outdated asset price to calculate the collateral ratio

low

Unhandled chainlink revert in case its multisigs block access to price feeds

low

Use of hardcoded price deviation in baseOracleCircuitBreaker()

low

Emitting incorrect event value

Aug '23

Sparkn

Sparkn

278.56 USDC • 5 total findings • CodeHawks • serialcoder

#13

high

The same signature can be used in different `distribution` implementation causing that the caller who owns the signature, can distribute on unauthorized implementations

medium

Blacklisted STADIUM_ADDRESS address cause fund stuck in the contract forever

low

Owner can incorrectly pull funds from contests not yet expired

low

Lack of checking the existence of the Proxy contract

low

Insufficient validation leads to locking up prize tokens forever

Jul '23

Beedle - Oracle free perpetual lending

Beedle - Oracle free perpetual lending

233.87 USDC • 16 total findings • CodeHawks • serialcoder

#15

high

Sandwich attack to steal all ERC-20 tokens in the Fees contract

high

During refinance() new Pool balance debt is subtracted twice

high

[H-04] Lender#buyLoan - Malicious user could take over a loan for free without having a pool because of wrong access control

high

Using forged/fake lending pools to steal any loan opening for auction

high

Stealing any loan opening for auction through others' lending pool

high

Forcing a borrower to pay a huge debt via the giveLoan()

medium

Precision loss allows users to giveLoans to pools with less collateral then required

medium

No expiration deadline leads to losing a lot of funds

medium

Rounding error leads to borrowing loans without paying interest

low

Zero address leads to transaction reverts

low

Wrong Amount of Loan Interest is Calculated

low

Emitting incorrect event parameters

low

Lenders could receive interest less than expected

gas

Unnecessary If condition in update() of Staking.sol

gas

Caching the pool variable for gas savings

gas

Lack of updating the auctionLength parameter in the giveLoan() and buyLoan()

Foundry DeFi Stablecoin CodeHawks Audit Contest

Foundry DeFi Stablecoin CodeHawks Audit Contest

77.09 USDC • 9 total findings • CodeHawks • serialcoder

#21

high

Theft of collateral tokens with fewer than 18 decimals

medium

staleCheckLatestRoundData() does not check the status of the Arbitrum sequencer in Chainlink feeds.

medium

DSC protocol can consume stale price data or cannot operate on some EVM chains

medium

Chainlink oracle will return the wrong price if the aggregator hits `minAnswer`

medium

All of the USD pair price feeds doesn't have 8 decimals

medium

Double-spending vulnerability leads to a disruption of the DSC token

medium

Lack of fallbacks for price feed oracle

low

Improving the burnDsc() to allow users to mitigate their liquidation's impact

low

Precision loss when calculating the health factor

CodeHawks Escrow Contract - Competition Details

CodeHawks Escrow Contract - Competition Details

97.92 USDC • 2 total findings • CodeHawks • serialcoder

#36

medium

[H-01] Lack of emergency withdraw function when no arbiter is set

gas

The computeEscrowAddress() can return an incorrect predicted address

PoolTogether

PoolTogether

42.34 USDC • 2 total findings • Code4rena • serial-coder

#58

high

`Vault.mintYieldFee` FUNCTION CAN BE CALLED BY ANYONE TO MINT `Vault Shares` TO ANY RECIPIENT ADDRESS

medium

Unintended or Malicious Use of Prize Winners' Hooks

Jan '23

Cooler

Cooler

221.67 USDC • 2 total findings • Sherlock • serial-coder

#17

high

Stealing Borrowers' Collateral Assets And Lenders' Debt Assets

high

Loss Of Borrowers' Collateral Assets And Lenders' Debt Assets During Loan Repayment

Oct '22

Blur Exchange contest

Blur Exchange contest

114.82 USDC • 1 total finding • Code4rena • serial-coder

#20

high

StandardPolicyERC1155.sol returns amount == 1 instead of amount == order.amount