Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

title Ronin Bridge
description Compromising validator keys to authorize malicious withdrawals
type Exploit
network
ethereum
date 2022-03-23
loss_usd 624000000
returned_usd 0
tags
bridges
leaked keys
subcategory
vulnerable_contracts
0x1A2a1c938CE3eC39b6D47113c7955bAa9DD454F2
tokens_lost
ETH
USDC
attacker_addresses
0x098B716B8Aaf21512996dC57EB0615e2383E2f96
malicious_token
attack_block
14442835
14442840
reproduction_command forge test --match-contract Exploit_RoninBridge -vvv
attack_txs
0xc28fad5e8d5e0ce6a2eaf67b6687be5d58113e16be590824d6cfa1a94467d0b7
0xed2c72ef1a552ddaec6dd1f5cddf0b59a8f37f82bdda5257d9c7c37db7bb9b08
sources
title url
Ronin Writeup
tps://roninblockchain.substack.com/p/community-alert-ronin-validator

Step-by-step

  1. Social engineer attack against key holders to get privileged keys
  2. Use the privileged keys to drain funds

Detailed Description

The Ronin Bridge was operated by 9 validators with a threshold of 5 out of the 9. This threshold was misleading though, as 4 validators were operated by Sky Mavis. What is more: in Nov 2021, Axie delegated their validator's signature to Sky Mavis too. This delegation was supposed to be temporary, as Axie was experiencing heavy traffic. Nevertheless, it was never revoked.

As a result, Sky Mavis had 5 signatures. Enough to approve any message.

The attacker got control of the keys doing a social-engineer attack. Once they had it, the were able to call withdrawERC from the bridge without a backing transaction on the other side.

Possible mitigations

  • Multisigs do not matter if in practice several keys are controlled by the same entity. Distribute keys to independent entities to actually enforce that several entities must agree with a transaction before executing it.

Related

  • Wormhole Bridge - Bridge vulnerability through uninitialized guardian set
  • Polynetwork Bridge - Hijacking bridge validator roles via sighash collision
  • Nomad Bridge - Bridge message validation bypass through faulty initialization