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

AlexCzm

Security Researcher

Contact Me

High

66

Total

Medium

1

Solo

52

Total

$13.41K

Total Earnings

#523 All Time

33x

Payouts

regular

6x

Top 10

regular

12x

Top 25

regular

23x

Top 50

All

Sherlock

Code4rena

CodeHawks

Oct '25

Index Fun Order Book

Index Fun Order Book

45.54 USDC • 2 total findings • Sherlock • AlexCzm

#11

high

Trading fee is paid by the seller instead of buyer

medium

Users can buy shares for free due to rounding error

Sep '25

Super DCA Liquidity Network

Super DCA Liquidity Network

30.10 OP • 1 total finding • Sherlock • AlexCzm

#35

medium

Incorect USDC conversion leads to smaller cashback transfer to user

Jul '25

DeBank

DeBank

284.90 USDC • Sherlock • AlexCzm

#14

Jun '25

Chainlink Rewards

Chainlink Rewards

1,580.37 USDC • Code4rena • AlexCzm

#6

Panoptic

Panoptic

154.63 USDC • Code4rena • AlexCzm

#5

Feb '25

Yieldoor

Yieldoor

59.59 USDC • 3 total findings • Sherlock • AlexCzm

#13

high

Wrong `tickUpper` argument used in `collectFees()` may lead to lock funds permanently

high

Due to an incorrect leverage calculation, users are able to open positions with a leverage bigger than the max leverage allowed

medium

Failure to update `path` in multi-pool swaps results in an out-of-gas (OOG) error during leveraged position openings

Core Contracts

Core Contracts

660.08 usdc • 42 total findings • CodeHawks • alexczm

#33

high

ZENO Token Redemption Returns Negligible USDC Amount Compared to Purchase Price

high

Incorrect decimal handling in `Auction::buy()` leads to massive overpayment for ZENO tokens

high

RAACNFT mint function receives funds to address(this) but has no way of withdrawing them

high

`BaseGauge` users can claim rewards without staking

high

Users Can Overwrite Existing Locks in veRAACToken Resulting in Permanent Loss of Funds

high

`GaugeController::_calculateReward` implementation will cause smaller shares to be allocated to every gauge

high

Multiple issues from unnecessary balance increase calculation in DebtToken.mint

high

Reward manipulation vulnerability in StabilityPool

high

RToken's transfer function lead to loss of funds due to incorrect math

high

Users can borrow more assets than they have deposited as collateral

high

NFTs Get Permanently Locked in Stability Pool After Liquidation

high

Any attempt to liquidate a user will fail, because StabilityPool does not hold crvUSD during operational lifecycle

high

Double Usage Index Scaling in StabilityPool Liquidation Inflates Required CRVUSD Balance

high

Boost Miscalculation Leads to Excess Distribution

high

Ownership Parameter Mismatch in LendingPool’s Vault Withdrawal Logic

high

Treasury Balance Tracking Bypass in FeeCollector

high

Attackers can double voting power and veToken amount by locking and increasing

high

Gauge Voting Misallocation Vulnerability

high

Critical Economic Design Flaw in ZENO Zero-Coupon Bond Implementation Leads to Guaranteed User Losses

high

Voting Power Snapshot Missing

high

Gauge stakers won't get any reward due to round-down in user weight calculation

high

Stability pool does not consider RToken balance increase when DEToken is withdrawn

high

Multiple calls to `BaseGauge::notifyRewardAmount()` override existing reward rate, causing loss of rewards for stakers

high

Hardcoded Exchange Rate Leading to Incorrect Deposits and Redemptions

medium

Gauge reward period can be extended indefinitely

medium

LendingPool::getNormalizedIncome() returns stale liquidity index

medium

Users Can Lose Funds and Collateral by Repaying Loans After Liquidation Grace Period Expiry

medium

Liquidation Cannot Be Closed Even With Healthy Position Due To Strict Debt Check

medium

Using balanceOf Instead of Voting Power

medium

There is no logic checking for RAACNFT price staleness before minting it

medium

`RToken::calculateDustAmount` are incorrectly calculated, leading to not be able to transfer the accrued dust amount

medium

Concurrent Oracle Fulfillments Overwrite House IDs, which leads to Incorrect Pricing

medium

Liquidations are enabled when repayments are disabled, causing borrowers to lose funds without a chance to repay

medium

User may not be able to increase the amount of locked RAAC tokens

medium

Lack of Time-Weighted Voting and Weight Decay in GaugeController

medium

RAACToken burns less tokens than expected when feeCollector is unset

medium

The earned yield from the Curve vault can never be utilized when withdrawing or borrowing

medium

closeLiquidation within LendingPool does not allow partial repayments, which can cause massive losses to users within edge case

medium

Updating the prime rate will change the interest for a time that was already passed

medium

Skewed Reward Distribution in GaugeController.sol

low

Incorrect Timestamp Tracking in RAACHousePrice contract

low

Deposits/Withdrawals can be DOS'ed if crvVault::withdraw produces any losses

Jan '25

Part 2

Part 2

3,537.72 usdc • 14 total findings • CodeHawks • alexczm

#5

high

Incorrect Credit Capacity Validation in `VaultRouterBranch.redeem` Enables Locked Collateral Drainage

high

Multiple instances where Vault's `totalAssets()` is not properly scaled to ZAROS precision

high

Underflow when updating credit delegation will result protocol DoS

high

Vaults weth reward is not distributed correctly

high

Unclaimed Rewards Loss Due to Missing Validation in `VaultRouterBranch.stake()`

high

Incorrect Debt Check in `CreditDelegationBranch::settleVaultsDebt` Function

high

Total market debt > 0 when credit deposits > netusdissuance which breaks key protocol logic

high

Incorrect calculation in CreditDelegationBranch::withdrawUsdTokenFromMarket allows attacker mint any amount of usdz

high

Incorrect vault debt validation logic in rebalanceVaultsAssets causes reverts

medium

The logic in `getPremiumDiscountFactor` is inverted: a discount is applied when Vault is in credit and a premium is applied if Vault is in debt

medium

Issue with Decimal Offset Calculation Leading to Weak Donation Protection

medium

Duplicate `Collateral.Data` struct causes admin configuration conflict

low

Protocol not fully compliant with ERC-7201

low

Invalid referral data retrieval

Aug '24

Sentiment V2

Sentiment V2

1,362.18 USDC • 3 total findings • Sherlock • AlexCzm

#6

high

An attacker can pick up a new price that is older than the current stored one

medium

Attacker can open many small positions, disincentivizing liquidations

medium

Hardcoded redstone oracle deviation threshold

Jul '24

Zaros Part 1

Zaros Part 1

87.58 USDC • 5 total findings • CodeHawks • alexczm

#54

high

Market Disruption and Financial Loss Post-Liquidation

medium

Insufficient checks to confirm the correct status of the sequencerUptimeFeed

medium

An Uninitialized Variable In The `MarketConfiguration::update` Function Causes The `PrepMarket::getIndexPrice` Function To Revert

low

Functions calling `verifyReport` to verify offchain prices from chainlink will fail

low

When transfering the NFT associated to a TradingAccount, the old owner can grief the new owner by leaving an opened MarketOrder that will be executed even though the old owner is not the owner of the TradingAccount.

Jun '24

Size

Size

0.05 USDC • 1 total finding • Code4rena • AlexCzm

#62

high

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

Apr '24

NOYA

NOYA

666.86 USDC + NOYA stars • 6 total findings • Code4rena • AlexCzm

#22

high

`SNXConnector.sol` TVL calculation is incorrect.

high

Numerous errors when calculating the TVL for the MorphoBlue connector

high

It is possible to open insolvent position is Silo connector, due to missing check in borrow function

high

SiloConnector `_getPositionTVL` miscalculate the TVL position

medium

Some connectors prevents repayment of a borrow position if it doesn't leave the connector solvent or above minimumHealthFactor

medium

Dust donation might DOS all connectors to create new holding positions, by preventing removing existing holding positions

TITLES Publishing Protocol

TITLES Publishing Protocol

30.26 USDC • 4 total findings • Sherlock • AlexCzm

#34

high

CollectionReferrerShare is wrongly sent to mint referrer

high

Users can `mintBatch` to mint out but pay for one token only

medium

Edition._refundExcess() doesn't refund the excess ether

medium

The edges will never be acknowledged because only memory copy is modified

DYAD

DYAD

247.59 USDC • 7 total findings • Code4rena • AlexCzm

#47

high

Attacker can make 0 value deposit() calls to deny user from redeeming or withdrawing collateral

high

Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine

high

Kerosene collateral is not being moved on liquidation, exposing liquidators to loss

high

Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults

medium

Attacker can frontrun to prevent vaults from being removed from the dNFT owner's position

medium

Value of kerosene can be manipulated to force liquidate users

medium

Liquidation bonus logic is wrong

Feb '24

UniStaker Infrastructure

UniStaker Infrastructure

694.3 USDC • Code4rena • AlexCzm

#5

AI Arena

AI Arena

