Cross-contract reentrancy and composability attacks represent a class of vulnerability that arises not from a single contract's logic, but from the unintended interaction between multiple trusted contracts within the Rocket Pool protocol. Unlike a simple reentrancy on a token, these attacks exploit the complex, multi-step call paths that orchestrate minipool lifecycle events, rETH minting, and RPL staking operations. An attacker manipulates the ordering of external calls or the intermediate state between contract invocations to extract value, corrupt accounting, or lock funds.

Cross-Contract Reentrancy and Composability Attacks
Introduction
Analysis of cross-contract reentrancy and composability attack vectors that exploit the interaction logic between Rocket Pool's core contracts.
The classic attack surface involves the rocketMinipool contracts, which make external calls to rocketNetworkPrices for ETH/RPL ratios and to rocketTokenRETH for minting. A composability flaw could allow an attacker to re-enter the minipool's stake or finalize functions after the price oracle is consulted but before the minipool's state is updated, effectively double-counting collateral or bypassing bonding requirements. Similarly, the interaction between rocketNodeStaking and rocketMinipoolQueue during node operator registration creates a state transition window that, if exploited, could allow an operator to claim RPL rewards on a minipool that has already been marked for withdrawal.
Auditors and protocol developers must model these call paths as state machines with external trust boundaries. The fix for these vulnerabilities typically involves enforcing the checks-effects-interactions pattern across the entire composable call chain, not just within a single contract. Rocket Pool's use of ReentrancyGuard modifiers and the strategic placement of state updates before external calls are direct mitigations. For integrators building on Rocket Pool, understanding these systemic risk patterns is critical—a seemingly safe integration with a single contract can become an attack vector when composed with other protocol functions. Chainscore Labs provides composability risk assessments that map these cross-contract call paths and identify latent reentrancy surfaces before they are exploited.
Incident Quick Facts
A structured overview of the systemic risks, failure modes, and affected parties in cross-contract reentrancy and composability attacks targeting Rocket Pool's minipool, rETH, and RPL staking contracts.
| Risk Area | Failure Mode | Affected Actors | Mitigation Action |
|---|---|---|---|
Minipool Finalization | Reentrancy during minipool creation or finalization allows an attacker to manipulate the deposit count or steal ETH before the minipool is locked. | Node Operators, Deposit Pool, rETH Holders | Audit state-changing functions for CEI pattern violations; implement reentrancy guards on minipool lifecycle transitions. |
rETH Minting/Burning | A composability attack manipulates the rETH/ETH exchange rate during a mint or burn by reentering the pricing oracle mid-transaction. | rETH Holders, DEXs, Lending Protocols | Verify oracle update logic is isolated from token transfer callbacks; use pull-over-push patterns for reward distributions. |
RPL Staking Contract | Reentrancy in the RPL staking or withdrawal function allows an attacker to drain staked RPL or claim rewards multiple times. | Node Operators, RPL Stakers | Ensure RPL staking operations complete all state changes before external calls; use OpenZeppelin's ReentrancyGuard on all staking paths. |
Network Price Oracle | A malicious contract reenters the network price update function to create a stale or manipulated price, affecting minipool collateralization checks. | Node Operators, Liquidators, rETH Holders | Separate oracle update logic from any external call context; implement a time-weighted average price (TWAP) mechanism. |
Smoothing Pool Rewards | An attacker claims rewards and reenters the distribution function before their balance is deducted, draining the smoothing pool. | Smoothing Pool Participants, Node Operators | Apply the checks-effects-interactions pattern strictly in reward distribution; use a Merkle-based claim system to isolate state changes. |
Cross-Protocol Composability | A flash loan or multi-protocol call sequence exploits Rocket Pool's interaction with an external DeFi protocol, manipulating collateral ratios or triggering unfair liquidations. | DeFi Integrators, Lending Protocols, Liquidators | Conduct formal verification of cross-protocol call paths; establish circuit breakers for large or rapid collateral changes. |
Withdrawal Address Setting | Reentrancy during the one-time setting of a validator's withdrawal address could redirect future ETH withdrawals to an attacker. | Node Operators, Validators | Ensure the withdrawal address setter is a one-way, non-reentrant function with no external calls before state finalization. |
Root Cause Pattern: The Composability Attack Surface
Rocket Pool's architecture creates a complex web of interdependent contracts where external calls during sensitive state transitions have historically been the primary attack vector.
The core vulnerability pattern in Rocket Pool's composability attacks stems from the protocol's fundamental design: minipool creation, staking, and reward distribution require coordinated state changes across multiple contracts including the RocketMinipoolManager, RocketNetworkPrices, and RocketTokenRETH. When these contracts make external calls to untrusted addresses—such as transferring ETH to a node operator during minipool creation or minting rETH to a depositor—before completing all internal state updates, they expose a reentrancy window. Attackers exploit this window by deploying malicious contracts that re-enter the protocol mid-transaction, manipulating the not-yet-updated state to drain funds, mint unbacked rETH, or extract excess RPL rewards.
The most dangerous call paths involve the RocketDepositPool and RocketTokenRETH interaction during deposits, where the rETH exchange rate is computed from the current network state. If an attacker can reenter and alter the deposit pool balance or the total rETH supply between the rate calculation and the mint operation, they can mint rETH at a manipulated, favorable rate. Similarly, minipool finalization and withdrawal processes that distribute ETH to node operators before updating the minipool's internal status have been exploited to drain the ETH multiple times. These are not theoretical concerns—the protocol's own security history and audits have repeatedly identified and patched such cross-contract reentrancy vectors, often by restructuring state changes to follow the checks-effects-interactions pattern or by implementing reentrancy guards like OpenZeppelin's ReentrancyGuard on vulnerable functions.
For integrators and auditors, the operational lesson is that any external call made by a Rocket Pool contract during a state-modifying function must be treated as a potential reentrancy point. This includes not only direct ETH transfers but also calls to rETH.transfer(), RPL.transfer(), or any user-supplied address. The protocol's security posture depends on rigorous enforcement of the invariant that all internal accounting is finalized before interacting with external contracts. Teams building on Rocket Pool—whether as node operators, DeFi protocols integrating rETH, or wallet providers—should map the full call graph of any transaction they initiate and verify that the contracts they interact with have been audited for composability risks. Chainscore Labs can assist with protocol impact assessments that trace these call paths and identify residual reentrancy exposure in new integrations or upgrade proposals.
Affected Systems and Stakeholders
Node Operator Impact
Node operators are the primary victims in composability attacks that exploit the minipool lifecycle. A reentrancy bug in the stake() or finalize() functions can allow an attacker to manipulate the recorded debt or bond amount, directly stealing ETH from the operator's bond.
Immediate Actions:
- Monitor Smartnode release notes for mandatory upgrades that patch known reentrancy vectors.
- Verify the integrity of your minipool's state on-chain after any reported incident, specifically checking the
user_deposit_balanceand your bonded ETH amount. - Use simulation tools before interacting with new or upgraded peripheral contracts that integrate with your minipool.
Operational Risk: A successful exploit can lead to a total loss of your bonded ETH and RPL, not just a partial slashing. Operators should factor this tail risk into their capital allocation and consider the protocol's incident response history.
Remediation and Fix Patterns
The systemic fixes Rocket Pool and the broader Ethereum ecosystem have adopted to neutralize cross-contract reentrancy and composability attack vectors. These patterns are now standard for any protocol integrating with Rocket Pool's minipool, rETH, or RPL staking contracts.
Systemic Risk Matrix
Mapping the systemic failure modes, affected actors, and required actions arising from cross-contract reentrancy and composability exploits within the Rocket Pool protocol.
| Risk Area | Failure Mode | Affected Actors | Mitigation and Action |
|---|---|---|---|
Minipool Lifecycle | Reentrancy during minipool creation, staking, or finalization allows an attacker to manipulate the deposit count or steal ETH before the minipool is properly initialized. | Node Operators, rETH Holders, Deposit Pool Users | Auditors must verify checks-effects-interactions patterns in all state-mutating minipool functions. Node operators should monitor for unexpected minipool state transitions. |
rETH Exchange Rate | A composability attack manipulates the rETH/ETH exchange rate by reentering the deposit pool or burning mechanism, leading to an incorrect mint or burn amount. | rETH Holders, DeFi Protocols using rETH as collateral, Arbitrageurs | Integrators should implement circuit breakers based on off-chain oracle data. Risk teams must simulate cross-protocol call paths that touch the rate calculation. |
RPL Staking and Rewards | A reentrancy bug in the RPL staking contract allows an attacker to claim rewards multiple times or withdraw staked RPL while a claim is being processed, draining the rewards pool. | RPL Stakers, Node Operators | Review the claim and unstake functions for reentrancy vulnerabilities. Governance delegates should fund audits specifically targeting the interaction between staking and reward distribution logic. |
Smoothing Pool Accounting | An attacker exploits a composability flaw between the smoothing pool and a minipool's reward distribution, allowing them to claim a disproportionate share of rewards or drain the pool. | Smoothing Pool Participants, Node Operators | Verify the atomicity of reward submission and distribution. Node operators should monitor the smoothing pool's total balance for anomalous decreases. |
Cross-Protocol Composability | A flash loan or cross-protocol call path uses a Rocket Pool contract as an intermediary in a multi-step exploit, even if the Rocket Pool contract itself is not the vulnerable endpoint. | All Rocket Pool Users, Partner DeFi Protocols | Protocol developers should map all external call vectors and assess their composability risk. Integrators must understand how Rocket Pool's contracts behave when called from untrusted contracts. |
Network Price Oracle | A reentrancy attack on the oracle update mechanism allows an attacker to submit a stale or manipulated price between the time the price is reported and when it is stored, affecting RPL bond requirements. | Node Operators, Liquidators | Ensure oracle update functions are protected against reentrancy. Risk teams should monitor the time delay between price report submission and on-chain finalization. |
Withdrawal Processing | A composability attack during ETH withdrawals from a minipool allows an attacker to reenter the withdrawal function before the minipool's state is updated, leading to a double-spend. | Node Operators exiting validators, rETH Redeemers | Auditors must verify the withdrawal function's state update logic. Exchanges and large holders should test withdrawal flows against the latest contracts on a testnet before mainnet interaction. |
Detection and Prevention Checklist
A practical checklist for protocol developers, auditors, and integrators to detect and prevent cross-contract reentrancy and composability attacks in systems that interact with Rocket Pool's minipool, rETH, and RPL contracts.
What to check: Every external call made by your contract to a Rocket Pool contract (e.g., rocketMinipoolDelegate, rocketNetworkPrices) and any subsequent external calls that Rocket Pool makes back to your contract or to tokens.
Why it matters: Composability attacks exploit the interaction between multiple contracts where state is updated in one contract but not yet in another. A minipool finalization that triggers a callback to your contract before Rocket Pool updates its internal state can lead to double-spending or incorrect share calculations.
Signal of readiness: A complete call-graph diagram exists showing all reentrant paths, and a formal verification tool (Certora, Foundry invariant tests) has proven that no state inconsistency can occur across the multi-contract call chain.
Source Resources
Source resources for analyzing Cross-Contract Reentrancy and Composability Attacks in Rocket Pool. Use these references to validate call paths, upgrade history, disclosure status, governance context, and remediation controls before making integration or risk decisions.
Looking to build on a specific blockchain?
We build smart contracts, DeFi applications, wallets, tokenization platforms, and blockchain infrastructure across the major ecosystems teams choose today. That includes Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Solana, Sui, Aptos, Hedera, Stellar, and NEAR, with support for additional EVM and non-EVM networks based on your product requirements.
EVM ecosystems
- Ethereum
- Arbitrum
- Optimism
- Polygon
- Avalanche
- Cronos

