
Coboセキュリティチーム解説:Stargateクロスチェーンブリッジの基盤プロトコルLayerZeroにおける重大なセキュリティ脆弱性
TechFlow厳選深潮セレクト

Coboセキュリティチーム解説:Stargateクロスチェーンブリッジの基盤プロトコルLayerZeroにおける重大なセキュリティ脆弱性
3月28日、LayerZeroは発表することなくクロスチェーン検証コントラクトの更新を行った。Coboセキュリティチームは、元の検証コントラクトと新しい検証コントラクトのコードを比較した結果、今回のアップデートが以前の重大なセキュリティ脆弱性の修正であることを発見した。
本記事はCoboのブロックチェーンセキュリティ研究チームによる寄稿です。チームメンバーは著名なセキュリティ研究所出身で、長年のネットワークセキュリティおよび脆弱性発見の経験を持ち、GoogleやMicrosoftの重大な脆弱性の対応を支援した実績があり、Google・Microsoftなどから謝辞を受け、Microsoft MSRCの「Most Valuable Security Researcher」Topランキングでも卓越した成績を収めています。現在チームは特にスマートコントラクトのセキュリティやDeFiセキュリティなどの分野に注力しており、先端的なブロックチェーンセキュリティ技術の研究と情報共有を行っています。
私たちは暗号資産分野において研究心を持ち、科学的な方法論に基づいて継続的に学び進化し続ける人材が私たちの仲間に加わることを願っており、業界に対して思考プロセスや洞察、研究結果を積極的に発信していける人を求めています!
最近、Stargateクロスチェーンブリッジの基盤プロトコルであるLayerZeroが、デフォルトのトランザクション検証コントラクトを更新しました。Coboブロックチェーンセキュリティチームの分析によると、今回のアップデートは以前のバージョンに存在していた重大な脆弱性を修正したものであり、この脆弱性によりLayerZero上に構築されたすべてのクロスチェーンプロジェクトの資産に影響を与える可能性がありました。
Stargate Finance(https://stargate.finance/)はここ最近最も注目を集めたクロスチェーンブリッジプロジェクトであり、本稿執筆時点でTVL(総担保価値)は35億ドルを超えています。
Stargateのクロスチェーンブリッジは、基盤としてLayerZeroを利用してクロスチェーンメッセージの伝送を実現しています。LayerZeroがクロスチェーンメッセージを伝送する基本的な仕組みは以下の通りです:
-
Oracleがソースチェーン上のblockhashおよびblock receiptsRootをターゲットチェーンに提出する
-
Relayerがソースチェーン上でクロスチェーンメッセージを含むトランザクションのreceiptと、そのreceiptがblock receiptsRootとMerkleパスでつながっていることをターゲットチェーンに提出する。このとき、ターゲットチェーン上のトランザクション検証コントラクトはEthereum MPT [1] の依存関係に基づき、Relayerが提出したreceiptとOracleが提出したreceiptsRootとの整合性を検証する
-
検証が成功すれば、そのreceiptは正当なものとみなされ、上位層のプロトコルに転送され、それに伴うクロスチェーン資産操作がトリガーされる
LayerZeroは3月28日、一切のアナウンスなしにクロスチェーン用の検証コントラクト[2]を更新しました。Coboセキュリティチームは、元の検証コントラクト(MPTValidator)と新しい検証コントラクト(MPTValidatorV2)のコード[3]を比較した結果、今回の更新が以前から存在する重大なセキュリティ脆弱性の修正であることを発見しました。
パッチの核心となるコードは以下の通りです:

脆弱性のある元のコードでは、MPT検証処理において、外部から渡されたpointerを使って次のレイヤー計算に必要なhashRootを取得していました。この処理ではSolidityの低レベル命令であるaddやmloadなどのアセンブリ命令を用いてproofBytesからhashRootを読み取っていましたが、pointerがproofBytesの長さ内にあるかどうかのチェックが行われていなかったため、攻撃者は範囲外のpointerを入力することで、proofBytesの外部にあるデータを次のレイヤーのhashRootとして読み取らせることができました。これにより、hashRootを偽造する可能性が生じ、さらにその結果として偽造されたトランザクションreceiptがMPT検証を通過してしまう事態が発生します。最終的には、Oracleが完全に信頼できる前提であっても、Relayerが単独でreceiptデータを偽造することによってクロスチェーンプロトコルへの攻撃を完遂できてしまうため、LayerZeroがこれまで想定していたセキュリティ前提が崩れることになります。
現在のLayerZeroプロトコルにおけるOracleはマルチシグに類似したコントラクトであり、3人のadminのうち2人が同じデータを提出すれば、そのデータは有効と判断されます。しかし、Relayerは単一のEOA(Externally Owned Account)によって制御されており、どのRelayerでも攻撃データを提出し、攻撃手順を完了させることが可能です。
パッチ適用後のコードでは、pathを引数として受け取り、safeGetItemByIndex関数を使ってMPTの次のレイヤーのhashRootを取得することで、hashRootが現在のproofBytes内に確実に存在することを保証し、MPT検証が正しく実行されることを可能にしています。
今回問題となったコードは、LayerZeroプロトコルの中核をなすMPTトランザクション検証部分であり、LayerZero全体およびその上位プロトコル(例:Stargate)が正常に動作するための基盤です。LayerZeroの開発チームはすでに明らかだった脆弱性を修正しましたが、他の未知の攻撃経路が残存している可能性も否定できません。また、LayerZeroの重要なコントラクトの多くは現時点でも依然としてEOAによって管理されており、マルチシグやタイムロックなどのセキュリティ強化措置が導入されていません。これらの特権EOAの秘密鍵が漏洩した場合、上位プロトコルすべての資産に影響が及ぶリスクがあります。
ここにCoboブロックチェーンセキュリティチームは投資家に対し新規プロジェクトのリスクに注意を喚起するとともに、LayerZero開発チームに対して、コントラクトコードの徹底的な監査を行うことに加え、速やかにEOAによる特権管理をマルチシグまたはタイムロックコントラクトへ移行し、攻撃リスクの暴露範囲を最小限に抑えるよう呼びかけます。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