13.09 USDC • 5 total findings • Code4rena • AlexCzm

#120

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

medium

NFTs can be transferred even if StakeAtRisk remains, so the user's win cannot be recorded on the chain due to underflow, and can recover past losses that can't be recovered(steal protocol's token)

medium

Can mint NFT with the desired attributes by reverting transaction

medium

DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passed.

medium

Fighter created by mintFromMergingPool can have arbitrary weight and element

Jan '24

Curves

Curves

136.88 USDC • 6 total findings • Code4rena • AlexCzm

#37

high

Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`

high

Unauthorized Access to setCurves Function

medium

Selling will be bricked if all other tokens are withdrawn to ERC20 token

medium

onBalanceChange causes previously unclaimed rewards to be cleared

medium

Curves::_buyCurvesToken(), Excess of Eth received is not refunded back to the user.

medium

If a user sets their curve token symbol as the default one plus the next token counter instance it will render the whole default naming functionality obsolete

SYMM IO

SYMM IO

31.07 USDC • Sherlock • AlexCzm

#20

Dec '23

Ethereum Credit Guild

Ethereum Credit Guild

336.05 USDC • 3 total findings • Code4rena • AlexCzm

#38

high

The userGaugeProfitIndex is not set correctly, allowing an attacker to receive rewards without waiting

high

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

high

The creation of bad debt (`mark-down` of Credit) can force other loans in auction to also create bad debt

Nov '23

Kelp DAO | rsETH

Kelp DAO | rsETH

40.69 USDC • 2 total findings • Code4rena • AlexCzm

#44

high

The price of rsEHT could be manipulated by the first staker

high

Protocol mints less rsETH on deposit than intended

Aug '23

Chainlink Staking v0.2

Chainlink Staking v0.2

3.86 USDC • Code4rena • AlexCzm

#58

veRWA

veRWA

9.82 USDC • Code4rena • AlexCzm

#52

Jul '23

Foundry DeFi Stablecoin CodeHawks Audit Contest

Foundry DeFi Stablecoin CodeHawks Audit Contest

69.19 USDC • 4 total findings • CodeHawks • alexczm

#28

high

Theft of collateral tokens with fewer than 18 decimals

high

Liquidation Is Prevented Due To Strict Implementation of Liqudation Bonus

medium

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

medium

Lack of fallbacks for price feed oracle

CodeHawks Escrow Contract - Competition Details

CodeHawks Escrow Contract - Competition Details

37.93 USDC • 1 total finding • CodeHawks • alexczm

#55

medium

High - Funds can be lost if any participant is blacklisted

Lens Protocol V2

Lens Protocol V2

31.38 USDC • Code4rena • AlexCzm

#9

Beam

Beam

31.11 USDC • Sherlock • AlexCzm

#26

May '23

Maia DAO Ecosystem

Maia DAO Ecosystem

2,992.34 USDC • 3 total findings • Code4rena • AlexCzm

#21

high

TalosBaseStrategy#init() lacks slippage protection

medium

Removing more gauge weight than it should be while transfering ````ERC20Gauges```` token

medium

`ERC20Boost.sol` An user can be `attach`ed to a gauge and have no boost balance.

USSD - Autonomous Secure Dollar

USSD - Autonomous Secure Dollar

57.67 USDC • 2 total findings • Sherlock • AlexCzm

#36

high

Anyone can trigger USSD depeg.

high

Wrong price calculation

Footium

Footium

0.01 USDC • 1 total finding • Sherlock • AlexCzm

#32

medium

ERC20 return values not checked

Apr '23

Rubicon v2

Rubicon v2

16.48 USDC • 5 total findings • Code4rena • AlexCzm

#96

high

Reward accounting is incorrect in BathBuddy contract

medium

BathBuddy contract should implement methods to pause and unpause contract

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

medium

Calling `ExpiringMarket.stop` and `ExpiringMarket.isClosed` functions cannot pause any functionlities of the market

Mar '23

Gitcoin

Gitcoin

49.51 USDC • Sherlock • AlexCzm

#53

Y2K

Y2K

100.04 USDC • 2 total findings • Sherlock • AlexCzm

#52

high

Users can avoid paying depositFee

high

A malicious user can deny user reward enlisted in rollover

Jan '23

RabbitHole Quest Protocol contest

RabbitHole Quest Protocol contest

9.64 USDC • 2 total findings • Code4rena • AlexCzm

#80

high

Bad implementation in minter access control for `RabbitHoleReceipt` and `RabbitHoleTickets` contracts

medium

Users may not claim Erc1155 rewards when the Quest has ended