How Lending Markets Processed the rsETH Shock
How forged rsETH moved through bridges, lending markets, liquidations, and recovery capital.
Introduction
On April 18, an attacker minted $292.4M in rsETH by forging a cross-chain message through Kelp DAO's Unichain to Ethereum LayerZero-powered bridge. The forged message caused the bridge's Ethereum adapter to release escrowed rsETH to an Ethereum address controlled by the attacker, without any corresponding deposit on the source chain.
The exploit was a single-attester bridge failure, but it impacted downstream. Once the forged rsETH entered lending markets, each venue's design determined what could still move: collateral, debt, exits, rates, and recovery capital.
The bridge configuration was visible before the exploit. A 1-of-1 DVN was the default in LayerZero V2's setup documentation, and Aave's technical review of rsETH on Arbitrum and Base described Kelp's LayerZero bridge dependencies and suggested expanding beyond LayerZero's DVN. Across LayerZero, 47% of active OApps still used 1-of-1 DVN configurations before the incident.
The oracle in Aave lending was not designed for supply-side shocks. CAPO defended secondary-market depeg, not a forged-mint event that diluted the backing base by 18.5%. After the exploit, one in every six tokens post-exploit was unbacked.
The rate curve was utilization-aware under normal conditions. Under a freeze, the feedback loop breaks: high utilization signals high rates against borrowers who cannot respond. Pre-intervention rates would have eroded a 14x borrower's equity by 6.2% over a 30-day freeze. Without LlamaRisk's 6 pp manual cut, the curve would have charged borrowers for an exit that did not exist.
Liquidators could not sell enough rsETH for the bonus to cover the exit. The 1% Aave bonus was breached at 84 rsETH on the primary Uniswap V3 pool. Aave held 476,600 rsETH as collateral. Liquidators abstained because the math did not work, and the freeze confirmed a state that had already become economically impossible.
The Bridge
The LayerZero bridge uses the OFT model, in which native rsETH locked is matched by wrapped rsETH minted on destination chains. The security of any transfer reduces to a single question: who attests that the escrow event actually occurred? LayerZero's answer is Decentralized Verifier Networks, configured at deployment. The rsETH adapter was configured so that every packet through the bridge was authenticated by one team operating one verifier. Running a redundant DVN across the bridge's lifetime would have cost hundreds of dollars in fees against a TVL exposure measured in ten figures.
The attacker did not need signing keys. The two RPC nodes the verifier relied on were poisoned to return manipulated state data, while a denial-of-service attack forced failover away from the clean nodes. With the DVN signing off, the adapter released rsETH.
Impact
Liquidity Constraints in Aave
The attacker distributed 116,500 rsETH across seven sub-wallets, then moved through the broader DeFi stack. The first tracked lending borrow was a probe-sized Aave V3 WETH borrow on Ethereum at 17:40 UTC ($2,328); the first Compound V3 borrow followed a minute later at 17:41 UTC ($2.28M). Over the next two hours, the attacker opened 26 borrow positions across Aave V3 and Compound V3 totaling 94,583 WETH and 821 wstETH, worth approximately $225.9M.
Source: Onchain traces, Aave Governance Forum, and LayerZero post-mortem posts.
Both Aave V3 Core WETH pools climbed to 100% utilization within three hours:
- Arbitrum Core: 80.9% to 100%, crossing 95% at 18:06 UTC, thirteen minutes after the attacker's first Arbitrum borrow at 17:54 UTC.
- Ethereum Core: 88.9% to 100%, crossing 95% at 19:28 UTC. Supply fell from 164,595 to 130,380 WETH over six hours; available WETH dropped from 18,341 to roughly 2.
WETH utilization on Aave V3 Ethereum Core
and Aave V3 Arbitrum Core.
Source: Summerstone analysis. Reference line at 95% marks near-full utilization; Uoptimal (92%) is shown separately.
Both pools started the window below the 92% Uoptimal kink and crossed into the Slope2 region as the exploit propagated, then pinned at 100%. Once available WETH liquidity reached single digits, depositor withdrawals depended on new deposits and borrower repayments returned to the reserve.
The $6.2B Aave net outflow over 24 hours and the TVL move from $26.4B to $18.6B ran through more than WETH, including stablecoin reserves.
Decomposing the WETH Utilization Plateau
On the Aave V3 Ethereum Core and Aave V3 Arbitrum Core WETH pools, the attacker's own borrow accounts for essentially all of the utilization increase from baseline to peak. Withdrawals were substantial, but existing borrowers repaid loans in parallel on Aave V3 Ethereum Core, shrinking the borrow side at roughly the same pace the suppliers were exiting.
In the six hours after:
- Aave V3 Ethereum Core shed 34,000 WETH net from supply: 65,000 WETH gross withdrawals, offset by 31,000 WETH of new deposits.
- Borrows rose 27,000 WETH net despite 53,000 WETH flowing in from the attacker, meaning existing borrowers net-repaid roughly 26,000 WETH as leveraged positions closed.
Utilization and available liquidity describe the same state from different vantage points:
| Time UTC | Supply WETH | Borrows WETH | Available WETH |
|---|---|---|---|
| 17:30 | 164,594.83 | 146,254.02 | 18,340.82 |
| 20:00 | 144,895.11 | 144,890.61 | 4.50 |
| 23:15 | 130,379.80 | 130,377.91 | 1.89 |
At the end of the 6-hour window, Aave V3 Ethereum Core utilization moved from 88.86% to 99.998%, while available liquidity fell from 18,341 WETH to 1.89 WETH. Utilization and available liquidity told different stories because suppliers, borrowers, and attacker debt moved together.
Aave V3 Ethereum Core WETH reserve
Source: Summerstone analysis. Time window: 15-minute buckets, April 18 17:30 to 23:15 UTC.
The exit response extended beyond WETH through two routes running in parallel.
Route A was direct: some Aave WETH suppliers, and some direct WETH holders, withdrew WETH and swapped to stables on DEXs. Aggregate Ethereum WETH-to-stable swap volume across Uniswap, Curve, and Balancer reached 19,100 WETH ($45.6M) over the six-hour window, with DEX flow picking up at 18:00–18:30 UTC, roughly an hour ahead of the Aave WETH withdrawal peak at 19:15–19:30 UTC.
Route B was indirect: suppliers borrowed stablecoins against existing Aave collateral instead of unwinding to WETH. Aave V3 Ethereum Core USDT utilization rose from 51.6% to 86.6% over the same window, a +35 pp move. USDC rose 4 pp and USDe was essentially flat; stable-borrow pressure concentrated on USDT specifically.
DEX liquidity absorbed the first wave, while Aave V3 Ethereum Core's USDT market absorbed sustained pressure, peaking at 86.6% at 23:15 UTC.
Borrowers Had No Clean Exit
Per the LlamaRisk March 2025 ARFC, rsETH e-mode carried a 93% LTV and 95% liquidation threshold, supporting maximum leverage of approximately 14.29x for WETH borrowed against rsETH collateral. A borrower at maximum leverage sits 2 percentage points below the 95% liquidation threshold. Thin but survivable under normal conditions, where a holder can add rsETH, repay debt, or exit. Under frozen markets: no new rsETH posted, no clean exit, elevated borrow rate accruing against a shrinking equity buffer.
At the moment of the drain, 18 non-attacker holders held Aave V3 Ethereum Core rsETH e-mode positions above 90% LTV, with aggregate collateral of $995.2M. 17 of those 18 were already above the 95% liquidation threshold, technically liquidatable, with $988.4M in collateral at risk.
Aave V3 Ethereum froze rsETH markets at 19:03 UTC, 88 minutes after the drain. A freeze in Aave V3 stops new supplies and new borrows but preserves liquidations and repayments: the 17 above-threshold positions were available for anyone to liquidate. Zero rsETH-collateral liquidation events occurred after the freeze and before the pause. The freeze formalized a state that had already become economically impossible.
On the borrower side, most affected holders made no adjustments. Of the 17 above-threshold users, four made partial adjustments within the first six hours. Repaying debt required WETH (constrained), reducing leverage required posting more rsETH (the freeze blocked it) and exiting at market required a functioning rsETH venue (none existed). The LTV distribution did not improve over 72 hours.
Aave V3 charges every WETH borrower the same rate, regardless of collateral. The WETH reserve has one interest rate curve. E-mode adjusts how much you can borrow against a given collateral but not the cost of the WETH loan. As Aave V3 Ethereum Core WETH utilization crossed 95% and later pinned at 100%, the reserve reached an 8.35% peak variable borrow APR. That rate applied to rsETH borrowers, weETH borrowers, wstETH borrowers, and anyone borrowing WETH against other collateral outside e-mode. Collateral-type risk is siloed by e-mode; rate-path risk is shared across every strategy borrowing from the same pool.
For leveraged rsETH e-mode borrowers, the elevated rate compounded the exit problem. What had worked as earning the rsETH staking yield (3 to 4% APR during this period) while paying the WETH borrow rate inverted at an 8% borrow cost: carry moved from roughly +1 pp to -4 pp. Closing the position required selling rsETH into a thin market or repaying WETH debt in a constrained reserve. Both paths were blocked.
The Rate-Curve Intervention
The Risk Stewards cut WETH rate-curve parameters on Aave V3 across Arbitrum, Base, Mantle, and Linea. On indexed reserves, Linea WETH reached 8.5% variable borrow APR over April 17-21, and Mantle WETH reached 10.5% before settling at 3.0% after the intervention.
Under a freeze, the rate curve's feedback mechanism breaks: high utilization signals high rates, but neither new supply nor borrower repayment can respond. The cost accrues. Aave's Slope2 is utilization-aware, but not duration-aware. Governance intervened manually because no automated decay existed to reduce the rate over time under a freeze. The rate-strategy contracts expose parameters that could support a time-aware design.
The rate cut reduced accrual pressure on leveraged rsETH borrowers. At 14x leverage (near the 14.29x e-mode max), a 9% pre-intervention borrow-rate assumption reduces equity by 0.21% per day. A 3% post-intervention borrow-rate assumption matches the 3% APR rsETH staking-yield input, so modeled staking income offsets modeled borrow cost. Over a 30-day freeze under the 9% pre-intervention assumption, the model shows 6.2% equity erosion for a max-leverage borrower.
Equity erosion under static vs post-intervention rate curves, 14x leverage
Source: Summerstone analysis. Thirty-day equity trajectory at 14x leverage, using 9% and 3% borrow-rate assumptions and holding rsETH yield at 3% APR.
Leverage turns a rate change into a larger equity change. Our calculation applies (L−1)/365 to each 1 pp change in borrow APR: 21 bps per day at 14x, 10 bps at 7x, and 3 bps at 3x. For the 17 positions above the liquidation threshold, which held $988.4M of aggregate collateral and roughly $50M of equity, the uncut rate would have reduced equity by about 0.8% over the four-day Risk Stewards window. At 14x, the same calculation reaches the liquidation threshold after roughly 130 days of rate accrual and reaches zero equity after roughly 480 days. Under the 3% post-cut assumption, neither threshold is reached.
On April 23, Aave escalated the rsETH market posture from freeze to pause. A pause blocks operations on the paused rsETH reserve, including new supply, withdrawals, and liquidations against rsETH collateral. The rate cut adjusted the cost of holding a trapped position; the pause narrowed the remaining adjustment path to debt-side actions on reserves that were still open.
Liquidation Capacity and Spot-Market Slippage
The rsETH positions were technically liquidatable, but the market could not clear them. Just before the drain, Aave V3 Ethereum held 476,600 rsETH ($1.421B) of collateral across the Core and Lido instances, with nearly all of it on Core. In the prior 24 hours, rsETH DEX trading across Uniswap, Curve, and Balancer totaled $37K, and the largest trade was $23K. The Aave collateral position was roughly 38,000 times larger than that daily DEX volume.
A liquidation only works if the bonus covers the exit cost. Here it did not. Aave liquidators would receive a 1-2% bonus, but selling rsETH into the primary Uniswap V3 rsETH/WETH pool exceeded the 1% bonus at a 100 rsETH sale. At the April 18 open, the pool had approximately 8,285 rsETH of virtual depth on the rsETH side:
| Sell size (rsETH) | Approx. USD | Slippage % | vs. liquidation bonus |
|---|---|---|---|
| 10 | $25K | 0.12% | within 1% bonus |
| 100 | $250K | 1.19% | exceeds 1% bonus |
| 1,000 | $2.5M | 10.8% | 5x the 2% bonus |
| 10,000 | $25M | 54.7% | exceeds 2% bonus |
| 47,625 (10% of position) | $119M | 85.2% | exceeds 2% bonus |
Source: Summerstone analysis. Slippage estimates for selling rsETH into the primary Uniswap V3 rsETH/WETH pool at the April 18 open.
The 1% bonus stops covering slippage at approximately 84 rsETH. The 2% bonus stops covering slippage between 150 and 180 rsETH. The Aave collateral position was 476,600 rsETH, roughly 2,700 times the larger break-even lot size. Liquidating even 1% of the position, 4,763 rsETH, would have cost approximately 42% in slippage against a 2% bonus.
Actual trading showed the same constraint. On April 17, the baseline was 45 trades, 9.8 rsETH, $25.4K of total volume, and a largest trade of 1.85 rsETH. During the acute six-hour window, volume rose to 451 trades and 7,602 rsETH ($19.0M), roughly 750 times the baseline. But the average trade was 16.9 rsETH, the largest sell was 1,250 rsETH, and observed primary-pool sells mostly cleared with less than 10 basis points of slippage. The market processed many small exits, not liquidation-sized sales.
Pool depth also fell. Virtual rsETH depth moved from 8,285 to 6,217 between the April 18 and April 19 opens, a 25% withdrawal of LP capital. The available exit route shrank during the stress window.
The secondary-market exit could not absorb the collateral size. The freeze prevented forced clearing into a market that did not have enough depth.
The Source-Side Exit: Kelp's Withdraw Queue
Kelp's native redemption path did not absorb the stress. Kelp's withdrawal-manager and deposit-pool contracts paused at 18:21 UTC on April 18, before Aave V3 Ethereum froze rsETH.
Standard withdrawal requests stayed within recent queue activity before the pause. From April 1 through April 17, withdrawal requests averaged 5.4 per day, while completions averaged 5.3 per day. On April 18, users submitted three requests for 552.9 rsETH before the pause.
Queue processing also stopped rather than scaled. The withdrawal-manager unlock event shows baseline processing near 66 rsETH per day; on April 18, one unlock batch processed 0.039 rsETH before activity stopped.
Instant withdrawals do not change the conclusion. Fee events show two instant-withdrawal events from one user between the drain and the pause, both before 18:17 UTC. The fee events confirm that instant withdrawals occurred, but they do not show the amount of rsETH redeemed.
The source-protocol exit was switched off before withdrawal demand broke from recent activity.
The Risk Model Missed Supply Integrity
-
Supply integrity was not modelled. The March 2025 Aave ARFC reviewed rsETH depeg, ETHx slashing, liquidation capacity, and leverage exposure. The exploit instead changed how many rsETH claims existed without changing how much ETH backed them: Ethereum had approximately 629,722 legitimate rsETH outstanding before the drain, and the forged 116,500 rsETH lifted supply by 18.5%. One in every six rsETH on Ethereum no longer had matching backing.
-
CAPO watched the exchange rate, not the backing base. The lending market kept reading collateral value from a price input that no longer captured the asset's claim structure.
-
The freeze bought time and trapped balance sheets. It stopped new rsETH supply and prevented further collateral expansion, but borrowers still needed WETH to repay and kept accruing interest while collateral-side paths were closed.
How Lending Markets Processed the Shock
The question after the Aave freeze was not only who held rsETH. It was which markets could still process exits, borrowing demand, and collateral movement without spreading the same constraint to every borrower.
Spark Had Already Narrowed the Route
Spark began deprecating rsETH on January 29, 2026. The action froze the rsETH reserve, preventing new rsETH supply while leaving existing positions intact. The same day, Aave launched rsETH e-mode, allowing users to borrow WETH against rsETH at high capital efficiency.
PhoenixLabs framed the decision as efficiency and risk-surface cleanup: rsETH generated low usage, concentrated activity, and weak risk-adjusted return. Spark stepped away from the collateral just as Aave opened a more attractive venue for rate-sensitive rsETH borrowers.
Spark had not built its WETH market around the high-leverage rsETH loop. When borrowers and suppliers looked for another venue, Spark had capacity because it had already decided the collateral did not justify the capital it would tie up. That is the point, not that Spark predicted the bridge exploit.
After April 18, Spark's residual rsETH exposure totaled $37,300 (15.32 rsETH).
Spark had two protections: it had already reduced the asset's path into the market, and the remaining market design would have capped the damage if that path had stayed open.
Spark's Three Structural Protections
Spark also had three controls that would have limited the same shock even if rsETH had remained listed.
| Spark control | What it limits | Why it mattered for rsETH |
|---|---|---|
| Rate-limited supply cap | How much new collateral can enter over a time window | Forged rsETH could not enter the market all at once |
| Borrow cap | How much WETH can be extracted from the market | Even if unbacked collateral enters, the debt side has a hard ceiling |
| Three-party median oracle | Price input from multiple independent feeds, with Uniswap TWAP fallback | A single feed cannot move the lending-market price on its own |
Source: Sam MacPherson (@hexonaut) post-incident comments and post-incident coverage of Spark's rsETH exit.
These controls do not need to identify the bridge exploit in advance. They cap how much collateral can enter, how much debt can leave, and how quickly a price input can change lending state. The median oracle would not solve dilution by itself, but paired with supply and borrow caps it would have reduced the amount of unbacked collateral that could turn into borrowed WETH.
Rotation Followed Available Capacity
The same leveraged LRT/WETH trade existed outside Aave across Morpho, Spark, Fluid, and Upshift, with yield-venue exposure through Yearn and Beefy. Pendle was not an active rsETH route during the incident: its mainnet PT-rsETH markets had expired and Ethereum showed no rsETH-linked Pendle V2 swap activity.
On Morpho, markets are isolated at the pool level. Each collateral/loan pair has its own rate curve and capital.
- The rsETH/WETH market entered the incident at 87.6% utilization and hit 100% after a day. Two of the three non-rsETH LST/WETH markets in scope followed: weETH/WETH large moved from 89.7% to 99.98%, and wstETH/WETH medium moved from 87.5% to 100%.
- wstETH/WETH large moved differently: utilization stayed near 90% as supply contracted from 39,853 to 30,394 WETH and borrows fell by a matching 8,466 WETH. Curated vaults reallocated out, borrowers contracted in step, and each market moved on its own path.
Spark became the clearest destination for borrowers and suppliers leaving Aave-linked routes. Spark recorded 23,881 WETH ($55M) of new WETH borrows across 208 transactions from 42 unique wallets, after borrowers had repaid 737 WETH net in the prior 24-hour baseline. Net deposit inflows reached 40,088 WETH ($92M), 58,264 wstETH ($166M), and 14,179 weETH ($36M), a combined $293M net inflow. The rotation was not only a flight from Aave; it was a search for markets where collateral and debt could still be adjusted.
The first visible Aave-to-Spark move was the atomic migration by 0xb8a451 at 19:51 UTC on April 18. By April 23, cumulative net supply inflows to Spark across WETH and LST collateral had reached $1.14B, with wstETH deposits alone accounting for $813M, and cumulative net new WETH borrows grew to $170M.
The wallet-level overlap supports direct rotation without overstating it. Thirty-eight same-wallet, same-asset overlaps withdrew $228.6M from Aave V3 Ethereum and deposited $304.7M into Spark during the 24-hour incident window. Not all Spark inflow came from matched Aave withdrawals, but the pattern was visible.
Compound V3 and Euler both froze rsETH markets. On Compound V3 the attacker had already opened 11,963 WETH ($28.3M) in two transactions before the freeze. Euler's attacker-side exposure was smaller, and no public dollar figure has been confirmed.
Across WETH, wstETH, and weETH, Aave V3 Ethereum shed $4.48B net supply from April 18 through April 23. Spark recorded $1.10B net inflow across the same three assets over the same dates, or $1.17B of positive inflow from April 19 through April 23 after its April 18 outflow.
Curators on rsETH-Exposed Vaults
Morpho's isolated-market design contained the direct rsETH impact. The rsETH/WETH Morpho Blue market held approximately 529 WETH ($1.2M) in total supply on April 17, 2026, concentrated in 2 supplier positions per Morpho's post-incident reporting. The April 24 Morpho UI snapshot shows two material lenders: MEV Capital's wETH MetaMorpho vault at 76.56% of market supply and a karpatkey-managed Gnosis Safe multisig at 23.43%.
The karpatkey position requires a mandate distinction. karpatkey operates two categories on Morpho: curated MetaMorpho vaults under the KPK brand (KPK ETH Prime, etc.), and direct-lending positions held by DAO treasuries under management mandate. The 0x58e6 multisig is a DAO client's direct lending decision through a karpatkey-managed Safe. KPK ETH Prime held its own direct rsETH exposure capped at approximately 2.3% of vault TVL.
karpatkey's curator-side response was active. Exit agents activated within minutes, zeroing supply caps and withdrawing available liquidity as the rsETH/WETH market allowed. The rsETH position was fully exited by April 23, no user funds lost, no bad debt incurred. Deposits on KPK ETH Prime, KPK ETH Yield, and KPK USDC Prime were paused during the incident; the latter two had no direct rsETH exposure but were paused to prevent secondary effects, and have since re-enabled. KPK ETH Prime and KPK ETH Yield avoided direct rsETH losses, but withdrawals remained constrained where their Morpho allocations were tied up in low-liquidity ETH markets.
Gauntlet and Re7 Labs had historical rsETH allocations on the same Morpho market but had net-withdrawn before April 17, leaving their balance at effectively zero. Steakhouse Financial self-disclosed less than $0.01 in KelpDAO exposure and had exited pre-incident.
The MEV Capital wETH vault lost 38.6% of TVL over the April 17 to April 22 window, the largest drawdown among MetaMorpho vaults tracked. MEV Capital was operating from a collapsed AUM base ($1.5B October 2025 peak to approximately $300M by February 25, 2026) following the October 10, 2025 event, with Belem Capital having absorbed the team in February 2026.
Six-day TVL change across the top tracked MetaMorpho vaults by April 17 TVL
not limited to rsETH-exposed vaults
Source: Summerstone analysis.
Drawdowns elsewhere in the tracking set were smaller. Gauntlet vaults lost between 15.7% and 30.7% of TVL. Re7 Labs lost 10.9%. Steakhouse Financial lost 5.8%. These reflect total deposit and withdraw activity, not rsETH exposure.
Morpho Markets Moved Separately
Morpho did not transmit rsETH loss across markets. Each WETH-denominated LRT market kept its own borrowers, suppliers, and rate curve. That contained the direct rsETH problem, but it did not remove WETH demand from nearby markets.
- rsETH/WETH was the direct route. Supply fell from 529.6 to 519.3 WETH, while borrows rose from 464.0 to 519.3 WETH. Available liquidity went from 65.5 WETH to zero.
- weETH/WETH absorbed new supply, but borrow demand took it faster. Supply rose from 26,201 to 29,308 WETH, while borrows rose from 23,505 to 29,302 WETH. Available liquidity fell from 2,696 WETH to 5 WETH.
- wstETH/WETH largest market compressed on both sides. Supply fell from 39,853 to 30,394 WETH, and borrows fell from 35,877 to 27,411 WETH. Utilization stayed near 90% because borrowers unwound as allocators withdrew.
- wstETH/WETH medium reached full utilization. Supply rose from 1,146 to 1,273 WETH, while borrows rose from 1,003 to 1,273 WETH. Available liquidity fell from 143 WETH to zero.
What Market Design Changed
The same forged collateral created different market outcomes because the lending designs exposed different paths. Morpho contained direct liquidation risk inside one market. Aave shared WETH liquidity across collateral types, turning an rsETH-specific event into a WETH-wide rate and liquidity event. Spark kept pooled lending mechanics, but its listing posture had already narrowed the rsETH path into the market.
| Venue | Market structure | What the rsETH shock could reach | Observed outcome |
|---|---|---|---|
| Morpho | Isolated collateral-borrow markets | The rsETH/WETH market's own lenders and borrowers | rsETH/WETH hit 100% utilization, but its liquidation state did not drain WETH from weETH/WETH or wstETH/WETH markets |
| Aave | Shared reserve per borrowed asset | Every borrower using the same WETH reserve, regardless of collateral | Ethereum Core WETH utilization reached 100%, available WETH fell from 18,341 to 1.89, and the WETH rate moved for all borrowers |
| Spark | Aave-style pooled markets with tighter listing and cap choices | A smaller rsETH path, because the asset was already being deprecated | Residual rsETH exposure was $37,300; Spark later recorded net inflows across WETH, wstETH, and weETH |
Source: Summerstone analysis for Morpho market states; Summerstone analysis for Aave WETH utilization and available liquidity; Summerstone analysis for Sparks net flows and Spark rsETH exit coverage.
That distinction matters for the broader LRT market. stETH, wstETH, rETH, cbETH, weETH, ezETH, and pufETH did not show issuer-level backing impairment during the April 18 to 22 window. Lido's $21.6M of stETH held in affected Aave wallets was lending-venue exposure, not a stETH backing problem. The weETH/WETH and wstETH/WETH Morpho markets also reached high utilization without direct rsETH exposure. The asset-class label said little about which positions were stressed. The route into and out of the lending venue mattered more.
Stablecoin Borrow Spillover
The stablecoin move began as a substitute exit path. When WETH liquidity tightened, some Aave users borrowed stables against remaining collateral instead of unwinding through WETH.
USDT utilization on Aave V3 Ethereum rose from 51.6% to 86.6% between 17:30 and 23:15 UTC on April 18, a 35 percentage-point move. USDC moved only from 51.2% to 55.0% in the same six-hour window; USDe moved from 39.2% to 42.3%.
Over the April 17 to 22 window, USDT and USDC both peaked at 93.1% on Aave V3 Ethereum, while USDS moved from 84.6% to 92.0%. On Arbitrum, USDT moved from 49.9% to 92.1%; USDC was already at 92.1% and only reached 92.3%.
Wallet-overlap analysis identifies 448 Aave V3 wallets with $196.4M in aggregate new stable-borrow notional. Each wallet had supplied LRT collateral (rsETH, weETH, wstETH, or ezETH) before the exploit and initiated fresh stable borrows between April 18 17:30 UTC and April 22 23:59 UTC.
| Stablecoin | Wallets | New borrow notional |
|---|---|---|
| USDC | 301 | $114.09M |
| USDT | 55 | $42.84M |
| USDS | 23 | $23.45M |
| GHO | 103 | $15.98M |
| Total | 448 | $196.37M |
Source: Summerstone analysis. Aave V3 wallets with LRT supply before April 18 that initiated new stable borrows during the window. Repayments are not separately removed, so the aggregate is an upper-bound proxy for net new stable exposure.
The substitution through stable borrowing routed mostly through USDC. monetsupply's $300M figure describes total Aave stablecoin borrow growth at the pool level over the first 24 hours. The $196.4M is a traced subset of the same dynamic. It isolates wallets that had supplied LRT collateral before the exploit and then borrowed stables over the following five days.
Lending Standards After rsETH
What Issuers Did Next
Issuer responses fell into four groups: stronger verifier requirements, fewer supported routes, alternative bridge paths, and routes that stayed paused.
- Ethena USDe / sUSDe resumed bridge operations on April 22 after moving from 2-of-2 to 4-of-4 DVNs. It also added throttled cross-chain transfers while keeping the existing $10M-per-hour rate limit.
- EtherFi weETH resumed after a bridge-hardening update. EtherFi pinned the LayerZero message libraries and DVN set, raised the threshold to 4-of-4, tightened pairwise rate limits, and said LayerZero's multisig no longer had an onchain path to modify weETH bridge configuration. On April 28, EtherFi also announced it would deprecate weETH bridging on Scroll, Swell, Bera, zkSync, Mode, Blast, Morph, and Sonic.
- Katana OFT paused its 2-of-3 OFT path on April 19 and redirected users to Agglayer.
- WBTC paused LayerZero transfers on April 19. On April 24, WBTC announced transfers had resumed and DVN validation requirements had been strengthened.
- Morpho MORPHO OFT paused its Arbitrum OFT route pending root-cause confirmation. No public restart notice was found in sources reviewed.
- Lombard LBTC paused LayerZero-based LBTC routes out of caution on April 18. On May 4, Lombard announced it would discontinue LBTC bridging to Morph, Swell, and Corn, unpause those routes only for exits to Ethereum, and upgrade the routes from 2-of-2 to 4-of-4 DVN requirements.
- KelpDAO rsETH announced an interim bridge-hardening plan on April 29. The new configuration requires four independent attestors in both directions, raises confirmations from 42 to 64, collapses routing into a hub-and-spoke model through Ethereum, deprecates L2-to-L2 routes, and plans tranche-based bridge reactivation. On May 5, Kelp said it was transitioning rsETH from LayerZero's OFT standard to Chainlink CCIP and Chainlink's Cross-Chain Token standard.
- LayerZero Labs announced on April 19-20 that its own DVN would refuse to sign or attest messages for applications using a 1-of-1 configuration. For any OApp that relied on LayerZero Labs as its only verifier, the policy turned a security recommendation into an operating requirement: add another verifier or lose that path.
A Dune analysis of 2,665 active LayerZero OApp contracts found 47% on 1-of-1 DVN configurations before the incident. The count explains why the response widened from rsETH remediation into a LayerZero-wide configuration review.
| Tier | Pre-incident OApp share (count basis) |
|---|---|
| 1-of-1 DVN | ~47% (1,252 of 2,665 OApps) |
| 2-of-2 DVN | ~45% (1,199 OApps) |
| 3+ DVNs | ~5% (133 OApps) |
Source: Dune Analytics LayerZero DVN configuration dashboard, contract-count basis.
TVL distribution across tiers is not published.
Onboarding Criteria for Wrapped and Bridged Assets
Before classifying an asset as an LRT, BTC wrapper, or stablecoin, a lending market needs to identify how the asset moves across chains and which parties can make or break that movement.
| Bridge model | What verifies the transfer | What listing teams need to inspect |
|---|---|---|
| Native / canonical | The source and destination chain's canonical bridge path | Chain security, withdrawal delay, and whether the asset is native to the target market |
| External verifier set | A multisig, MPC group, DVN set, or oracle committee | Verifier count, independence, threshold, signer operations, and failure history |
| Configurable messaging system | An issuer-selected security stack, often mutable after deployment | Current verifier config, who can change it, defaults, and whether provider authority remains |
| Light-client / ZK verified | Cryptographic verification of source-chain state | Proof-system maturity, latency, implementation risk, and operational fallback |
| Issuer burn-and-mint | The issuer's own mint and burn process | Issuer solvency, mint authority, redemption process, and circuit breakers |
Source: Bridge model categories adapted and revised from Eco's cross-chain messaging security overview. LayerZero-specific configurable security details are from LayerZero's KelpDAO incident statement.
The review should cover five points:
- Verifier set: who attests the message, and is any single party enough to release collateral? Blockaid's incident analysis identifies KelpDAO's 1-of-1 DVN setup as the bridge-verification failure.
- Configuration authority: who can change the verifier set, message libraries, or routing path? EtherFi's post-incident hardening thread is a useful example of pinned message libraries, a pinned DVN set, and removed LayerZero multisig control over weETH configuration.
- Supply controls: which caps, rate limits, or pause functions limit forged-message damage? LayerZero's own incident statement says a multi-DVN setup would have prevented one compromised verifier from releasing rsETH; rate limits determine how much damage a missed message can cause before governance reacts.
- Oracle coverage: does the oracle detect supply-side dilution, or only secondary-market depeg? CAPO covered the market-price problem, not the backing problem.
- Operator capacity: can the issuer execute a bridge change, pause, or recovery process during a live incident? KelpDAO's April 29 bridge-hardening plan shows the operating requirements: four attestors, higher confirmations, hub-and-spoke routing, L2-to-L2 deprecation, and tranche-based reactivation.
For lending designers, the asset label is not enough. The listing has to price the path that brings the asset into the market.
Who Absorbs the Shortfall?
The rsETH shortfall did not remain with the bridge or issuer. Once forged supply entered lending markets, the question became who would absorb the gap without forcing disorderly liquidation or permanent bad debt.
New capital became the first backstop. DeFi United coordinated commitments from Aave, LayerZero, KelpDAO, EtherFi, Lido, Golem, and other participants to restore rsETH backing and normalize market conditions. Aave proposed a 25,000 ETH treasury contribution; DeFi United lists EtherFi at 5,000 ETH and Consensys + Joseph Lubin at 30,000 ETH; LayerZero pledged more than 10,000 ETH across a 5,000 ETH donation, a 5,000 ETH Aave market deposit, and GHO liquidity support; Lido contributed 2,500 stETH; and Kelp contributed 2,000 ETH from its treasury, among others.
Aave Labs also proposed using attacker positions as a recovery route. It submitted an AIP to liquidate identified attacker positions on Aave V3 Ethereum Core and Arbitrum, seize 89,567 rsETH, and route recovered collateral to a Recovery Guardian Safe. The public record supports this as a proposed path, not an executed recovery; the governance interface shows the AIP as canceled, and the linked forum discussion does not state why.
The frozen Arbitrum ETH remained a potential recovery source, but ongoing legal disputes over control of those funds meant it could not be treated as available recovery capital.
What Changes for the Next Lending Stack
The rsETH exploit showed how quickly forged collateral can become a lending-market liquidity problem. For lending designers, the listing question is no longer only whether an asset can hold its peg. It is whether the market can limit bad supply, keep exits open, price trapped debt fairly, and liquidate collateral at the size it has accepted.
Aave, Morpho, and Spark processed the same shock differently because their markets exposed different paths. The next lending stack does not need to predict every bridge exploit, but limit how far an unbacked asset can travel before humans intervene.
Methodology
Scope
This report analyzes the April 18, 2026 rsETH exploit as a lending-market stress event. The focus is how forged rsETH moved through bridges, lending venues, liquidation paths, rate curves, and recovery capital after the bridge failure. The analysis covers the LayerZero-powered rsETH bridge failure and the 1-of-1 DVN configuration; attacker wallet distribution and borrowing across Aave V3, Compound V3, and related lending venues; Aave V3 WETH utilization, available liquidity, borrower constraints, and rate-curve intervention; spot-market liquidation capacity for rsETH on Ethereum DEX venues; source-side Kelp withdrawal and pause behavior; rotation into Spark and Morpho market behavior during the incident window; and issuer and bridge-configuration responses after the exploit.
Outside of scope:
- A full legal assessment of recovery claims or frozen attacker funds. A full audit or security assessment of LayerZero, KelpDAO, Aave, Compound, Morpho, Spark, or Euler contracts.
- A fault-allocation assessment of disputed post-incident claims between KelpDAO and LayerZero, including Kelp's May 5 claim that additional forged transactions were signed and processed by the LayerZero Labs DVN but blocked after Kelp intervened.
- A complete valuation of every affected user balance sheet.
- A full TVL-weighted census of every LayerZero OApp configuration; the LayerZero DVN count is cited on a contract-count basis where TVL distribution is not published.
- A forward-looking recommendation for any specific governance vote beyond the market-design implications described in the report.
Definitions and Interpretations
- rsETH: Kelp DAO's liquid restaking token. In this report, "legitimate rsETH" means rsETH backed by corresponding source-side collateral; "forged" or "unbacked" rsETH means rsETH released through the exploited bridge path without a corresponding deposit.
- DVN: Decentralized Verifier Network. A verifier selected in LayerZero V2 application configuration to attest cross-chain messages. A 1-of-1 DVN is a bridge configuration in which one verifier is sufficient to authenticate a message. In this incident, that made the bridge dependent on one verifier's view of source-chain state.
- eMode: Aave V3's efficiency mode for correlated assets. It raises borrowing power for assets treated as correlated but does not create a separate borrow rate for a collateral type.
- Utilization: Borrowed amount divided by supplied liquidity in a lending reserve or isolated market. For Aave V3 WETH utilization charts in this report, utilization is reconstructed from reserve rate updates using the relevant pre-incident interest-rate parameters.
- Uoptimal: The utilization kink in Aave's interest-rate strategy. Above Uoptimal, borrow rates move into the steeper Slope2 region.
- Near-full reference: A 95% utilization line used as a visual reference for near-full liquidity conditions. It is not the Aave interest-rate kink.
- Freeze: In Aave V3, a reserve state that prevents new supply and new borrows while preserving repayments and liquidations.
- Pause: A stricter reserve state that blocks operations on the paused reserve, including liquidations against that collateral.
- Liquidation capacity: The amount of collateral that can be profitably sold by liquidators after accounting for liquidation bonus, pool depth, and slippage.
- Virtual depth: The effective pool-side liquidity implied by the Uniswap V3 liquidity distribution at a point in time. It is used here to estimate price impact for rsETH sell sizes.
- Borrow spillover: New borrowing activity in adjacent assets or venues that appears after the initial rsETH/WETH route becomes constrained.
- Rotation: Wallet or market-level movement from one lending venue to another during the incident window. Same-wallet overlap is treated as evidence of direct rotation, but not all destination inflow is assumed to come from the source venue.
Data Sources
- Dune Analytics queries: Summerstone Dune analyses are used for attacker wallet distribution, lending borrow totals, Aave utilization, Aave supply and borrow reconstruction, DEX slippage, rsETH DEX activity, Kelp withdrawal events, Morpho market states, Spark flows, Aave-to-Spark wallet overlap, stablecoin borrow spillover, and MetaMorpho vault drawdowns. Charts in the article are rebuilt from the linked Summerstone Dune query outputs and styled for the website; query links are included inline and in figure/table captions.
- Protocol governance and documentation: Aave governance forum posts, Aave governance proposals, Risk Steward actions, Aave documentation, LayerZero documentation, LayerZero's KelpDAO incident statement, KelpDAO communications, and issuer post-incident bridge updates.
- Onchain explorers: Etherscan, Arbiscan, Basescan, Mantlescan, and Lineascan links are used for rate-strategy and governance execution references where available.
- Protocol applications and dashboards: Aave, Morpho, Spark, DeFiLlama, Dune dashboards, and protocol UIs are used for market state, exposure, and supporting context.
- Public post-incident reporting: Public statements and coverage from Aave, LayerZero, KelpDAO, EtherFi, Lombard, WBTC, Lido, DeFi United, Sam MacPherson, karpatkey/KPK, Steakhouse Financial, and other cited sources are used where onchain data alone does not identify operator decisions or recovery commitments.
Known Limitations
- Dune indexing and schema coverage: Quantitative results depend on Dune's indexed tables, decoded events, and spell coverage at query time. Missing decodes, delayed indexing, or table-model limitations can affect completeness.
- Attacker wallet attribution: The attacker-wallet set is based on tracked onchain distribution and borrow activity. It may not capture every related wallet or offchain control relationship.
- Euler exposure: The report notes smaller Euler-side exposure where public reporting referenced it, but the attacker-borrow query used for venue totals returned no Euler rows in
lending.borrow. Euler is therefore not treated as a confirmed attacker outflow in the diagram. - USD values: Dollar figures use query-time or window-specific price assumptions and should be interpreted as approximate notional values.
- Slippage estimates: rsETH slippage calculations model sells against the primary Uniswap V3 rsETH/WETH pool at the April 18 open. Actual execution would depend on routing, timing, MEV, pool state changes, and liquidity provider behavior.
- Withdrawal queue interpretation: Kelp withdrawal-manager events show request, unlock, pause, and fee activity, but instant-withdrawal fee events do not by themselves reveal the redeemed rsETH amount.
- Recovery capital: Public commitments and proposed governance actions are reported from cited sources. A proposed recovery path is not treated as executed unless the public record states execution.
- Stable-borrow tracing: The stablecoin borrower subset isolates wallets with pre-incident LRT supply that initiated stable borrows during the window. Repayments are not separately removed, so the traced amount is an upper-bound proxy for net new stable exposure.
- Bridge configuration census: The LayerZero DVN dashboard is cited on a contract-count basis. TVL distribution across configuration tiers is not published, so contract share should not be read as value-at-risk share.