StakeDAO
An attacker stole the private key to StakeDAO's deployer wallet on Arbitrum and used it to redirect the vsdCRV token's trusted cross-chain link to a contract they controlled on Ethereum. They then forged a cross-chain message that minted roughly 5.4 trillion vsdCRV out of thin air, dumped what little liquidity existed for about 43.78 ETH (around $91,000), and bridged the proceeds to Ethereum where the funds still sit untouched. Locked sdCRV collateral on Ethereum, other StakeDAO products, and user deposits were not affected. The team has already locked out the compromised key and reset the cross-chain trust setting.
StakeDAO was not in our scored portfolio at the time of this attack. The failure mode, a single deployer wallet holding outsized authority over cross-chain trust settings without a multisig or timelock in front of it, is the same pattern we flag in roughly ninety other protocols we do score, and is a near-mirror of the same weakness that broke Drift, Polymarket, and Kelp DAO earlier this year.
The attacker, using the compromised StakeDAO deployer wallet, signed a setPeer transaction on Arbitrum that pointed the vsdCRV token's trusted cross-chain peer at an attacker contract on Ethereum. A forged cross-chain message from that contract then minted 5.4 trillion vsdCRV to the attacker's wallet, which dumped them across 28 swaps and bridged the proceeds via Stargate to Ethereum mainnet.
Full forensic detail
Step-by-step reconstruction, root cause, counterfactuals, remediation, and disclosure timeline.
Exploit anatomy
Root cause
StakeDAO's vsdCRV token on Arbitrum is implemented as a LayerZero V2 OFT, which lets the contract owner reconfigure the trusted Ethereum-side counterparty at any time via a single setPeer call. The deployer wallet that held this owner authority was a single externally owned account, not a multisig, and there was no timelock or cooldown between a peer change and the first cross-chain message accepted from the new peer. There was also no rate limit on inbound mint amounts. Once the attacker had the private key, the entire cross-chain mint authority on Arbitrum was a single transaction away. The smart contract code is not buggy; the operational architecture around it is the failure surface.
// Simplified architecture of the failure surface
function setPeer(uint32 _eid, bytes32 _peer) external onlyOwner {
peers[_eid] = _peer; // single state write reconfigures cross-chain trust
emit PeerSet(_eid, _peer);
}
function _lzReceive(Origin calldata _origin, ...) internal override {
// onlyPeer check: any caller whose source matches peers[srcEid] passes
require(peers[_origin.srcEid] == _origin.sender, "OFT: invalid peer");
_mint(_recipient, _amount); // attacker-controlled because peer was attacker-controlled
}Prevention analysis
Similar incidents
Same cross-chain trust binding architecture, different compromise vector. Kelp was hit at the verifier infrastructure layer (poisoned RPC nodes feeding a single DVN); StakeDAO was hit at the OApp owner layer (one private key exfiltrated). Both end the same way: a forged cross-chain message authorizing unauthorized minting on the destination chain.
Cross-chain bridge admin custody compromised, leading to unauthorized minting and drain of bridge-controlled assets. Identical risk class at the architectural level: privileged custodial role over cross-chain trust binding with insufficient operational hardening.
Single externally owned account holding outsized authority, private key extracted by a flaw in the address-generation tool. Same anti-pattern at a different layer of the stack.
Operational private key compromise, single wallet with admin-equivalent authority over protocol-adjacent value. Same dimensional failure: operational security plus access control. StakeDAO is the more severe variant because the compromised authority controlled cross-chain trust rather than a hot wallet balance.
Admin key compromise leading to a single privileged transaction authorizing large-scale value extraction. Centralized admin authority with no multisig or timelock wrapping.
Remediation
Timeline
Get your protocol scored across 12 dimensions, or request ongoing coverage.