Non-EVM ecosystems
- Solana
- Sui
- Aptos
- Hedera
- Stellar
- NEAR
Additional ecosystems
- Polkadot
- Cosmos
- TON
- Cardano
- Algorand
- Tempo
Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.
Frequently Asked Questions
Common questions from auditors, protocol developers, and risk teams analyzing cross-contract reentrancy and composability attack surfaces in Rocket Pool's minipool, rETH, and RPL staking architecture.
Rocket Pool's minipool lifecycle involves a complex sequence of external calls across multiple contracts during deposit, staking, withdrawal, and finalization. The protocol makes external calls to the Beacon Chain deposit contract, transfers ETH between the deposit pool and minipools, and interacts with the RPL staking contract. The primary risk vectors are:
- Minipool creation and finalization: The deposit flow involves ETH moving from the deposit pool to the minipool, then to the Beacon Chain deposit contract. If state updates occur after external calls, an attacker could re-enter and manipulate the minipool's status.
- rETH minting and burning: The rETH token contract calculates the exchange rate based on the protocol's total ETH backing. A reentrancy during minting or burning could allow an attacker to extract value by manipulating the rate mid-transaction.
- RPL staking and withdrawal: The RPL staking contract holds bonded tokens and interacts with minipools to check collateralization. A reentrancy during withdrawal could allow a node operator to withdraw RPL while still appearing bonded.
Auditors should focus on the ordering of state changes versus external calls in these paths, particularly where ETH or tokens are transferred before internal accounting is updated.
Delivering blockchain solutions for 5+ years.
We have partnered with 50+ leading DeFi protocols, NFT ecosystems, and fintech innovators to build secure, scalable, and capital-efficient blockchain products.
Selected Partners & Clients
“I've been working with Chainscore Labs for last 3+ years, they've consistently delivered with strong ownership across multiple projects. The team is reliable and detail-oriented.”
How to get started?
If you're looking for blockchain integration, ChainScore Labs has 5+ years of experience helping teams build and integrate exchanges, wallets, smart contracts, tokenization solutions, and protocol-connected products, we can help you choose the right path, integrate securely, and get to production faster. Our team consists of experienced blockchain developers and architects who can help you with your blockchain integration needs.
Exploration & Strategy
Define your product goals and choose the right blockchain architecture for your use case.
Architecture & Design
Design the smart contracts, tokenomics, and security parameters of your system.
Development & Integration
Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.
Security & Launch
Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.
Discover our
blockchain development services.
We build production-grade blockchain solutions for top-tier projects across DeFi and Web3.
Need a blockchain engineering team?
Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.


