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

Ruhum

Security Researcher

Contact Me

High

101

Total

Medium

149

Total

$126.41K

Total Earnings

#74 All Time

129x

Payouts

silver

3x

2nd Places

bronze

1x

3rd Places

regular

35x

Top 10

All

Sherlock

Code4rena

Jan '25

Initia Rollup Modules

Initia Rollup Modules

2,415 USDC • 1 total finding • Code4rena • Ruhum

#4

medium

Malicious proposer can DOS bridge withdrawals

Dec '24

Autonomint Colored Dollar V1

Autonomint Colored Dollar V1

79.53 OP • 5 total findings • Sherlock • Ruhum

#28

high

Attacker can use outdated API data in CDS.withdraw()

high

BorrowLib.withdraw() ignores the downside protection when transferring the repayment

medium

`CDSLib.withdrawUser()` will underflow if collateral price decreases after liquidation

medium

Treasury will run out of liquidated funds to give to withdrawing users causing withdrawals to fail

medium

user will pay more debt because cumulative rate isn't updated before their deposit

Oct '24

Usual V1

Usual V1

1,000 USDC • Sherlock • Ruhum

#4

Sep '24

Flayer

Flayer

409.62 USDC • 6 total findings • Sherlock • Ruhum

#34

high

Casting the quorum votes to uint88 causes the value to be smaller than expected for high decimal collection tokens.

high

Attacker can cancel an executed shutdown

high

User can't claim royalties for bridged ERC1155 tokens

high

Reserved listing can be cancelled by the owner

medium

User will pay more taxes than they should when they modify an existing listings floor multiple

medium

Moongate uses universal royalty for all the bridged tokens of an ERC721 contract

Aug '24

Phi

Phi

24.98 USDC • 2 total findings • Code4rena • Ruhum

#37

high

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

medium

Incorrect Fee Handling Prevents Protocol from Updating Fees

Jul '24

TraitForge

TraitForge

0.02 USDC • 4 total findings • Code4rena • Ruhum

#87

high

The maximum number of generations is infinite

high

Number of entities in generation can surpass the 10k number

high

Wrong minting logic based on total token count across generations

medium

Discrepancy between nfts minted, price of nft when a generation changes & position of `_incrementGeneration()` inside `_mintInternal()` & `_mintNewEntity()`

LoopFi

LoopFi

26.4 USDC • 1 total finding • Code4rena • Ruhum

#47

high

`Flashlender.sol#flashLoan()` should use `mintProfit()` to mint fees. The current implemetation may lead to locked up WETH in PoolV3.

Velocimeter

Velocimeter

401.64 USDC • 4 total findings • Sherlock • Ruhum

#25

high

Paused gauge will continue to accrue funds that aren't claimable

high

RewardDistributorV2 can use outdated totalSupply in reward calculation

medium

Team receives more emissions than they should each cycle

medium

First depositor in stable pair can DOS pool

Apr '24

Zivoe

Zivoe

50.15 USDC • 4 total findings • Sherlock • Ruhum

#46

high

Attacker can decrease reward rate in ZivoeRewards and ZivoeRewardsVesting

high

ZivoeRewardsVesting's totalSupply breaks when a user's vesting schedule is revoked

high

ZivoeRewardsVesting leaves a user voting power after their token allocation was revoked

medium

OCL_ZVE can fail to provide liquidity to Uni v2 pool

Nov '23

Kelp DAO | rsETH

Kelp DAO | rsETH

40.69 USDC • 2 total findings • Code4rena • Ruhum

#44

high

The price of rsEHT could be manipulated by the first staker

high

Protocol mints less rsETH on deposit than intended

Oct '23

NextGen

NextGen

192.93 USDC • 4 total findings • Code4rena • Ruhum

#43

high

Attacker can drain all ETH from AuctionDemo when block.timestamp == auctionEndTime

high

Attacker can reenter to mint all the collection supply

high

Adversary can block `claimAuction()` due to push-strategy to transfer assets to multiple bidders

medium

Vulnerability in burnToMint function allowing double use of NFT

Jul '23

Tapioca DAO

Tapioca DAO

823.13 USDC • 6 total findings • Code4rena • Ruhum

