https://sherlock-files.ams3.digitaloceanspaces.com/twitter_images/f584e472-6239-4820-8c56-3c5ea9e24c85.jpg

foufrix

Security Researcher

Looking for bugs.

Contact Me

High

11

Total

Medium

1

Solo

16

Total

$1.33K

Total Earnings

#1182 All Time

4x

Payouts

regular

1x

Top 25

regular

2x

Top 50

All

Code4rena

Cantina

CodeHawks

Feb '25

Core Contracts

Core Contracts

1,131.88 usdc • 24 total findings • CodeHawks • foufrix

#16

high

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

high

Reward manipulation vulnerability in StabilityPool

high

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

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

Ownership Parameter Mismatch in LendingPool’s Vault Withdrawal Logic

high

Ineffective Time-Weighted Average Implementation in Fee Distribution

high

Voting Power Snapshot Missing

high

Hardcoded Exchange Rate Leading to Incorrect Deposits and Redemptions

medium

RToken.transferFrom() Does Not Scale User Balances Due to Stale Liquidity Index

medium

LendingPool deposits do not work with CurveVault due to lack of funds

medium

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

medium

Treasury Contract Deposit Function Can Be Frontrun To Deny Protocol Operations

medium

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

medium

Emergency revoke in RAACReleaseOrchestrator will freeze revoked RAAC tokens in orchestrator

medium

Inconsistent Scaling in RToken Transfer Functions

medium

Failure to Withdraw Liquidity to RToken.sol Before Changing Curve Vault Address

medium

Fee-on-transfer token handling issue in `Treasury::deposit` leads to permanent fund loss

medium

`RAACReleaseOrchestrator::emergencyRevoke()` fails to update `categoryUsed`, leading to token lockup and incorrect accounting

medium

The `TimelockController::executeEmergencyAction()` function does not update the `_operations` mapping, which can lead to an operation being executed twice.

medium

Emergency Withdraw in veRAACToken Breaks Governance Security

low

Impossible to rescue funds from `RToken` contract

low

`FeeCollector::updateFeeType` wrong fee share validation leads to impossible update for some fee types

low

Treasury's allocated funds not tracked during withdrawals leads to accounting issue where recepient can receive more than allocated funds.

Dec '24

QuantAMM

QuantAMM

17.52 op • 3 total findings • CodeHawks • foufrix

#70

high

Fee Evasion via LP Token Transfer Resets Deposit Value

medium

quantAMMSwapFeeTake used for both getQuantAMMSwapFeeTake and getQuantAMMUpliftFeeTake.

medium

“Uplift Fee” Incorrectly Falls Back to Minimum Fee Due to Integer Division

SecondSwap

SecondSwap

79.3 USDC • 2 total findings • Code4rena • foufrix

#34

high

`SecondSwap_Marketplace` vesting listing order affects how much the vesting buyers can claim at a given step

medium

Missing sellable check in completePurchase will cause a user to buy a token marked as unsellable by S2ADMIN if it was listed beforehand

Aug '24

zetachain-protocol

zetachain-protocol

104.48 USDC • 1 total finding • Cantina • foufrix

#62

medium

Finding not yet public.