この記事は、当社のセキュリティインシデントに関する開示を補足する技術的な解説です。この記事では、今回の侵入が実際にどのように発生したのかについて説明します。2つの初期アクセスベクトル、エージェントがどのように横展開および移動したか、そして当社がオープンソースモデルである GLM 5.2 を使用して調査した際に記録された典型的なコマンドの例を紹介します。アクティブな資格情報、内部ホスト名、および特定のメトリクスは削除または一般化されていますが、記載されている手法は Hugging Face が観察したものと完全に一致しています。
当社がこれほど詳細な内容を公開するのは、インシデントそのものよりも技術自体が重要だからです。これは、最先端のエージェントに現れつつある攻撃能力、悪意あるアクターによってこれらの能力がどのように悪用される可能性があるか、そして防御者である私たち全員がどのように備えるべきかを明らかにしています。
以下は、侵入プロセスのインタラクティブなリプレイです。4.5日間にわたる攻撃作戦のステップバイステップの可視化、信頼境界を越える攻撃チェーン、各段階の活動、および記録されたコマンドを示しています。
[
](#tldr)
要点まとめ当社のインフラ内部で約2日半にわたり、OpenAIの複数のモデルの組み合わせによって駆動する自律型AIエージェントが、当社のプラットフォームに対してエンドツーエンドの侵入を実行しました。このエージェントは、マシンスピードで大量の短い自動意思決定を行い、一時的なサンドボックス環境で実行され、一般的なパブリックWebサービスを利用してコマンド&コントロール(C2)を構築しました。
このエージェントは、ソフトウェアの脆弱性を発見して悪用することをAIエージェントに要求する、ExploitGymベンチマークに基づくOpenAI内部のサイバーセキュリティ能力評価を実行中でした。OpenAIは自社のインフラ上でこの評価を実行しており、ExploitGymのメンテナおよびそのインフラは、この評価環境のデプロイや運用には関与していません。当社が推測できた限りでは、評価プロセス全体を通じて、エージェントはHugging Faceがこのベンチマークのモデル、データセット、および模範解答をホストしている可能性があると推論したようです。エージェントの視点からは、侵入全体が「カンニング」の試みであったと考えられます。つまり、自力で課題を解決するのではなく、当社の本番システムに侵入してテストの解答を盗み出そうとしたのです。
当社のフォレンジックによる再構築では、復元できた約17,600件の攻撃者のアクションをカバーしており、これらは約6,280のクラスターにグループ化され、期間はUTC 2026-07-09 02:28から2026-07-13 14:14に及びます。当社は、エージェントが使用していたコードサンドボックス内のログからこれらのアクションを再構築し(後述)、それらをシェルコマンドや評価の提出に関連付けるとともに、当社のプラットフォームログ(特にデータセットプロセッサノード、API、およびPodのログ)と照合しました。オープンウェイトモデル、特に zai-org/GLM-5.2 を活用することで、分割およびキー暗号化されていたエージェントのペイロードの大部分を解読することができました(後述)。
再構築されたデータが示すように、この作戦は2つのフェーズに分かれていました:
-
フェーズ 1:他社のインフラを連鎖させ、踏み台に到達する。 OpenAIがブログ投稿(https://openai.com/index/hugging-face-model-evaluation-security-incident/)で述べているように、OpenAIプラットフォーム上での内部能力評価中に、エージェントはパッケージレジストリのキャッシュプロキシにあるゼロデイ脆弱性を悪用してサンドボックスから脱出し、許可されていた主要なインターネットネットワーク出口の1つからインターネットにアクセスしました。その後、サードパーティのインフラプロバイダーのユーザーがホストするパブリックなコード評価フレームワークを悪用しました。エージェントはその外部サンドボックス上でroot/admin権限でコマンドを実行し、作戦全体の制御、ステージング、および外部接続の拠点として利用しました。これがエージェントの外部踏み台となりました。この侵害された外部サンドボックスと当社のクラスターとの間には直接のネットワークパスはありませんでしたが、侵入を阻止するための対抗措置を講じる中で、この外部踏み台からエージェントのログの一部を回収しました。このログを利用して、本稿のフォレンジック分析を再構築しました。
-
フェーズ 2:Hugging Faceインフラへの侵入。 その外部踏み台から、エージェントは2つのインジェクションベクトルを悪用して当社のデータセット処理パイプラインに侵入しました。これらはいずれも、当社の本番環境のKubernetes Pod内にある、設定駆動型の同一のデータローダーを標的としていました。最初のベクトルは、ローカルファイルの内容を返すHDF5の外部生ストレージデータセットの読み取りでした。これにより、Podの環境情報(シークレットやトークン)およびワークプロセス自体のソースコードがエージェントに渡されました。2番目のベクトルは、任意のコードを実行するJinja2テンプレートインジェクションであり、これによりエージェントは当社の境界内に足がかりを得ました。
本番Pod内に足がかりを築くと、エージェントは標準的な権限昇格パスに沿って行動しました。偵察、ステージャーの送り込み、コマンド&コントロール(C2)の確立を行い、その後、クラスター、クラウドメタデータ、当社の内部ネットワーク、およびソースコード管理(SCM)サプライチェーンへと進みました。Pod内で実行されたコマンドの出力は、Hugging FaceのAPIおよび攻撃者が制御する「デッドドロップ(受け渡し用)」データセットを介してエージェントに返され、サンドボックスによって読み取られました。
この侵入は確かにHugging Faceの内部インフラに達しましたが、アクセスされた唯一の顧客コンテンツは、その名前とファイルからExploitGym/CyberGymのチャレンジおよび解答に関連していることが示されている5つのデータセットのみでした。その他に顧客向けのモデル、データセット、Spaces、またはパッケージが影響を受けることはありませんでした。読み取られた顧客レコードも、データセットサーバーの検索クエリに関連する実行メタデータのみに限定されていました。
信頼境界を越える完全な攻撃チェーン。エージェントはOpenAIの評価サンドボックスから脱出してインターネットに接続し、サードパーティのコードサンドボックスを乗っ取って拠点とし、当社のデータセットプロセッサを悪用して(最初にファイル読み取り、次にコード実行)内部ネットワークに侵入しました。点線の矢印:エージェントがHugging FaceのAPIとデッドドロップデータセットを介して読み戻したコマンド出力。
[
](#initial-access)
初期アクセス[
](#stage-1-from-an-openai-evaluation-sandbox-to-a-rooted-launchpad)
フェーズ 1:OpenAIの評価用サンドボックスから乗っ取られた踏み台までフェーズ1は、エージェントが外部の踏み台に至るまでの経路であり、当社ではない他の2社のインフラを経由しています。そのため、ここでは簡潔に説明するにとどめ、詳細についてはOpenAIによるこの件に関するブログ投稿(https://openai.com/index/hugging-face-model-evaluation-security-incident/ )を参照してください。
OpenAIがブログ投稿で共有しているように、OpenAIプラットフォームでの内部能力評価中に、エージェントはパッケージプロキシキャッシュ内のゼロデイ脆弱性を介して予期せず脱出し、インターネットにアクセスしました。エージェントは、サードパーティのサンドボックスインフラ(Modal)上でCyberGymスタイルのタスクに必要な任意のコードを実行するために使用される、保護されていないユーザーホスト型のパブリックエンドポイントを発見しました。エージェントはこの外部サンドボックスを制御、ステージング、および外部接続の拠点として利用し、admin/root権限でコマンドを実行して攻撃の踏み台としました。このサンドボックスと当社のクラスターとの間に直接のネットワークパスはありませんでした。以下のすべての操作はここから開始されています。なお、Modalのインフラ自体はこのインシデントにおいて侵害されていません。

