数千万回のダウンロード実績があるHugging Faceモデルで使用される人気のAI/ML向けPythonライブラリに存在する脆弱性により、リモート攻撃者はメタデータ内に悪意あるコードを隠し込めます。その後、汚染されたメタデータを含むファイルが読み込まれると、コードが自動的に実行されます。
オープンソースのライブラリである NeMo、Uni2TS、FlexTok は、それぞれNvidia、Salesforce、Appleが、スイス連邦工科大学のVisual Intelligence and Learning Lab(EPFL VILAB)と協力して作成しました。
3つのライブラリはいずれも、Metaが保守し、機械学習プロジェクトの設定管理ツールとして一般的に使われる別のPythonライブラリ Hydra を使用しています。具体的には、脆弱性はHydraのinstantiate()関数に関係しています。
Palo Alto NetworksのUnit 42がこのセキュリティ上の欠陥を発見し、各ライブラリのメンテナに報告しました。メンテナはその後、セキュリティ警告、修正、そして2件についてはCVEを発行しています。脅威ハンターによれば、現時点でこれらの脆弱性が野放しの環境で悪用された事例は確認していないものの、「攻撃者がこれらを悪用する機会は十分にある」としています。
「開発者が、最先端モデルの独自バリエーションを、異なるファインチューニングや量子化で作成するのは一般的であり、しばしば信頼できる機関に所属しない研究者によるものでもあります」と、Unit 42のマルウェア研究エンジニアであるCurtis Carmonyは火曜日の分析で書いています。「攻撃者は、既存の人気モデルに対して、実際の、あるいは主張上の利点を伴う改変を加え、そこに悪意あるメタデータを追加するだけでよいのです。」
さらにHugging Faceは、他のファイルに比べてメタデータの内容を容易に参照できるようにはしておらず、また safetensors やNeMoのファイル形式を使用するファイルを、潜在的に安全でないものとしてフラグ付けしていません。
Hugging Face上のモデルは100種類以上の異なるPythonライブラリを使用しており、そのうち約50がHydraを使用しています。「これらの形式自体は安全かもしれませんが、それらを消費するコードには非常に大きな攻撃対象領域があります」とCarmonyは書いています。
The RegisterはHugging Faceに加え、各ライブラリのメンテナ(Meta、Nvidia、Salesforce、Apple)にも連絡しましたが、返答は1件のみでした。Salesforceの広報担当者は次のように述べています。「当社は2025年7月にこの問題を先回りして修正しており、顧客データへの不正アクセスの証拠はありません。」
他の企業から返答があれば、本記事を更新します。
Hydra
前述のとおり、脆弱性は、NeMo、Uni2TS、FlexTokが、モデルのメタデータから設定を読み込むために hydra.utils.instantiate() 関数を使用する方法に関係しており、これによりリモートコード実行(RCE)が可能になります。
これらライブラリの作成者またはメンテナは、instantiate()がインスタンス化するクラス名だけを受け取るわけではない点を見落としていたようです。instantiate()は任意の呼び出し可能オブジェクト(callable)の名前も受け取り、与えられた引数を渡して実行します。
これを悪用することで、攻撃者は eval() や os.system() といったPython組み込み関数を使って、より容易にRCEを達成できます。
Metaはその後、instantiate()の使用時にRCEが可能であることを示す警告を含める形でHydraのドキュメントを更新し、呼び出し前に_target_の値を危険な関数のリストと照合するブロックリスト機構を追加するようユーザーに促しました。ただし現時点では、このブロックリスト機構はHydraのリリースとして提供されていません。
以下では、Hydraのinstantiate()関数を使用する3つのAI/MLライブラリと、関連する脆弱性を詳しく見ていきます。
NeMo
NeMoは、Nvidiaが2019年に作成したPyTorchベースのフレームワークです。.nemoおよび.qnemoの拡張子は、model_config.yamlファイルを含むTARファイルで、それぞれモデルのメタデータを、.ptファイルまたは.safetensorsファイルとともに格納します。
ここでの問題は、これらのNeMoファイルがhydra.utils.instantiate()へのAPI呼び出しを行う前にメタデータがサニタイズされないことです。その結果、攻撃者は悪意ある細工を施したメタデータを含む.nemoファイルを読み込ませ、脆弱性をトリガーしてRCEを達成したり、データを改ざんしたりできます。
Nvidiaはこの高深刻度のバグを追跡するために CVE-2025-23304 を発行し、NeMoバージョン2.3.2で修正をリリースしました
NeMoはHugging Faceとも統合されており、攻撃者はモデルがダウンロードされた後、同じコードパスをたどってこの脆弱性を悪用できる可能性があります。
Unit 42によると、さまざまな開発者によるHugging Face上の700以上のモデルが、NeMoのファイル形式で提供されています。
Uni2TS
Uni2TSはSalesforceが作成したPyTorchライブラリで、時系列解析向けのMorai基盤モデルで使用されているほか、Hugging Faceで公開されている一連のモデルでも使用されています。
このライブラリは.safetensorsファイルのみを扱います。safetensorsは、読み込み時に任意コード実行を許すpickleとは異なり、テンソルを保存するための安全な形式としてHugging Faceが作成したものです。
これらのライブラリを使用するSalesforceのモデルは、Hugging Face上で数十万回ダウンロードされており、他のユーザーもこれらのモデルの複数の派生版を公開しています。
Hugging Faceはまた、フレームワークの他の部分と統合できるカスタムモデルクラスを作成するための PyTorchModelHubMixin インターフェースも提供しています。
このインターフェースはコーダー関数を登録するための特定の仕組みを提供しており、そして――お察しのとおり――uni2TSライブラリはこの仕組みを使用して、hydra.utils.instantiate()の呼び出しを介し、特定の引数の設定をデコードしています。
7月31日、Salesforceは CVE-2026-22584 を発行し、修正を展開しました。
FlexTok
昨年初め、AppleとEPFL VILABは、AI/MLモデルが画像を処理できるようにするPythonベースのフレームワークFlexTokを作成しました。
uni2TSと同様に、FlexTokはsafetensorsファイルのみを使用し、PyTorchModelHubMixinを拡張しており、.safetensorsファイルから設定とメタデータを読み込めます。メタデータをデコードした後、FlexTokはそれを hydra.utils.instantiate() に渡し、これが脆弱性をトリガーします。
「2026年1月時点で、Hugging Face上でml-flextokライブラリを使用しているモデルは、EPFL VILABが公開したモデル以外には見当たらず、それらの合計ダウンロード数は数万回に達します」とCarmonyは書いています。
AppleとEPFL VILABは、設定の解析に YAML を使用することで、これらのセキュリティ問題を修正しました。メンテナはまた、Hydraのinstantiate()関数を呼び出せるクラスの許可リストを追加し、信頼できるソースのモデルのみを読み込むべきである旨を記すようドキュメントを更新しました。 ®
翻訳元: https://go.theregister.com/feed/www.theregister.com/2026/01/13/ai_python_library_bugs_allow/