#51

high

Attacker can prevent rewards from being issued to gauges for a given epoch in TapiocaOptionBroker

medium

`emitForWeek` will lose `emissionForWeek` if one week is skipped

medium

CompoundStrategy `_currentBalance` uses `exchangeRateStored` which is leaks value

medium

all deposit and withdraw function in Convex and Curve nativeLP Strategy, apply slippage on internal pricing; which call real-time on chain price from Curve directly and subject to MEV

medium

tOLP tokens that are not unlocked after they have expired cause the reward distribution to be flawed

medium

[HB09] `emergencyWithdraw` on all strategy contracts useless without a pause mechanism

Jun '23

Symmetrical

Symmetrical

719.31 USDC • 6 total findings • Sherlock • Ruhum

#18

high

Party A can prevent a position from being emergency closed

high

LiquidationFacet allows `setPrice` to be called with outdated prices

medium

`openPosition()` doesn't check the solvency of both parties properly

medium

Liquidator should always be rewarded for liquidations

medium

Liquidating pending quotes doesn't return trading fee to party A

medium

FeeCollector withdrawing funds can prevent pending quotes from being canceled

Unitas Protocol

Unitas Protocol

3,638.31 USDC • 3 total findings • Sherlock • Ruhum

silver

medium

Unitas includes funds inside portfolio when calculating total reserves

medium

Price tolerance can break protocol if USDT depegs.

medium

USD1 is priced as $1 instead of being pegged to USDT

May '23

Iron Bank

Iron Bank

0.00 USDC • 1 total finding • Sherlock • Ruhum

#25

medium

Oracle contract doesn't check for outdated price data

Index

Index

132.51 USDC • 1 total finding • Sherlock • Ruhum

#19

medium

Attacker can brick AAVE v3 module for assets with approval race condition protection

Ajna Protocol

Ajna Protocol

358.45 USDC • 2 total findings • Code4rena • Ruhum

#24

high

Delegation rewards are not counted toward granting fund

medium

The voting thresholds in Ajna's Extraordinary Funding Mechanism can be manipulated to execute proposals below the expected threshold.

Apr '23

EigenLayer Contest

EigenLayer Contest

1,972.18 USDC • 1 total finding • Code4rena • Ruhum

#10

high

It is impossible to slash queued withdrawals that contain a malicious strategy due to a misplacement of the ++i increment

JOJO Exchange

JOJO Exchange

1,535.40 USDC • 2 total findings • Sherlock • Ruhum

#10

medium

JUSD borrow fee rate is less than it should be

medium

JUSDBank should mint/burn JUSD instead of only transferring it

Teller

Teller

66.19 USDC • 2 total findings • Sherlock • Ruhum

#38

high

Commited collateral can be changed after bid was created

high

CollateralManager allows the same collateral address to be added twice

Frankencoin

Frankencoin

94.94 USDC • 3 total findings • Code4rena • Ruhum

#47

medium

Can't pause or remove a minter

medium

POSITION LIMIT COULD BE FULLY REDUCED TO ZERO BY CLONES

medium

function `restructureCapTable()` in Equity.sol not functioning as expected

Caviar Private Pools

Caviar Private Pools

2,597.39 USDC • 5 total findings • Code4rena • Ruhum

silver

high

PrivatePool owner can steal all ERC20 and NFT from user via arbitrary execution

medium

`PrivatePool.flashLoan()` takes fee from the wrong address

medium

Malicious royalty recipient can steal excess eth from buy orders

medium

Royalty recipients will not get fair share of royalties

medium

EthRouter can't perform multiple changes

Rubicon v2

Rubicon v2

793.33 USDC • 4 total findings • Code4rena • Ruhum

#15

high

Position doesn't distribute rewards to users

high

Placeholder

medium

Zero reward rate calculation impedes low-decimals token distributions

medium

Calling `Position._marketBuy` and `Position._marketSell` functions that calculate `_fee` by dividing by `10000` can cause incorrect calculations

Mar '23

Asymmetry contest

Asymmetry contest

412.59 USDC • 3 total findings • Code4rena • Ruhum

#18

high

Staking, unstaking and rebalanceToWeight can be sandwiched (Mainly rETH deposit )

