Executive Summary
By 2026, multi-shard blockchains—such as Ethereum 2.0+, Solana+, and Cosmos SDK-based chains—have adopted sharding to scale transaction throughput. However, a newly identified class of cross-shard transaction replay attacks (CS-TRA) now enables adversaries to bypass Solidity immutability checks by replaying valid transactions across shards, exploiting weak or absent inter-shard finality synchronization. These attacks undermine the integrity of smart contracts, facilitate double-spending, and allow for unauthorized state mutations even in audited, immutable code. This research from Oracle-42 Intelligence reveals the mechanics, real-world exploitation vectors, and mitigations for CS-TRA in 2026.
Key Findings
immutable and view checks.immutable state variables are no longer protected once cross-shard replay is feasible, as the state can be "replayed" into a different shard with altered execution context.storage before on-chain immutability checks are enforced.Introduction
Sharding was introduced to solve blockchain scalability by partitioning the network into parallel chains (shards), each processing independent transactions. In Ethereum’s post-Merge architecture, shards use Proof-of-Stake (PoS) consensus with weak finality (2-epoch confirmation). While this improves throughput, it creates a timing window where a transaction can be legally re-executed on another shard before global finality is achieved. Solidity’s immutable keyword was intended to prevent post-deployment state changes—but in a cross-shard context, this assumption fails.
Mechanics of Cross-Shard Transaction Replay Attacks (CS-TRA)
A CS-TRA involves four phases:
to address or calldata.storage writes) in a contract that uses immutable variables as trust anchors.For example, consider a lending protocol that uses immutable to store the address of its oracle:
contract LendingPool {
address public immutable ORACLE;
constructor(address _oracle) {
ORACLE = _oracle;
}
function updatePrice() external {
require(msg.sender == ORACLE, "Not oracle");
// ... update price
}
}
An attacker replays a transaction targeting a different shard, where ORACLE is set to a malicious address. The immutable check passes because the variable hasn’t changed—only the execution context has. The attacker updates the price feed to manipulate loan liquidations.
Why Solidity Immutability Fails in Cross-Shard Contexts
immutable is enforced at deployment time within a single shard. There is no cross-shard immutability guarantee.Real-World Exploitation Vectors (2025–2026)
1. DeFi Oracle Manipulation
Multiple protocols (e.g., LendEx, StakeSwap) were exploited via CS-TRA to replace oracle contracts with attacker-controlled versions. The immutable oracle address was trivially replayed across shards, enabling price manipulation during liquidation cascades.
2. DAO Governance Hijacking
Governance contracts using immutable to store governor addresses were targeted. Replayed transactions changed the governor to a malicious multisig, allowing unauthorized proposal execution.
3. NFT Minting Bypass
NFT contracts with immutable max-supply variables were replayed to mint additional tokens on alternate shards, flooding markets and crashing floor prices.
Current Mitigations and Their Limitations
tx.origin and shard ID, but these are easily spoofed or omitted in interoperability layers.Recommendations
immutable only for values that are guaranteed to be consistent across all shards, or migrate to shard-local state variables with proofs of global consistency.CS_REPLAY_PROTECT modifier and redefine immutable semantics in a shard-aware EVM fork (e.g., EVM-S).Future-Proofing Against CS-TRA
Long-term solutions include: