OWN NEWS GATHER
← 戻る
The Hacker News

AI決済規格「x402」のSDKに致命的な脆弱性、エージェントの残高全損や不正認証のリスクが判明

要点

  • セキュリティ企業V12の調査により、AIエージェントの決済規格「x402」の公式SDKに3件の致命的な欠陥を含む計25件の不具合が見つかった。

  • クライアントの初期設定に支出上限がなく、悪意あるAPIがエージェントのウォレットからトークン残高を全額引き出せる状態だった。

  • Solana決済で送金のない承認処理を支払いと誤認する不備や、外部サイト向けのログイン署名を不正に中継される欠陥も判明した。

  • 致命的な問題は2026年8月18日に修正済みだが、公式なセキュリティ勧告が公開されておらず、主要な脆弱性警告ツールに反映されていない。

  • AIエージェントが自律的にWeb APIの利用料を支払うためのオープン規格「x402」のソフトウェア開発キット(SDK)において、ウォレット内のトークン残高をすべて抜き取られる恐れがあるなど、重大な欠陥が複数存在していたことが明らかになった。セキュリティ企業のV12が2026年10月22日に公表した調査結果で判明した。SDKを管理するx402 Foundationは同年8月に修正版をリリースしているものの、セキュリティ勧告が正式に登録されていないため、開発者が更新に気づきにくい状況となっている。

25件の欠陥を特定、悪用被害は未報告

セキュリティ企業のV12は、x402のソースコード検証とローカル環境でのテストを実施し、合計25件のセキュリティ上の欠陥を発見した。このうち3件が最も深刻度の高い「致命的(Critical)」と評価されている。現時点で、V12およびx402 Foundationの双方が、これらの欠陥を悪用した実際のサイバー攻撃は確認されていないと報告している。

支出上限の未設定により残高全額が流出する恐れ

最も深刻な問題の一つは、SDKに用意されたデフォルトクライアントに支出上限(スペンディングリミット)が設定されていなかった点だ。x402は、サーバーがHTTPステータスコード「402 Payment Required(支払いが必要)」とともに金額やトークンの種類、振込先を提示し、クライアントが署名した支払い情報を添えて再リクエストを送る仕組みを採用している。

修正前のデフォルトクライアントは、サーバーが提示した支払い候補の先頭を無条件に選択し、要求された金額の上限を一切確認していなかった。そのため、攻撃者が運営する悪意あるAPIサーバーは、通常のデータ取得要求に対してウォレットの全残高を支払うよう要求することが可能だったという。事前に少額の決済を行わせてウォレットアドレスを特定しておけば、残高を事前に調べた上で全額を指定することも容易だったとされる。

このリスクは、ユーザーの確認を介さずに自動で支払いに署名し、かつアプリケーション側で上限設定を行っていないエージェントにおいて顕在化する。x402 Foundationは8月18日の更新で、TypeScript、Python、Go向けのクライアントに支出制御機能を追加した。これにより、デフォルトでは1回の支払い上限が1ドルに抑えられ、USDCなどSDKが公認する米ドルステーブルコインのみが決済対象として認められる仕様に変更された。

Solanaでの「支払い回避」と不正なログイン署名の中継

残る2件の致命的な欠陥のうち1件は、Solanaブロックチェーンにおける決済処理で見つかった。x402では、支払いの検証やブロックチェーンへのトランザクション送信、および手数料の支払いを「ファシリテーター」と呼ばれる中継サービスが担当する。

TypeScript版のファシリテーターは、支払い要求が許可されたトークンプログラムを呼び出していることだけを確認し、処理の命令タイプ(instruction type)を検証していなかった。Solanaでは、残高を移動させずに将来の利用権限だけを渡す「承認(Approval)」と実際の「送金(Transfer)」のデータ構造が、先頭の1バイトを除いて同一である。V12がローカル環境で検証したところ、トークンの移動を伴わない承認処理が有効な支払いとして受理される現象が確認された。これにより、攻撃者はトークン残高を一切消費することなく有料リソースを詐取でき、取引手数料もファシリテーター側に負担させることが可能だったという。この問題はTypeScript SDKの「@x402/svm」バージョン2.0.0から2.22.0までに存在し、バージョン2.23.0で解消された。なお、PythonおよびGoのSDKには当初から命令タイプの検証が含まれていた。

もう1件は、暗号資産ウォレットの署名を使って本人確認を行う拡張機能「Sign-In-With-X(SIWx)」に起因するものだ。Ethereumなどにおいて過去の支払い実績を証明してログインする際、クライアントが署名対象のメッセージに含まれる接続先Webサイトの正当性を検証していなかった。悪意あるサーバーが別の正規サイトから取得したログイン要求メッセージをエージェントに中継して署名させれば、エージェントになりすましてその正規サイトへ不正ログインできる状態になっていた。

公式アドバイザリ未公表によるアップデート検知の遅れ

これらの致命的な不具合は8月18日の各SDKのリリースによってすでに対処されているが、開発者への情報伝達体制には不備が指摘されている。x402 FoundationはGitHub上で公式のセキュリティアドバイザリを公開しておらず、更新履歴(チェンジログ)でもセキュリティ修正であることを明記せずに改修内容を記載していた。

The Hacker Newsが10月23日時点で調査したところ、修正前のTypeScript版パッケージに対する「npm audit」の実行結果や、Python版パッケージを掲載するPyPI(Python Package Index)の登録情報において、脆弱性の警告は一切表示されない状態であることが確認された。これにより、自動化された依存関係チェックツールに頼っている開発者は、ライブラリの更新が必要であることに気づけないリスクを抱えている。

x402は米Coinbaseが開発し、今年設立されたx402 Foundationへ移管された規格だ。同団体はVisaやMastercardなども参加するLinux Foundationの傘下プロジェクトであり、Coinbaseが技術運営委員会の最上位の役職を務めている。

元URL