high

`WstEth` derivative assumes a ~1=1 peg of stETH to ETH

medium

Non-ideal rETH/WETH pool used pays unnecessary fees

Canto Identity Subprotocols contest

Canto Identity Subprotocols contest

39.87 USDC • 1 total finding • Code4rena • Ruhum

#24

medium

Users can end up buying and paying for a different Tray than the one they were trying to acquire

Y2K

Y2K

1,387.68 USDC • 5 total findings • Sherlock • Ruhum

#11

high

User can bypass Carousel's depositFee using the deposit queue

high

attacker can cause user's rollover to not be executed

high

Attacker can block deposit & rollover queue

medium

Controller doesn't send treasury funds to the vault's treasury address

medium

Attacker can DOS user's deposit by spamming the queue

zkSync Era System Contracts contest

zkSync Era System Contracts contest

237.7 USDC • Code4rena • Ruhum

#11

Neo Tokyo contest

Neo Tokyo contest

154.74 USDC • 1 total finding • Code4rena • Ruhum

#18

high

Underflow of `lpPosition.points` during withdrawLP causes huge reward minting

Taurus

Taurus

1,111.36 USDC • 2 total findings • Sherlock • Ruhum

#4

medium

User can prevent liquidations by frontrunning the tx and slightly increasing their collateral

medium

TAU doesn't decrease vault's mint amount when tokens are burned

Feb '23

Derby

Derby

317.23 USDC • 4 total findings • Sherlock • Ruhum

#19

high

Vault executes swaps without slippage protection

medium

Vault doesn't claim rewards when a protocol is blacklisted

medium

Vault will revert when depositing into a protocol with USDT as the underlying token

medium

Vault rebalance can cause deposits to revert

OlympusDAO

OlympusDAO

698.65 USDC • 5 total findings • Sherlock • Ruhum

#12

high

User can receive more rewards through a mistake in the withdrawal logic

high

`cachedUserRewards` aren't reset after the user claimed them

medium

`cachedUserRewards` can cause subsequent reward claims to revert because of an underflow

medium

Any unclaimed rewards will be lost when the admin removes a reward token

medium

Creating an internal reward token with a start timestamp in the future will cause deposits & withdrawals to revert

Fair Funding by Alchemix & Unstoppable

Fair Funding by Alchemix & Unstoppable

107.05 USDC • 1 total finding • Sherlock • Ruhum

#7

medium

Vault's migration contract can't really migrate anything

Carapace

Carapace

114.59 USDC • 3 total findings • Sherlock • Ruhum

#28

high

User can game withdrawal requests to be able to withdraw their whole balance in every cycle

high

Too many active protections can cause the ProtectionPool reach the block gas limit

medium

Possibility of deposits reverting in rare scenario where pool goes from locked to active state

Blueberry

Blueberry

661.91 USDC • 2 total findings • Sherlock • Ruhum

#15

high

Excess underlying tokens withdrawn through the BlueBerryBank from the SoftVault will be locked up

high

Positions won't be liquidatable at the correct threshold because of an accounting issue in `withdrawLend()`

OpenQ

OpenQ

323.32 USDC • 5 total findings • Sherlock • Ruhum

#22

high

Deposits can be refunded after a bounty closed

high

Refunding an NFT will result in claims being reverted

medium

Bounty refunds are first come first serve

medium

Attacker can DOS bounty's NFT rewards

medium

Attacker can DOS bounty by funding it with worthless ERC20 tokens

Jan '23

Popcorn contest

Popcorn contest

2,263.69 USDC • 7 total findings • Code4rena • Ruhum

#5

high

First vault depositor can steal other's assets

high

Incorrect Reward Duration After Change in Reward Speed in MultiRewardStaking

medium

Vault creator can't change feeRecipient after deployment

medium

Vault creator can't change quitPeriod

medium

`MultiRewardStaking.changeRewardSpeed()` breaks the distribution

medium

cool down time period is not properly respected for the `harvest` method

medium

Anyone can reset fees to 0 value when Vault is deployed

Canto Identity Protocol contest

Canto Identity Protocol contest

135.96 CANTO • 1 total finding • Code4rena • Ruhum

#10

medium

