Back to Blog

ワームホール攻撃の再検討

Code Auditing
March 22, 2022
5 min read

1. 背景

イーサリアム・ローゼン橋としても知られるワームホールは、時空間の離れた点を結びつける推測的な構造です。ブロックチェーンの世界では、ワームホールは、異なるチェーン(例:SolanaEthereum)間のブリッジとして使用されています。ユーザーはワームホールを通じてトークン化された資産をブロックチェーン間で転送できます。

2022年2月2日、ワームホールがハッキングされ、攻撃者は3億2000万ドル相当の12万ETH(ラップドイーサ)を鋳造することに成功しました。これは、DeFi史上Poly Networkに次ぐ2番目に大きな損失です。

2. ワームホールの仕組み

ワームホールは、各チェーンで発行されるメッセージを監視することによって機能します。監視されたメッセージはターゲットチェーンに転送され、クロスチェーン通信プロトコルを構築できます。

直感的な疑問は、監視されたメッセージの信頼性をどのように保証するかということです。この問題に対処するため、ワームホールはガーディアンと呼ばれる19の追加ノードを導入しました。現在のガーディアンセットはワームホールエクスプローラーで確認できます。各ガーディアンは、監視されたメッセージを独立して検証し、メッセージに署名できます。

ワームホールでは、メッセージはVAA形式で整理されます。VAAは2つの部分から構成されます。1つはヘッダーで、ガーディアンからの署名が収集されます。もう1つはボディで、ターゲットチェーンの情報、メッセージペイロードなどが含まれます。

ガーディアンからの署名がコンセンサスしきい値に達すると、VAAはチェーンに投稿できます。

要約すると、ガーディアンは転送されたメッセージの整合性に責任を負います。

3. トークンブリッジ

異なるチェーン間でメッセージがどのように転送されるかを説明した後、ワームホールの主要なアプリケーションであるトークンブリッジの仕組みを理解するのは難しくありません。

トークンをチェーンAからチェーンBに転送するには、ワームホールはチェーンAでトークンをロックし、チェーンBで鋳造します。これが大まかなアイデアです。実際には、これは3つのステップに分けることができます。まず、チェーンAのトークンがロックされます。次に、チェーンAのトークンをチェーンBに転送すべきというメッセージがブロードキャストされます。第三に、チェーンBがメッセージを受信し、対応するトークンが鋳造されます。これで完了です。

4. Solanaの手順

Solanaでは、トランザクションは複数の手順で構成されます。各手順は、プログラムID、アカウント、およびデータを含みます。プログラムIDは、手順を処理するプログラム(スマートコントラクト)を表します。プログラムはデータを解釈し、提供されたアカウントを操作します。

5. ワームホール攻撃

要するに、攻撃者はEthereumで資産をロックすることなく、Solanaで12万ETHを鋳造しました。トランザクションはこちらにあります。

したがって、問題は攻撃者がSolanaで12万ETHを鋳造できた方法です。ステップを詳しく見てみましょう。トークンを鋳造するために、手順complete_wrappedが呼び出されます。この手順はいくつかのアドレスを受け取り、3番目は署名されたメッセージを格納するアドレスです。12万ETHを鋳造する前に、チェーンB(つまりSolana)は、チェーンA(つまりEthereum)で12万ETHがロックされたことを示す署名済みメッセージ(つまりVAA)を受信する必要があります。

メッセージを投稿するために、post_vaa.rsで定義されているpost_vaaが呼び出されます。その結果、メッセージを格納するための中央アカウントが作成されます。しかし、post_vaaはガーディアンからの署名をチェックしません。代わりに、verify_signatures.rsで定義されているverify_signauresが署名を検証します。

verify_signaturesに渡される4番目のアカウントはシステム手順アカウントです。ここでverify_signaturesがどのように機能するかを調べましょう。

103行目では、関数load_instruction_atが呼び出され、以前に実行された手順secp_ixがロードされます。secp_ixはSecp256k1署名検証関数を呼び出します。したがって、verify_signaturesは、以前に実行された手順secp_ixをチェックすることによって署名を検証します。さて、すべて理解できましたか?関数load_instruction_atは、どこから手順をロードするかをチェックしません!!!手順はSysvar:Instructionsからロードすることが期待されています。

しかし、攻撃トランザクションの4番目アカウントは、Sysvar:Instructionsではなく[2tHS1cXX2h1KBEaadprqELJ6sV9wLoaSdX68FqsrrZRd]です。この場合、攻撃者は署名検証プロセスを正常にバイパスしました。ワームホールは検証がパスしたと考え、メッセージがチェーンに投稿され、結果として何もロックせずに12万ETHが鋳造されました!

