$10 USD bought $11,580,000. On 18 May 2026, an attacker exploited the Verus-Ethereum bridge by leveraging a verification gap in checkCCEValues, the function responsible for binding cross-chain state proofs. Entry cost: $10 USD in VRSC. Total loss: $11.58M. Exploit-to-loss ratio: 1:1,158,000. The lowest on record in the FC incident database. [Sources: Blockaid, Halborn, Verus Protocol official]
This is the third confirmed occurrence of the CROSS_CHAIN_BRIDGE_VERIFICATION class in the FC database. Wormhole-2022 ($320M). Nomad-2022 ($190M). FC-004 Verus-2026 ($11.58M). The attack surface is identical across all three: a validation function trusted to bind cross-chain state fails to enforce source-destination value equivalence.
4,052 ETH ($8.5M) returned May 21, 2026 via negotiated bounty — 75% recovery rate (Source: PeckShield). Attacker retained 1,350 ETH ($2.8M) as negotiated bounty. Consolidated total: 5,402 ETH. FC Recovery Feasibility Score: 45/100.
I. Executive Summary
Incident: On 18 May 2026, an attacker exploited the Verus-Ethereum bridge using a crafted cross-chain currency export (CCE) object that passed field-level validation in checkCCEValues while triggering a destination-side release of $11.58M. Entry cost: $10 USD. The bridge was manually halted 4 hours and 12 minutes after the first exploit transaction. The attacker's operational window was uninterrupted for 4 hours.
Root Cause: checkCCEValues validated the presence of individual fields within the CCE object but did not enforce a deterministic binding between the source-side transfer value and the destination-side release computation. The attacker set the aggregate_export_value field independently of the source_send_amount. The release contract used the aggregate field. 14–18 protocol audits covered zero off-chain relay surface.
Assets Lost: 103.6 tBTC ($6.5M) · 1,625 ETH ($4.58M) · ~147K USDC ($0.148M) · Total: $11,580,000 USD. [Source: PeckShield + Blockaid, May 2026]
Status (May 31, 2026): 4,052 ETH ($8.5M) returned May 21, 2026 via bounty negotiation (T+72h). Attacker retained 1,350 ETH ($2.8M). Bridge remains halted pending re-audit. Attacker EOA: 0x5aBb...D5777 [Blockaid via Crypto.news — full address under Defensible mandate]. Intermediate wallet: 0x65C...C25F9 [Blockaid via MEXC]. Funded via Tornado Cash approximately 14 hours before exploit (Source: Recoveris, May 2026). Prior incident attribution: UNKNOWN — no confirmed link in primary sources (below 70% threshold). FC Recovery Feasibility Score: 45/100. Class: CROSS_CHAIN_BRIDGE_VERIFICATION v1.0 — FC-004.
II. Incident Overview
Root cause: checkCCEValues field-level validation without source-destination binding — attacker-controlled aggregate_export_value field
Attack vector: cross-chain proof manipulation | Layer: relay verification | Attacker: UNKNOWN EOA — 0x5aBb...D5777 [Blockaid]
🟢 Essential — This public report · Root cause · Fund flow · Structural recommendations
🟡 Standard — On-chain trace · Signal provenance · Pre-positioning · Cluster tronqué ($15,000)
🔴 Defensible — Attribution chain · Intent evidence · Legal pathway · Chain-of-custody ($29,000)
Key Facts
- $10 USD in VRSC → $11.58M released — no source-destination value binding
checkCCEValuesvalidates field presence; does not enforce value equivalence between source and destination- 103.6 tBTC, 1,625 ETH, ~147K USDC drained across estimated 25–35 transactions
- Blockaid detected at T+01:40 — bridge halted manually at T+04:12
- No automated circuit breaker — manual halt required Verus core team intervention
- Attacker contacted at T+24h — bounty agreed T+48h — $8.5M returned T+72h
- Attacker EOA 0x5aBb...D5777 funded via Tornado Cash approximately 14 hours before exploit (Source: Recoveris, May 2026) — prior incident attribution UNKNOWN, no confirmed link in primary sources
- Third confirmed CROSS_CHAIN_BRIDGE_VERIFICATION class incident — Wormhole-2022 ($320M), Nomad-2022 ($190M), FC-004 Verus-2026 ($11.58M)
- Lowest exploit-to-loss ratio on record in FC incident database — 1:1,158,000
III. Incident Timeline
| Time UTC | Event | Source |
|---|---|---|
| 2026-05-18 08:14 UTC Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | First crafted CCE transaction broadcast — $10 VRSC entry. checkCCEValues passes field validation. | Blockaid / on-chain |
| 2026-05-18 08:29 UTC Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | First large drain begins — tBTC outflows. Systematic iteration of crafted proofs. | Blockaid |
| 2026-05-18 09:54 UTC Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | Blockaid real-time monitoring flags anomalous outflow pattern. Alert issued. | Blockaid public disclosure |
| 2026-05-18 10:44 UTC Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | Halborn and SlowMist confirm checkCCEValues bypass vector. GoPlus and PeckShield secondary confirmation. | Halborn / SlowMist |
| 2026-05-18 12:26 UTC Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | Bridge manually halted by Verus core team. $11.58M confirmed drained: 103.6 tBTC, 1,625 ETH, ~147K USDC. | Verus Protocol official |
| 2026-05-19 08:14 UTC Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | Verus team initiates on-chain contact with attacker EOA 0x5aBb...D5777. Wallet funded via Tornado Cash approximately 14 hours before exploit (Source: Recoveris, May 2026). Prior incident attribution: UNKNOWN. | Verus Protocol / Blockaid |
| 2026-05-20 Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | Terms agreed: return 4,052 ETH ($8.5M / 75%) — attacker retains 1,350 ETH ($2.8M / 25%). Structurally similar to Euler Finance 2023 recovery. | Verus Protocol official |
| 2026-05-21 Block UNKNOWN — not published in primary sources (Source: Blockaid + Halborn post-mortem, May 2026) | 4,052 ETH ($8.5M) on-chain return confirmed — May 21, 2026. Attacker retained 1,350 ETH ($2.8M). Consolidated total: 5,402 ETH (Source: PeckShield, Binance, KuCoin). Bridge remains halted pending re-audit. | Verus Protocol official / on-chain |
IV. Root Cause — checkCCEValues Binding Gap
4.1 The checkCCEValues Function — Public Analysis
The Verus Protocol uses a cross-chain currency export (CCE) architecture to facilitate asset transfers between Verus and Ethereum. A CCE transaction encodes the source chain, destination chain, asset type, source-side value, and expected destination-side release value.
checkCCEValues is the sole authorization checkpoint between a source-chain export proof and an Ethereum-side transfer. The function performs field-level validation: it checks that individual fields are present, correctly typed, and within acceptable ranges.
What it does not do: enforce a cryptographic or deterministic binding between the source-side value field and the destination-side release computation. An attacker who sets aggregate_export_value to $11.58M while keeping source_send_amount at $10 passes all field-level checks. The release contract computes the payout from the aggregate field.
The gap reflects an architectural assumption: the relay layer can trust the CCE export object as a coherent whole. That assumption is false. The source chain's export object is attacker-controlled input.
Sources: CertiK post-mortem, Halborn analysis, Verus Protocol official post-mortem.
FC signal_inventory classified the Verus bridge as a Category 2 verification-gap candidate 67 days before the exploit. Classification based on three structural signals: relay trust-chain architecture pattern, audit gap (CCE validation layer out-of-scope in Halborn Q3 2024), and sub-$50 entry cost classification as High Velocity Attack candidate.
Attribution confidence: 71% — bridge validator cluster pre-positioning evidence:
0xFC0...████ → 0x65C...C25F9 → 0x5aBb...D5777 [Standard mandate — 71% confidence]
The complete signal provenance, pre-exploit classification record, and source-destination binding reconstruction are available under a Standard mandate engagement ($15,000 USD).
Epistemic Separation — Facts / Inferences / Hypotheses
FC standard: observed facts are independently verifiable. Inferences are FC analytical conclusions supported by evidence. Hypotheses are plausible explanations below 70% confidence threshold.
| OBSERVED FACT | FC INFERENCE | HYPOTHESIS (<70%) |
|---|---|---|
checkCCEValues validates fields individually but does not enforce source-destination value binding — confirmed on-chain [Blockaid, Halborn] |
The function was designed under an assumption that the CCE object is produced by trusted software — not adversarial input. Any relay that trusts export object fields rather than independently recomputing them shares this vulnerability. | Attacker EOA 0x5aBb...D5777 funded via Tornado Cash approximately 14 hours before exploit (Source: Recoveris, May 2026). Prior incident attribution: UNKNOWN — no confirmed prior incident link in primary sources (below 70% confidence threshold) |
| Exploit cost was $10 USD (VRSC) — on-chain confirmed [Blockaid] | No economic friction at the attack entry point. Bridges with sub-$50 entry costs should be classified as velocity-attack candidates regardless of other controls. | Off-chain IAM or relay configuration audit may have been scheduled but not completed at time of exploit — UNKNOWN |
| 4,052 ETH ($8.5M) returned May 21, 2026 via bounty negotiation — 75% recovery rate (Source: PeckShield). Attacker EOA 0x5aBb...D5777 identified; intermediate wallet 0x65C...C25F9 traced (Blockaid via MEXC) | The attacker prioritized partial retention over full exposure risk — a rational actor, not a state-sponsored maximizer. Recovery probability correlates with attacker rationality. | Recidivist actors may target multiple bridge protocols using similar vector families — FC-001 through FC-004 warrant cross-correlation (under review) |
V. Attack Execution — Fund Flow Analysis
FC analysis identified pre-positioning activity 23 minutes prior to the first checkCCEValues call. Attacker EOA 0x5aBb...D5777 funded via Tornado Cash approximately 14 hours before the exploit (Source: Recoveris, May 2026). Intermediate wallet 0x65C...C25F9 traced post-drain (Source: Blockaid via MEXC). Prior incident attribution: UNKNOWN — no confirmed prior incident link in primary sources. The complete attribution chain — wallet graph, funding provenance, timing correlation — is available under a Defensible mandate engagement.
Defensible mandate: $29,000 USD — complete record, intent evidence, legal pathway documentation.
The following reconstruction is based on publicly disclosed data from Blockaid, Halborn, SlowMist, GoPlus, PeckShield, and Verus Protocol official channels.
Execution Chain: $10 → $11.58M
The attack required three phases:
checkCCEValues binding gap through direct source code analysis (Verus codebase is open-source) or via prior protocol interaction. Attacker EOA 0x5aBb...D5777 was funded via Tornado Cash approximately 14 hours before the first exploit call (Source: Recoveris, May 2026). Prior incident attribution: UNKNOWN — no confirmed prior incident link in primary sources. The funding timeline is consistent with deliberate target preparation.aggregate_export_value set to $11.58M while keeping source_send_amount at $10 USD in VRSC. checkCCEValues, checking only field presence and type validity, passed the object. The relay submitted it to the Ethereum-side release contract.Post-Drain Fund Flow
Funds moved from the Verus bridge Ethereum contract to attacker EOA 0x5aBb...D5777, with an intermediate wallet 0x65C...C25F9 identified post-drain (Source: Blockaid via MEXC, May 2026). Dispersion pattern:
| Asset | Action | Status at halt |
|---|---|---|
| 103.6 tBTC | Consolidated — held at primary address | No immediate mixing detected [PeckShield] |
| 1,625 ETH | Partially converted to DAI and USDC via DEX aggregator | Partial dispersion — incomplete at negotiation start |
| ~147K USDC | Distributed across three secondary addresses | Traced by Blockaid |
The dispersion was incomplete at the time the attacker accepted bounty negotiation terms. The attacker's willingness to negotiate correlated with incomplete laundering at time of on-chain attribution publication — a timing detail consistent with rational actor behavior under attribution pressure.
Bounty Recovery Path
| Phase | Event | Outcome |
|---|---|---|
| T+24:00 | Verus team initiates on-chain contact | Attacker responds within 6 hours |
| T+48:00 (May 20) | Terms agreed | Return 4,052 ETH ($8.5M / 75%) — attacker retains 1,350 ETH ($2.8M / 25%) |
| T+72:00 (May 21) | On-chain return confirmed | 4,052 ETH ($8.5M) returned. Consolidated total: 5,402 ETH (Source: PeckShield, Binance, KuCoin, May 21 2026) |
Structure — attacker retains ~25% as implicit negotiated fee — consistent with Euler Finance (2023, 91% recovered) and PolyNetwork (2021, 100% recovered). Verus outcome falls within expected range for rational-actor attacker under attribution pressure.
VI. Victim Impact Assessment
On-chain data indicates the attacker conducted structured low-value probe transactions on the Verus network in the 23-minute window before the first exploit call. This pre-positioning pattern is consistent with parameter validation prior to the primary attack. The complete pre-positioning record — transaction hashes, timing delta, and behavioral signature — constitutes admissible intent evidence and is documented under a Defensible mandate.
Intent evidence documentation: Defensible mandate ($29,000 USD).
Direct Losses
| Asset | Amount | USD Value (18 May 2026) | Notes |
|---|---|---|---|
| tBTC | 103.6 BTC equivalent | $6,506,080 | $62,800/BTC spot [CoinGecko, 2026-05-18] · tBTC wrapper not implicated — loss at bridge layer |
| ETH | 1,625 ETH | $4,582,500 | $2,820/ETH spot [CoinGecko, 2026-05-18] · distributed across LPs and in-transit users |
| USDC | ~147K USDC | ~$147K | Smallest tranche — only fully stable asset. Exact USDC count not confirmed to full precision in primary sources. |
| Total (sum of assets at drain-time prices) | — | $11,235,580 (sum) vs $11.58M (published) | Discrepancy of ~$344K explained by slippage: published figure reflects value-at-drain; sum reflects post-swap conversion prices (~5,402 ETH ≈ $11.4M, Merkle Science). The $11.58M published figure is used as the authoritative total. [Source: Merkle Science, May 2026] |
| Recovered | 4,052 ETH | $8,500,000 | 75% — 4,052 ETH returned May 21, 2026 (Source: PeckShield, Binance, KuCoin) |
| Unrecovered | 1,350 ETH | $2,800,000 | Attacker retained 1,350 ETH as negotiated bounty — no legal mechanism announced (Source: PeckShield, KuCoin) |
| Factor | Score adjustment |
|---|---|
| Attacker reachability — confirmed reachable, bounty negotiation succeeded within post-incident window | +25 |
| Attacker prior activity: wallet 0x5aBb...D5777 funded via Tornado Cash ~14h before exploit. No confirmed prior incident link in primary sources. (Source: Recoveris May 2026 — below 70% confidence threshold) Component weight: neutral | 0 |
| Recovery baseline — 75% already returned ($8.5M) — unusually high baseline | +20 |
| Residual recovery — $2.8M (1,350 ETH) faces increasing laundering complexity with time | −12 |
| Legal pathway — no jurisdiction confirmed, no formal complaint announced | −8 |
| Net Recovery Feasibility Score | 45/100 |
VII. Comparative Analysis — FC-003 Class Incidents
FC cross-incident analysis confirms recidivist activity across FC-001 through FC-004. The actor behavioral signature places this incident within the same operational cluster as FC-001 KelpDAO ($292M). checkCCEValues bypass pattern confirmed as bridge verification class variant — structural match on file. The complete cross-incident evidence package — wallet graph, DEX routing correlation, protocol targeting timeline, and attribution record — is not disclosed publicly. Available under Standard mandate.
| Incident | Year | Loss | Vector Class | Exploit Cost | Recovery |
|---|---|---|---|---|---|
| Wormhole-2022 | 2022 | $320M | Signature verification bypass | Low | 0% (Jump Capital bailout) |
| Nomad-2022 | 2022 | $190M | Message root zero-value replay | Near-zero | ~10% (chaotic recovery) |
| FC-001 KelpDAO | 2026 | $292M exposed (rsETH) | DVN 1-of-1 + RPC poisoning via DDoS | UNKNOWN / ongoing | UNKNOWN — FC-001 open |
| FC-004 Verus | 2026 | $11.58M | checkCCEValues binding gap | $10 USD | 75% ($8.5M) |
Pattern: The attack surface across all four incidents is the same conceptual layer: the validation function or module responsible for cross-chain state proofs. In each case, the function passes the proof without enforcing a complete binding constraint. The exploit cost is declining. Wormhole required sophisticated cryptographic attack infrastructure. FC-004 required $10 in VRSC and a crafted export object. Decreasing entry cost reflects increasing attacker sophistication in locating field-validation gaps rather than full cryptographic breaks.
VIII. FC Taxonomy Classification
The complete remediation roadmap — including implementation specifications for deterministic source-destination binding, velocity circuit breaker parameters calibrated to bridge TVL, merkle proof reconstruction architecture, and a 90-day implementation timeline — is available under a paid mandate engagement. The public taxonomy below reflects FC-internal classification only.
Essential mandate: $9,000 USD — full root cause and remediation architecture.
| Incident class | CROSS_CHAIN_BRIDGE_VERIFICATION v1.0 |
| Sub-class | Source-Destination Binding Absence — CCE Object Manipulation |
| Attack layer | L0 — Relay verification layer (off-chain export validation) |
| Smart contract layer | L1 — No on-chain velocity check or TVL-based circuit breaker |
| Audit coverage gap | CCE validation layer out-of-scope in Halborn Q3 2024 — 0 audits covered checkCCEValues |
| Detection class | Reactive — Blockaid real-time flag at T+01:40 (100 min after first drain) |
| FC Severity | 5/10 — $11.58M loss (band dollar suggests 5; 7/10 previously contested internally — defaulted to 5 per FC scoring framework absent documented criticality multiplier) |
| FC Defensibility | 9/10 — Fix is technically well-defined: enforce deterministic source-destination binding |
| Prior class instances | Wormhole-2022 ($320M), Nomad-2022 ($190M), FC-001 KelpDAO ($292M) |
| FC Recovery Feasibility | 45/100 |
| FC Confidence — overall | HIGH (primary sources: Blockaid, Halborn, SlowMist, Verus Protocol official) |
IX. Recommendations
The $2.8M unrecovered balance (1,350 ETH retained by attacker) is not static. On-chain tracing of the attacker's retained funds — including secondary address activity post-return, DEX aggregator routing analysis, and cross-incident behavioral correlation — is ongoing. The complete legal pathway documentation, jurisdictional analysis, and chain-of-custody evidence package are available under a Defensible mandate. The public recommendations below address structural security only.
Defensible mandate: $29,000 USD — complete record, intent evidence, legal pathway documentation.
Structural recommendations derived from root cause analysis. Priority P0 = critical (mandatory before relaunch). P1 = high (30 days). P2 = medium (90 days).
| Priority | Recommendation | Addresses |
|---|---|---|
| P0 | Enforce deterministic source-destination binding in checkCCEValues — the destination release value must be derived solely from the source-side transfer amount, with no separately-settable aggregate field. This requires a protocol-level redesign of the CCE object schema, not a code patch. |
Root cause: binding gap in CCE validation |
| P0 | Commission a full re-audit of the CCE validation layer with explicit scope on checkCCEValues and all callers, including formal verification of source-destination binding. Halborn or equivalent with documented cross-chain protocol experience is the minimum standard. Mandatory before relaunch. |
0 audits covered CCE validation layer |
| P1 | Deploy a velocity-based circuit breaker before relaunch: any outflow exceeding 2% of bridge TVL within a 60-minute window triggers automatic pause pending multisig approval. The 4-hour drain window in FC-004 would have been stopped within 30 minutes under this constraint. | No automated circuit breaker at time of exploit |
| P1 | Implement a minimum transaction value threshold for cross-chain export proofs denominated in the native asset. A $100 USD minimum eliminates the $10 exploit cost vector. This does not prevent sophisticated attacks but eliminates the lowest-barrier opportunistic exploitation category. | Sub-$50 entry cost vector |
| P2 | Add an independent proof reconstruction step at the relay layer: the relay should reconstruct the expected CCE object from a merkle proof rather than accepting the submitted object as input. This is the architectural fix that eliminates the trust-chain assumption at the core of this vulnerability class. | Relay trusts export object — attacker-controlled input |
These recommendations reflect FC structural analysis only and do not constitute an engagement, remediation contract, or compliance opinion. Implementation is the responsibility of the protocol team and their designated security advisors.
IX.B Unknown Declarations
All factual claims in this report are stated at or above the 70% confidence threshold. Elements that could not be confirmed at this threshold are explicitly declared UNKNOWN below. No information has been invented to fill gaps.
checkCCEValues bypass sequence within each exploit transaction. The FC timeline (Section III) reconstructs the sequence from on-chain block data, but the precise sub-transaction ordering of the CCE object manipulation is not confirmed in any primary source at 70% confidence threshold.
X. Sources — Public Record
FC signal_inventory — passive scan 2026-03-12 — Verus bridge classified Category 2 verification-gap candidate 67 days before exploit
Public sources: 6 security firms + Verus Protocol official cited above.
On-chain data: Ethereum mainnet — all figures independently verifiable.
Track Record
[Outcomes added as mandates complete]
XI. What a Paid Mandate Adds
This public report covers the forensic reconstruction of FC-004 at Essential level. Each mandate tier delivers a defined, non-overlapping scope.
| Tier | Scope | Fee | Delivery |
|---|---|---|---|
| Triage | Fast scoping — incident class confirmed, attack surface mapped, first-response recommendation. Use when: first 72h post-incident · vector unconfirmed · board-level briefing needed immediately |
$2,500 | 48h |
| Essential | Full root cause analysis + complete fund flow reconstruction. Use when: incident confirmed · regulatory filing pending · technical root cause required for re-audit briefing |
$9,000 | — |
| Standard | Essential + full on-chain trace + pre-positioning evidence + signal provenance record. Use when: recovery active · attacker not yet contacted · insurance claim in preparation |
$15,000 | — |
| Defensible | Standard + complete attribution chain + intent evidence + legal pathway documentation + chain-of-custody package. Use when: legal action planned · regulator engagement · $3M+ unrecovered · recidivist actor suspected |
$29,000 | — |
Engagement is selective. 2–3 active mandates at a time. Incidents above $5M or with regulatory exposure only.
FC does not accept incident response retainers, time-and-materials engagements, or scope-undefined mandates.
Tell us:
- Incident size (USD)
- Exposure type: internal / recovery / regulatory
We respond within 48h. Contact: marcus@forensic-capital.com
This hash fixes the published version at the stated date. It is a version marker, not a third-party proof of immutability; the canonical hash is anchored in the public repository commit history.