Multiple accounts can have the same identity

RabbitHole Quest Protocol contest

RabbitHole Quest Protocol contest

39.56 USDC • 2 total findings • Code4rena • Ruhum

#56

high

Protocol fees can be withdrawn multiple times in `Erc20Quest`

medium

User may loose rewards if the receipt is minted after quest end time

Timeswap contest

Timeswap contest

65.35 USDC • 1 total finding • Code4rena • Ruhum

#20

medium

Convenience contract fails to function if asset or collateral is an ERC20 token with fees

Reserve contest

Reserve contest

121.59 USDC • Code4rena • Ruhum

#26

Astaria contest

Astaria contest

3,683.6 USDC • 2 total findings • Code4rena • Ruhum

#7

high

Vault's don't verify that a strategy's deadline has passed

medium

FlashAuction doesn't pass the initiator to the recipient

Biconomy - Smart Contract Wallet contest

Biconomy - Smart Contract Wallet contest

676.14 USDC • 1 total finding • Code4rena • Ruhum

#17

high

`FeeRefund.tokenGasPriceFactor` is not included in signed transaction data allowing the submitter to steal funds

UXD Protocol

UXD Protocol

51.94 USDC • 1 total finding • Sherlock • Ruhum

#26

high

`PerpDepository.rebalance()` can be abused to steal funds

Dec '22

Papr contest

Papr contest

1,330.41 USDC • 1 total finding • Code4rena • Ruhum

#11

high

Collateral NFT deposited to a wrong address, when transferred directly to `PaprController`

Forgeries contest

Forgeries contest

45.71 USDC • Code4rena • Ruhum

#21

Tigris Trade contest

Tigris Trade contest

519.36 USDC • 5 total findings • Code4rena • Ruhum

#25

high

Lock.sol: assets deposited with Lock.extendLock function are lost

high

Incorrect Assumption of Stablecoin Market Stability

medium

Trading will not work on ethereum if USDT is used

medium

Centralization risks: owner can freeze withdraws and use timelock to steal all funds

medium

Unreleased locks cause the reward distribution to be flawed in BondNFT

Escher contest

Escher contest

87.28 USDC • 3 total findings • Code4rena • Ruhum

#41

high

`LPDA` price can underflow the price due to bad settings and potentially brick the contract

medium

Editions should be checked if they are actually deployed from the legitimate Escher721Factory

medium

selfdestruct() will not be available after EIP-4758

Nov '22

Canto contest

Canto contest

1,978.12 CANTO • 6 total findings • Code4rena • Ruhum

#5

high

WETH.sol computes the wrong totalSupply()

high

Anyone can create Proposal Unigov Proposal-Store.sol

high

It's not possible to execute governance proposals through the GovernorBravoDelegate contract

high

Comptroller uses the wrong address for the WETH contract

high

Accountant can't be initialized

high

User can redirect fees by using a proxy contract

Redacted Cartel contest

Redacted Cartel contest

57.56 USDC • 2 total findings • Code4rena • Ruhum

#45

high

Malicious Users Can Drain The Assets Of Auto Compound Vault

medium

Assets may be lost when calling unprotected `AutoPxGlp::compound` function

Bull v Bear

Bull v Bear

339.37 USDC • 2 total findings • Sherlock • Ruhum

#9

high

Attacker can lockup all tokens held by BvbProtocol contract

medium

Protocol can't handle fee-on-transfer tokens

SIZE contest

SIZE contest

8.54 USDC • 1 total finding • Code4rena • Ruhum

#41

medium

Incompatibility with fee-on-transfer/inflationary/deflationary/rebasing tokens, on both base tokens and quote tokens, with varying impacts

Debt DAO contest

Debt DAO contest

497.58 USDC • 3 total findings • Code4rena • Ruhum

#31

medium

Whitelisted functions aren't scoped to revenue contracts and may lead to unnoticed calls due to selector clashing

medium

Variable balance ERC20 support

medium

Borrower/Lender excessive ETH not refunded and permanently locked in protocol

Oct '22

Paladin - Warden Pledges contest

Paladin - Warden Pledges contest

345.48 USDC • 1 total finding • Code4rena • Ruhum

#15

medium