正規の検証手順を見てみましょう。このトランザクションは2つの手順で構成されています。最初のものはSecp256k1検証関数を呼び出し、2番目のものはverify_signatures手順を呼び出します。ここでの4番目アカウントはSysvar:Instructionsです。

12万ETHを鋳造した後、攻撃者はそれをEthereumに戻し、他のトークンに交換して利益を得ることができました。

6. パッチ

リポジトリで述べられているように、バージョン1.8.0以降、load_instruction_atは安全ではなく、Sysvarアカウントのアドレスはチェックされません。代わりに、load_instruction_at_checkedが推奨されます。

7. 私たちの考え

  • 開発者は、使用する外部関数に精通している必要があります。
  • 使用するライブラリの重要な変更に常に注意を払ってください。ライブラリが変更された場合、ライブラリを使用するコードも変更が必要になる場合があります。
  • ライブラリのメンテナーは、指定された変更による潜在的なリスクを認識し、コミュニティ全体にタイムリーに通知する必要があります。単に注釈を追加するだけでは機能せず、十分ではありません。
  • ライブラリとコードのバージョンが変更された場合は、コントラクトコードを監査する必要があります。

BlockSecについて

BlockSecは、2021年に世界的に著名なセキュリティ専門家グループによって設立された先駆的なブロックチェーンセキュリティ企業です。同社は、新興のWeb3の世界のセキュリティとユーザビリティを向上させ、その大規模な採用を促進することにコミットしています。この目的を達成するために、BlockSecはスマートコントラクトとEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威のプロアクティブなブロックのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、そしてWeb3開発者が仮想通貨の世界で効率的にサーフィンするためのMetaSuites拡張機能を提供しています。

現在までに、同社はMetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300を超える著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを受け取っています。

公式ウェブサイト:https://blocksec.com/ 公式Twitterアカウント:https://twitter.com/BlockSecTeam

Sign up for the latest updates
~$15.9M Lost: Trusted Volumes & More | BlockSec Weekly
Security Insights

~$15.9M Lost: Trusted Volumes & More | BlockSec Weekly

This BlockSec bi-weekly security report covers 11 notable attack incidents identified between April 27 and May 10, 2026, across Sui, Ethereum, BNB Chain, Base, Blast, and Berachain, with total estimated losses of approximately $15.9M. Three incidents are analyzed in detail: the highlighted $1.14M Aftermath Finance exploit on Sui, where a signed/unsigned semantic mismatch in the builder-fee validation allowed an attacker to inject a negative fee that was converted into positive collateral during settlement; the $5.87M Trusted Volumes RFQ authorization mismatch on Ethereum; and the $5.7M Wasabi Protocol infrastructure-to-contract-control compromise across multiple EVM chains.

Newsletter - April 2026
Security Insights

Newsletter - April 2026

In April 2026, the DeFi ecosystem experienced three major security incidents. KelpDAO lost ~$290M due to an insecure 1-of-1 DVN bridge configuration exploited via RPC infrastructure compromise, Drift Protocol suffered ~$285M from a multisig governance takeover leveraging Solana's durable nonce mechanism, and Rhea Finance incurred ~$18.4M following a business logic flaw in its margin-trading module that allowed circular swap path manipulatio

~$7.04M Lost: GiddyDefi, Volo Vault & More | BlockSec Weekly
Security Insights

~$7.04M Lost: GiddyDefi, Volo Vault & More | BlockSec Weekly

This BlockSec weekly security report covers eight attack incidents detected between April 20 and April 26, 2026, across Ethereum, Avalanche, Sui, Base, HyperLiquid, and MegaETH, with total estimated losses of approximately $7.04M. The highlighted incident is the $1.3M GiddyDefi exploit, where the attacker did not break any cryptography or use a flash loan but simply replayed an existing on-chain EIP-712 signature with the unsigned `aggregator` and `fromToken` fields swapped out for a malicious contract, demonstrating how partial signature coverage turns any historical signature into a generic permit. Other incidents include a $3.5M Volo Vault operator key compromise on Sui, a $1.5M Purrlend privileged-role takeover, a $413K SingularityFinance oracle misconfiguration, a $142.7K Scallop cross-pool index injection, a $72.35K Kipseli Router decimal mismatch, a $50.7K REVLoans (Juicebox) accounting pollution, and a $64K Custom Rebalancer arbitrary-call exploit.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit