XRP Ledger、無料でXRPを作成できた可能性のあるバグを修正
XRP Ledgerで最近、攻撃者が本来の価値に見合う額を支払わずにXRPを作成できた可能性のある脆弱性が公表されました。このバグは修正済みで、RippleXは公開ネットワークで悪用された証拠はないと報告しています。資金の損失や鍵の侵害はなく、コンセンサスに関する問題も報告されていません。
研究者のケイデン・リャオ氏は、XRPLのバグ報奨金プログラムを通じて9月22日にこの脆弱性を報告しました。発見にはVeria AIも貢献したとされています。修正はわずか3日後の9月25日、xrpld 3.4.1でリリースされました。リリースノートでは当初、詳細不明のセキュリティ修正として言及されていましたが、完全な開示情報は10月9日に公開されました。
バグの仕組み
この脆弱性は、多数のオーダーブック上の注文から流動性を調達する支払いを処理する際に発生する整数オーバーフローに関係していました。XRPの数量は64ビット整数に累積されます。合計がその表現可能な上限を超えると、値が桁あふれして、はるかに小さな数値に変わる可能性がありました。
攻撃者は、価格設定に誤りのある数百件の注文を1回の支払いに組み合わせることで、この挙動を悪用できる可能性がありました。売り手には多額のXRPが入金される一方、買い手の支払額は大幅に少なくて済む可能性がありました。新たに生成されたXRPは、複数のアカウントに分散され、使用されるおそれがありました。
この攻撃は実行にまったく費用がかからないわけではなく、アカウントの準備金や取引手数料としてXRPが必要でした。ただし、準備金の大部分は回収できる可能性がありました。
重要である理由
1,000億XRPはすべてローンチ時に生成されており、台帳の設計上、通常の取引によってXRPを追加生成することはできません。この根本的な供給制限を回避できる脆弱性は、重大なセキュリティリスクとなっていました。
このバグは2015年から存在していた可能性があります。RippleXは単独サーバー上でこの問題を再現し、生成されたXRPを実際に使用できることを確認しました。これにより、この脆弱性が技術的に悪用可能であることが示されました。
緊急パッチとそのトレードオフ
脆弱性が深刻な結果を招く可能性があったため、開発者は通常の変更スケジュールを待たずにパッチをリリースしました。アップデートの展開中は、旧バージョンと新バージョンのソフトウェアを実行するノード間で、攻撃トランザクションが有効かどうかの判断が食い違う可能性がありました。
チームは、不正なXRPの生成を許すよりも、一時的な互換性リスクを受け入れるほうが望ましいと判断しました。しかし今回の事例は、コア開発チームを信頼すること、そして重大な脆弱性が見つかった際にネットワーク運営者が速やかにアップグレードすることの重要性も浮き彫りにしました。
XRP Ledgerは深刻な脆弱性に迅速に対応し、公開ネットワーク上で悪用されたことを示す報告はありません。しかし、このバグが約10年間コードに残っていた可能性を考えると、セキュリティテストや、ブロックチェーンにおける供給量管理の長期的な信頼性について、重要な疑問が生じます。
AIを活用したセキュリティ研究により、研究者が既存の暗号資産インフラに潜む脆弱性を特定できるケースが増えています。今回の事例は、基本的な教訓を改めて示しています。トークンの供給量が固定されていても、それを確実に維持できるかどうかは、そのために設計されたコードの信頼性にかかっています。