Reward can be over- or undercounted in `extendPledge` and `increasePledgeRewardPerVote`

Inverse Finance contest

Inverse Finance contest

3,422.45 USDC • 3 total findings • Code4rena • Ruhum

#8

medium

Oracle's two-day feature can be gamed

medium

Oracle assumes token and feed decimals will be limited to 18 decimals

medium

Chainlink oracle data feed is not sufficiently validated and can return stale `price`

Illuminate

Illuminate

1,056.93 USDC • 3 total findings • Sherlock • Ruhum

#10

high

`Reedemer.redeem()` for Sense will always fail

medium

Changing the converter in the Redeemer contract will break the redeem functionality for 3 principals

medium

Can't create multiple markets for ERC20 tokens that have approval protections

Blur Exchange contest

Blur Exchange contest

2,585.28 USDC • 2 total findings • Code4rena • Ruhum

#7

high

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

medium

Protocol can be easily rug-pulled by the owner

Mycelium

Mycelium

305.87 USDC • 2 total findings • Sherlock • Ruhum

#6

high

First depositor to Vault can break minting of shares

medium

Adding same plugin twice can break vault's internal bookkeeping

Sep '22

Knox Finance

Knox Finance

20.77 USDC • 1 total finding • Sherlock • Ruhum

#12

medium

Chainlink oracle isn't validated properly

QuickSwap and StellaSwap contest

QuickSwap and StellaSwap contest

76.06 USDC • Code4rena • Ruhum

#46

Frax Ether Liquid Staking contest

Frax Ether Liquid Staking contest

12.49 USDC • 1 total finding • Code4rena • Ruhum

#79

medium

frxETHMinter: Non-conforming ERC20 tokens not recoverable

VTVL contest

VTVL contest

279.61 USDC • 3 total findings • Code4rena • Ruhum

#22

high

Loss of vested amounts

medium

not able to create claim

medium

Supply cap of VariableSupplyERC20Token is not properly enforced

Y2k Finance contest

Y2k Finance contest

52.8 USDC • Code4rena • Ruhum

#50

Aug '22

Sentiment

Sentiment

670.34 USDC • 2 total findings • Sherlock • Ruhum

#14

high

LEther doesn't update the state on deposits and redeems

medium

Chainlink oracle isn't validated properly

Olympus DAO contest

Olympus DAO contest

569.13 USDC • 1 total finding • Code4rena • Ruhum

#33

high

TRSRY: front-runnable `setApprovalFor`

Nouns DAO contest

Nouns DAO contest

52.1 USDC • Code4rena • Ruhum

#38

FIAT DAO veFDT contest

FIAT DAO veFDT contest

44.84 USDC • Code4rena • Ruhum

#62

Fraxlend (Frax Finance) contest

Fraxlend (Frax Finance) contest

21.17 USDC • Code4rena • Ruhum

#70

Foundation Drop contest

Foundation Drop contest

45.08 USDC • Code4rena • Ruhum

#53

Rigor Protocol contest

Rigor Protocol contest

114.27 USDC • 1 total finding • Code4rena • Ruhum

#41

medium

Missing upper limit definition in replaceLenderFee() of HomeFi.sol

Jul '22

Axelar Network v2 contest

Axelar Network v2 contest

2,169.87 USDC • 1 total finding • Code4rena • Ruhum

#5

medium

Change of operators possible from old operators

Golom contest

Golom contest

61.16 USDC • Code4rena • Ruhum

#78

ENS contest

ENS contest

128.88 USDC • 1 total finding • Code4rena • Ruhum

#38

medium

transfer() depends on gas consts

Fractional v2 contest

Fractional v2 contest

328.95 USDC • 4 total findings • Code4rena • Ruhum

#39

high

```migrateFractions``` may be called more than once by the same user which may lead to loss of tokens for other users

medium

A VAULT OWNER CAN BE ALSO THE CONTROLLER AND ARBITRARILY SET THE SECONDARY MARKET ROYALTIES

medium

An attacker can DoS vault's buyout with as little as 1 wei per 4 days

medium

Use of `payable.transfer()` may lock user funds

Juicebox V2 contest

Juicebox V2 contest

