Renzo — disclosed vulnerability reports and payouts

Every publicly disclosed and closed bug bounty report we hold for Renzo, with our own summary of each finding and a link to the original disclosure.

Reports indexed
20
Total paid
$0
Critical
0
Largest payout
$0

This page collects the 20 closed, publicly disclosed Renzo reports indexed on CoinBuggie. Nothing here is active or unpatched — every entry was published by the programme or the researcher after remediation.

The findings concentrate in Oracle manipulation, Reentrancy, Logic error, Front-running / MEV, across EVM-Solidity, Move. Reading a single protocol end to end is the fastest way to see which assumptions its codebase repeatedly gets wrong, which is usually a better predictor of where the next finding lives than the category alone.

Use the vulnerability class links below to compare these findings against the same bug class in other protocols.

What reviewers look for

  • Oracle manipulation findings disclosed against Renzo
  • Reentrancy findings disclosed against Renzo
  • Logic error findings disclosed against Renzo
  • Front-running / MEV findings disclosed against Renzo

Curated highlights

The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.

mediumOracle manipulationEVM-Solidity$0

Renzo: Lack of slippage and deadline during withdraw and deposit

Renzo Protocol's RestakeManager and WithdrawQueue contracts fail to incorporate user-defined slippage limits or execution deadlines in their primary deposit and withdrawal entry points. When users deposit collateral assets or burn ezETH, token minting and redemption rates are evaluated using dynamic TVL calculations and external oracle feeds. Because users cannot set minimum output thresholds or transaction expiration timestamps, pending transactions subject to market volatility or mempool delays can execute at unfavorable exchange rates. This missing protection exposes users to value loss from unmitigated price slippage and potential front-running during transaction settlement.

Renzocode4renaJun 7, 2024Open
mediumOracle manipulationEVM-Solidity$0

Renzo: Incorrect exchange rate provided to Balancer pools

The xRenzoDeposit contract, serving as an L2 rate provider for Balancer pools, erroneously returned a static, internal state variable instead of current market data for exchange rate calculations. This led to price divergence where pool operations were executed using stale valuations while the rest of the protocol used accurate oracle rates. This mismatch created economic opportunities for arbitrageurs to exploit the stale pricing in Balancer pools and caused systemic inaccuracies in the calculation of pool fees.

Renzocode4renaJun 7, 2024Open
mediumReentrancyEVM-Solidity$0

Renzo: Fetched price from the oracle is not stored in `xRenzoDeposit`

Renzo's xRenzoDeposit contract fetches prices from an external oracle inside a view function but fails to store those prices on-chain. This creates a state divergence where the contract internal record (lastPrice) remains significantly behind the actual market price. This desynchronization breaks the 10% price divergence check used for incoming price updates, causing valid updates to revert, and leads to stale pricing if the protocol ever falls back to internal storage.

Renzocode4renaJun 7, 2024Open
mediumOracle manipulationEVM-Solidity$0

Renzo: `calculateTVL` may run out of gas for modest number of operators and tokens breaking deposits, withdrawals, and trades

A Denial of Service vulnerability exists in Renzo's `RestakeManager` contract due to high gas consumption in `calculateTVLs`. The function iterates through nested loops for every operator delegator and supported token, querying strategy share balances and oracle price feeds on each iteration. As the number of operator delegators and tokens increases, the execution gas cost scales quadratically and can exceed the Ethereum block gas limit. Because `calculateTVLs` is called in core protocol operations—including deposits, withdrawals, and rate provider queries—gas limit exhaustion causes these primary protocol functions to revert and freeze operations.

Renzocode4renaJun 7, 2024Open
mediumReentrancyEVM-Solidity$0

Renzo: Not handling the failure of cross chain messaging

The xRenzoBridge contract fails to implement error handling in its Connext xReceive callback, leading to permanently stranded funds. When a cross-chain deposit triggers a revert in the L1 RestakeManager—due to TVL limits, contract pauses, or exchange rate slippage—the entire transaction fails. This lack of resilience allows attackers to use flash loans to artificially exhaust TVL capacity, intentionally causing bridging transactions to fail and trapping liquidity in the cross-chain messaging system.

Renzocode4renaJun 7, 2024Open
mediumLogic errorEVM-Solidity$0

Renzo: Withdrawals and Claims are meant to be pausable, but it is not possible in practice

Renzo's WithdrawQueue contract inherited OpenZeppelin's PausableUpgradeable and exposes an admin-gated pause()/unpause(), but did not apply the whenNotPaused modifier to withdraw() and claim(). As a result, once an emergency pause is triggered, users can still create new withdrawal requests and claim pending assets, defeating the intended circuit-breaker. This undermines the protocol's ability to freeze withdrawals during emergencies or maintenance, exposing funds to risk at exactly the moment the pause was meant to protect them. The finding affects the withdrawal queue's core user entry points.

Renzocode4renaJun 7, 2024Open

All reports in this group

Vulnerability classes disclosed here

Related protocol pages