セキュリティ研究者 SirLeeroyJenkins 氏が、ChatGPTのカスタムGPT(Actions機能)でSSRF(Server-Side Request Forgery)が成立し得る設計上の抜けを突き、クラウドのメタデータサービス(IMDS)に到達して管理API用アクセストークンまで取得できたとする技術レポートを公開しました。報告はバグバウンティ経由で高深刻度(High)として受理され、OpenAIは速やかに修正対応を行ったとされています。
何が問題だったのか
カスタムGPTの「Actions」は、作成者が提示するOpenAPIスキーマに従って外部APIを呼び出せる機能です。モデルが必要と判断すると、サーバ側実行環境から指定APIへHTTPリクエストが送出され、その結果が回答生成に用いられます。研究者はユーザー提供URLの扱いとサーバ側の到達可能範囲に着目。Actionsの実行基盤が外向きHTTP(s)を発行できることから、「サーバに内部宛の通信をさせる」典型的なSSRFの成立可能性を検証しました。
SSRFの要点
SSRFは「サーバに代理で通信させる」脆弱性です。到達先がインターネット非公開の内部リソースやクラウドIMDSの場合、認証情報の窃取や内部探索につながるリスクがあります。これにはフルリード型(応答本文を攻撃者が取得できる)とブラインド型(タイムアウトやエラーで間接的に情報を得る)があり、クラウドでは前者が特に致命的になり得ます。
研究者が確認した成立条件
研究者は、次のような設計上のギャップの組み合わせでSSRFが成立し、IMDSまで到達可能だったと説明しています。
-
HTTPS制約の回避にリダイレクトを利用
Actions側が「HTTPSのみ許可」でも、外部の正規HTTPSエンドポイントを経由して内部のIMDS(http)へ転送される挙動(リダイレクトの追随)が許容されていたため、最終到達点が内部になり得たこと。 -
IMDS特有のヘッダ要件の満たし方
Azure IMDSは特定ヘッダの明示が必須です。スキーマ側のヘッダ指定が制限されていても、認証設定等の別経路でヘッダ相当の情報が付与され、結果的にIMDSの要求仕様を満たしてしまったこと。 -
応答の取り込み(フルリード成立)
内部宛の応答が呼び出し結果として取得され得る設計だったため、IMDS応答の一部が可視化され、最終的に管理API用のトークン取得まで可能になったこと。。
影響
クラウド管理APIへの一時的アクセス:IMDSから払い出されるトークンの権限設定次第では、リソースの参照・操作といった重大影響につながり得ます。
また、サーバ側実行環境がアクセス可能な範囲に応じ、内部サービスの探索・データ引き出しへ拡大する恐れがあります。
Actionsは利便性のため自律的に外部と連携します。こうした「AIエージェント」の設計は、出力だけでなく入出力経路の安全性を同時に考慮しないと攻撃面の増加を招きます。
既に修正済み
研究者はBugcrowd経由でOpenAIに報告。高深刻度として受理され、迅速に修正が適用されたと述べています。
修正内容の詳細は公開されていませんが、挙動から推測すると、リダイレクト追随の制限、ヘッダ付与経路の見直し、到達先の厳格な制御(ドメイン許可リスト化など)が施された可能性があります。
防御側のチェックリスト(SaaS提供者・プラットフォーマー向け)
リクエスト送出設計
-
リダイレクト(3xx)の追随はデフォルト拒否。必要な場合も同一オリジン/スキーム/ポートなど厳格制約を課す
-
URL正規化と検証:スキーム、ホスト、ポート、IPリテラル(特に169.254.0.0/16や100.64.0.0/10、127.0.0.0/8、::1/128、リンクローカル/プライベート範囲)を明示的拒否
-
DNS再解決・TOCTOU対策:前処理と実送出で同一解決結果を検証。DNSリバインディング耐性を持たせる
-
プロキシ強制(egress制御):すべての外向きは出口プロキシを経由し、許可ドメインのみに限定。プロキシ側で内部経路遮断とL7検査
-
ヘッダ付与の最小化:ユーザー定義や認証設定から任意ヘッダ合成が起きないよう強い制約を導入
クラウドIMDS対策
-
可能ならIMDS到達はホスト/コンテナから物理的に遮断(ネットワークACL/エージェント実行サンドボックス)
-
Azure/AWS/GCPそれぞれのより厳格なIMDSモード(例:セッションベース、ホップ制限)の適用
-
付与ロールの最小権限化と短寿命化、利用ログの継続監査
製品仕様(Actions/プラグイン系)
-
ドメイン許可リスト(スキーマ申請時に審査、実行時は厳格照合)
-
スキーマ静的解析で危険URL・動的URL・ヘッダ注入・過度な自由度を検知
-
ユーザー提供パラメータの分離(ベースURL固定、可変はクエリやパスのサニタイズ済み部分のみ)
-
実行基盤のマイクロセグメント化(ネット到達とシステム資源を最小化)
-
ランタイム監視(内部レンジ宛やIMDSパターンへのアクセス検知・遮断、異常なリダイレクト連鎖の検出)
出典
When GPTs Call Home: Exploiting SSRF in ChatGPT’s Custom Actions