799.78 USDC • 3 total findings • Code4rena • Ruhum

#17

high

ORACLE DATA FEED CAN BE OUTDATED YET USED ANYWAYS WHICH WILL IMPACT ON PAYMENT LOGIC

medium

Use a safe transfer helper library for ERC20 transfers

medium

Discounted fee calculation is imprecise and calculates less fees than anticipated

Jun '22

Putty contest

Putty contest

21.17 USDC • Code4rena • Ruhum

#86

Infinity NFT Marketplace contest

Infinity NFT Marketplace contest

569.4 USDC • 4 total findings • Code4rena • Ruhum

#20

high

Overpayment of native ETH is not refunded to buyer

high

Calling `unstake()` can cause locked funds

medium

Protocol fee rate can be arbitrarily modified by the owner and the new rate will apply to all existing orders

medium

InfinityExchange computes gas refunds in a way where the first order's buyer pays less than the later ones

Canto contest

Canto contest

5,261.39 USDC • 6 total findings • Code4rena • Ruhum

#4

high

WETH.sol computes the wrong totalSupply()

high

Anyone can create Proposal Unigov Proposal-Store.sol

high

It's not possible to execute governance proposals through the GovernorBravoDelegate contract

high

Comptroller uses the wrong address for the WETH contract

high

Accountant can't be initialized

high

User can redirect fees by using a proxy contract

Connext Amarok contest

Connext Amarok contest

2,909.39 USDC • 2 total findings • Code4rena • Ruhum

#8

high

`PortcalFacet.repayAavePortal()` can trigger an underflow of `routerBalances`

medium

Did Not Approve To Zero First Causing Certain Token Transfer To Fail

Notional x Index Coop

Notional x Index Coop

96.77 USDC • Code4rena • Ruhum

#37

May '22

Backd Tokenomics contest

Backd Tokenomics contest

2,891.54 USDC • 1 total finding • Code4rena • Ruhum

#11

medium

FeeBurner initiates swap without any slippage checks if Chainlink oracle fails

veToken Finance contest

veToken Finance contest

2,215.35 USDT • 2 total findings • Code4rena • Ruhum

#11

medium

`VE3DRewardPool` and `VE3DLocker` adds to an unbounded array which may potentially lock all rewards in the contract

medium

VE3DRewardPool allows the same reward address to be added multiple times to the `extraRewards` array

Velodrome Finance contest

Velodrome Finance contest

9,014.68 USDC • 4 total findings • Code4rena • Ruhum

silver

high

Attacker can block LayerZero channel

medium

Malicious user can populate `rewards` array with tokens of their interest reaching limits of `MAX_REWARD_TOKENS`

medium

Voting tokens may be lost when given to non-EOA accounts

medium

RedemptionSender should estimate fees to prevent failed transactions

Rubicon contest

Rubicon contest

2,066.05 USDC • 10 total findings • Code4rena • Ruhum

#8

high

RubiconRouter.swapEntireBalance() doesn't handle the slippage check properly

medium

Strategists can't be removed

medium

RubiconRouter: Excess ether did not return to the user

medium

No cap on fees can result in a DOS in BathToken.withdraw()

medium

Use `safeTransfer()`/`safeTransferFrom()` instead of `transfer()`/`transferFrom()`

medium

`RubiconMarket.sol#isClosed()` always returns false, making the market can not be stopped as designed

medium

Early funds withdrawers can get bonus in multiples of vested bonus tokens (e.g. 2-times, 3-times, etc.)

medium

Strategist can transfer user funds to themselves

medium

BathBuddy locks up Ether it receives

medium

Use `call()` instead of `transfer()` when transferring ETH in RubiconRouter

Aura Finance contest

Aura Finance contest

233.28 USDC • Code4rena • Ruhum

#39

Cally contest

Cally contest

3,174.5 USDC • 3 total findings • Code4rena • Ruhum

#6

high

no-revert-on-transfer ERC20 tokens can be drained

medium

Owner can set the feeRate to be greater than 100% and cause all future calls to `exercise` to revert

medium

User's may accidentally overpay in `buyOption()` and the excess will be paid to the vault creator

Enso Finance contest

Enso Finance contest

180.12 USDT • Code4rena • Ruhum

