Hugging Faceのdiffusersライブラリの脆弱なバージョンに存在する3件の深刻度「高」の欠陥により、細工されたモデルリポジトリが対象の読み込み処理中に任意のコードを密かに実行できることが判明しました。これにより、まさにそうした事態を防ぐために設けられていた安全対策が回避されてしまいます。
脅威エクスポージャー管理企業Zafran Securityが7月27日に公開した 調査によると、これらの脆弱性はtrust_remote_code、すなわちモデル取得時に未レビューのコードが実行されるのを阻止するための仕組みを突破していました。
このライブラリは月間約700万件、1日あたり約20万件のダウンロード数を誇り、本番稼働中のAIパイプラインやCI/CDシステム、コンテナイメージに組み込まれています。
今回の発見は、OpenAIのフロンティアモデルがHugging Faceの本番インフラに侵入した事案から数日後に明らかになったものです。この侵入では週末だけで17,000件を超えるイベントが記録されていました。この侵入事案はデータセット処理の経路を悪用したものでしたが、今回の脆弱性はモデルの読み込み処理を標的としています。Zafranは、両者はいずれも同じ弱点を示していると指摘しました。すなわち、AIリポジトリのコンテンツが実行可能なコードへと静かに変化しうるにもかかわらず、受動的なデータとして扱われている点です。
OpenAIの事案についてコメントしたAIクラウドセキュリティ企業Sysdigのサイバーセキュリティ戦略担当、Crystal Morin氏は、Hugging Faceへの侵入を検知できた要因は境界防御ではなく「インフラレベルでの行動異常検知」だったと述べています。同氏は、アプリケーションプロセスから特権コンテナが立ち上がる様子を検知できているかを各チームが確認すべきだとし、モデルの重みについてもデータベース同様に厳格なバックアップを取るべきだと指摘しました。
Hugging Faceを巡る脅威についてさらに読む: 悪意あるHugging FaceリポジトリがOpenAIをタイポスクワッティング
チェックとコード読み込みの分離
3件の脆弱性はいずれも同じ根本原因を抱えていました。信頼性チェックが実行されるタイミングと、実際にコードが読み込まれるタイミングが異なっていたのです。モデル取得時、チェックは2回の連続した非アトミックなHTTPリクエストのうち最初のリクエストで取得した設定ファイルに対して実行されます。そのため、ローダーにチェックが検知していないカスタムコードを認識させる手法であれば、回避が可能でした。
CVE-2026-44827(CVSS 8.8)は、文字列フォーマットの癖を突いたものです。カスタムパイプライン引数が指定されない場合、ローダーはNone.pyというファイル名を生成し、それがリポジトリ内に存在するかどうかを確認します。このチェックは別のコードパスを使用しており、None.pyをフラグ対象として検知していませんでした。そのため、このファイルを含むリポジトリはチェックを通過しつつ、読み込み時に攻撃者のコードを実行してしまいます。
CVE-2026-45804(CVSS 7.5)は、2回のリクエストの間に生じる隙を悪用したものです。最初のリクエストが完了した後、2回目のリクエストが実行される前に、カスタムコードを参照するよう設定を書き換えることで、注入したコードが実行されます。Zafranのテストでは、この隙間は約0.3秒であり、悪用には1回目のダウンロードがキャッシュされていないことが条件となります。それでもZafranは、人気のあるリポジトリであれば、悪意ある設定を一時的にプッシュしてすぐに元に戻すという手法で統計的に成功を収めることが可能だと指摘しています。
5月にパッチ適用済み
CVE-2026-44513(CVSS 8.8)としてまとめられたさらに3種類の亜種も同じ根本原因を共有しており、その一つはローカルスナップショットから読み込む際にチェックを完全に回避するものでした。Zafranは、Hugging Faceのtransformersパッケージにも並行して同様の脆弱性が存在することを明らかにしており、同社のセキュリティチームもこれを認めているとしています。
ログ管理ベンダーSumo LogicのCISO、Jeremy Powell氏は、今重要となる防御策は「地味なもの」だと述べています。具体的には、送信トラフィック制御、セグメンテーション、認証情報の適切な管理であり、これらに加えて攻撃の速度に見合った検知体制が必要だとしています。
Hugging Faceは5月1日にdiffusers 0.38.0をリリースし、セキュリティチェックを動的モジュール読み込みの段階へと移動させることで、確認された亜種の問題を修正しました。Zafranによると、最初の2件の脆弱性は3月19日に報告し、CVEは5月に公開されたとのことです。
翻訳元: https://www.infosecurity-magazine.com/news/hugging-face-diffusers-trust/