#46

Alchemix contest

Alchemix contest

6,595.97 DAI • 1 total finding • Code4rena • Ruhum

#6

medium

YearnTokenAdapter allows a maximum loss of 100% when withdrawing

FactoryDAO contest

FactoryDAO contest

125.46 DAI • 1 total finding • Code4rena • Ruhum

#35

medium

amount requires to be updated to contract balance increase (1)

Forgotten Runes Warrior Guild contest

Forgotten Runes Warrior Guild contest

1,143.09 USDC • 2 total findings • Code4rena • Ruhum

#11

medium

The owner can mint all of the NFTs.

medium

Contract may not have enough fund to cover refund

bunker.finance contest

bunker.finance contest

298.58 USDC • 1 total finding • Code4rena • Ruhum

#13

medium

Chainlink pricer is using a deprecated API

Apr '22

AbraNFT contest

AbraNFT contest

1,651.93 MIM • 2 total findings • Code4rena • Ruhum

#7

high

The return value `success` of the get function of the INFTOracle interface is not checked

high

Lender is able to seize the collateral by changing the loan parameters

Backd contest

Backd contest

4,019.43 USDC • 1 total finding • Code4rena • Ruhum

#7

medium

CvxCrvRewardsLocker implements a swap without a slippage check that can result in a loss of funds through MEV

xTRIBE contest

xTRIBE contest

182.53 USDC • Code4rena • Ruhum

#26

Badger Citadel contest

Badger Citadel contest

1,220.73 USDC • 2 total findings • Code4rena • Ruhum

#15

high

StakedCitadel doesn't use correct balance for internal accounting

medium

Funding.deposit() doesn't work if there is no discount set

JPEG'd contest

JPEG'd contest

194.21 USDC • 1 total finding • Code4rena • Ruhum

#39

medium

Chainlink pricer is using a deprecated API

Backed Protocol contest

Backed Protocol contest

488.12 USDC • 2 total findings • Code4rena • Ruhum

#12

high

Can force borrower to pay huge interest

medium

Protocol doesn't handle fee on transfer tokens

Mar '22

Joyn contest

Joyn contest

1,046.64 USDC • 4 total findings • Code4rena • Ruhum

#11

high

Splitter: Anyone can call incrementWindow to steal the tokens in the contract

high

CoreCollection can be reinitialized

high

DoS: `claimForAllWindows()` May Be Made Unusable By An Attacker

high

Centralisation RIsk: Owner Of `RoyaltyVault` Can Take All Funds

Paladin contest

Paladin contest

109.4 USDC • Code4rena • Ruhum

#31

LI.FI contest

LI.FI contest

856.77 USDC • 2 total findings • Code4rena • Ruhum

#23

medium

LibSwap: Excess funds from swaps are not returned

medium

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

prePO contest

prePO contest

2,073.31 USDC • 1 total finding • Code4rena • Ruhum

#6

medium

SingleStrategyController doesn't verify that new strategy uses the same base token

Rolla contest

Rolla contest

662.49 USDC • 1 total finding • Code4rena • Ruhum

#11

medium

Usage of deprecated Chainlink functions

Biconomy Hyphen 2.0 contest

Biconomy Hyphen 2.0 contest

1,006.59 USDT • 4 total findings • Code4rena • Ruhum

#14

medium

Improper Upper Bound Definition on the Fee

medium

Owners have absolute control over protocol

medium

Incentive Pool can be drained without rebalancing the pool

medium

Incompatibility With Rebasing/Deflationary/Inflationary token

Feb '22

Foundation contest

Foundation contest

181.02 USDC • Code4rena • Ruhum

#25

JPYC contest

JPYC contest

622.13 USDC • Code4rena • Ruhum

#20

Hubble contest

Hubble contest

516.95 USDC • 2 total findings • Code4rena • Ruhum

#18

high

denial fo service

medium

`settleFunding` will exceed block gas with more markets and activity

Tribe Turbo contest

Tribe Turbo contest

3,238.35 USDC • 1 total finding • Code4rena • Ruhum

#7

high

ERC4626 mint uses wrong `amount`

Redacted Cartel contest

Redacted Cartel contest

232.42 USDC • 2 total findings • Code4rena • Ruhum

#25

high

Malicious Users Can Drain The Assets Of Auto Compound Vault

medium

Assets may be lost when calling unprotected `AutoPxGlp::compound` function

Badger Citadel contest

Badger Citadel contest

109.83 USDC • 2 total findings • Code4rena • Ruhum

#22

high

StakedCitadel doesn't use correct balance for internal accounting

medium

Funding.deposit() doesn't work if there is no discount set

Concur Finance contest

Concur Finance contest

467.39 USDC • 2 total findings • Code4rena • Ruhum

#25

high

Repeated Calls to Shelter.withdraw Can Drain All Funds in Shelter

medium

Fee-on-transfer token donations in `Shelter` break withdrawals

Jan '22

OpenLeverage contest

OpenLeverage contest

18.25 USDT • Code4rena • Ruhum

#20

Behodler contest

Behodler contest

1,267.52 USDC • Code4rena • Ruhum

#14

Trader Joe contest

Trader Joe contest

804.59 USDT • 2 total findings • Code4rena • Ruhum

#18

medium

Owner of LaunchEvent token has the ability to DOS attack the event

medium

ERC20 return values not checked

Sherlock contest

Sherlock contest

26.04 USDC • Code4rena • Ruhum

#30

ElasticSwap contest

ElasticSwap contest

74.71 USDC • Code4rena • Ruhum

#15

Livepeer contest

Livepeer contest

4,987.89 tokens) • 2 total findings • Code4rena • Ruhum

#4

high

[WP-H5] `L1Migrator.sol#migrateETH()` dose not send `bridgeMinter`'s ETH to L2 causing ETH get frozen in the contract

medium

L1Migrator.migrateLPT` can be used to take away protocol's access to LPT tokens in BridgeMinter

InsureDAO contest

InsureDAO contest

896.73 tokens) • 3 total findings • Code4rena • Ruhum

#17

high

backdoor in `withdrawRedundant`

medium

[WP-M17] `Vault.sol` Tokens with fee on transfer are not supported

medium

Unbounded iteration over all indexes (2)

Sandclock contest

Sandclock contest

412.91 USDC • 2 total findings • Code4rena • Ruhum

#19

high

Vaults with non-UST underlying asset vulnerable to flash loan attack on curve pool

medium

Vault can't receive deposits if underlying token charges fees on transfer

Timeswap contest

Timeswap contest

1,703.85 USDC • 1 total finding • Code4rena • Ruhum

#6

medium

Convenience contract fails to function if asset or collateral is an ERC20 token with fees

Dec '21

Yeti Finance contest

Yeti Finance contest

1,353.07 USDC • Code4rena • Ruhum

#15

NFTX contest

NFTX contest

1,839.88 USDC • Code4rena • Ruhum

#10

Amun contest

Amun contest

385.23 USDC • Code4rena • Ruhum

#20

Kuiper contest

Kuiper contest

1,535.22 ETH • 1 total finding • Code4rena • Ruhum

#7

medium

Basket can be fully drained if the auction is settled within a specific block

Nov '21

Streaming Protocol contest

Streaming Protocol contest

1,417.6 USDC • 1 total finding • Code4rena • Ruhum

#21

high

Tokens can be stolen when `depositToken == rewardToken`

Unlock Protocol contest

Unlock Protocol contest

868.39 USDC • 1 total finding • Code4rena • Ruhum

#10

medium

Support of different ERC20 tokens

Overlay Protocol contest

Overlay Protocol contest

0 ETH • Code4rena • Ruhum

#17

BadgerDAO Zaps contest

BadgerDAO Zaps contest

3,761.77 USDC • 1 total finding • Code4rena • Ruhum

bronze

medium

Zap contract's redeem() function doesn't check which token the user wants to receive

Vader Protocol contest

Vader Protocol contest

72.86 USDC • Code4rena • Ruhum

#23

FairSide contest

FairSide contest

732.92 ETH • Code4rena • Ruhum

#8

Boot Finance contest

Boot Finance contest

573.87 USDC • 2 total findings • Code4rena • Ruhum

#18

medium

Unchecked transfers

medium

No Transfer Ownership Pattern