Unslothのモデルピッカーにコード実行の問題があった

Unsloth Studioでモデルを選択するだけで、そのリポジトリにあるPythonコードが自動的に実行され、認証情報やデータ、モデルアーティファクトが流出する恐れがありました。

AIモデルのトレーニングツールUnslothは、その名のとおり、開発者がモデルを確認しただけで、求められた以上の働きをしていました。開発者のマシン上で任意のコードまで実行してしまう問題があったのです。

Pillar Securityの調査により、Unsloth Studioでモデルを選択するだけで、アプリケーションがモデルリポジトリからPythonコードをダウンロードして実行することが判明しました。攻撃者が細工したモデルを用意すれば、開発者のシステム上で悪意のあるコードを実行させることも可能になります。

研究者のAriel Fogel氏は、Pillarのブログ記事で次のように述べています。「コードが実行されたきっかけは、メタデータの確認だけでした。モデルのconfig.jsonを読み込むだけでエクスプロイトが発動し、バックエンドが重みを読み込んだり推論を実行したりする必要はありませんでした」

コードはユーザーの権限で実行されます。Fogel氏によると、企業のAI開発環境では、独自のトレーニングデータやモデルアーティファクト、Hugging Faceトークン、SSH鍵、アクセス可能なクラウド認証情報が流出しかねません。

Unsloth Studioは、現在ベータ版のWebベースのインターフェースです。Unslothのメンテナーは、6月に修正した後も、ベータ版であることを理由に、セキュリティアドバイザリの公開やCVEの割り当てを見送ったと伝えられています。Pillarはこの理由に異議を唱えています。脆弱なStudioのコードは、PyPIで公開されている一般提供版の標準パッケージ「unsloth」に含まれており、ベータ版やプレリリース版を選ばなくても、通常の「pip install unsloth」でインストールできると指摘しています。

Transformersの設定が突破口に

Unslothは、Hugging Faceのtrust_remote-codeオプションを使用しています。このオプションを使うと、モデルが必要に応じて独自のPythonコードを持ち込めます。

Fogel氏によると、この機能自体が必ずしも危険というわけではありません。IBM GraniteのSpeechとVision、DeepSeek-OCR、ChatGLM、初期のQwenリリースなど、正規のHugging Faceモデルの中にも、正常に動作させるためにカスタムコードを必要とするものがあります。

問題は、リモートコードの実行をユーザーが明示的に許可する形ではなく、Unslothが通常のモデル確認の際に、この機能を自動で有効にしていたことです。パッチ適用前は、Unslothが検査対象モデルの情報を取得するためにHugging FaceのTransformersのモデル読み込み機能を使う際、「trust_remote_code」がデフォルトでオンになっていました。

Unslothのメンテナーは、Hugging Face自体のマルウェアスキャンや、カスタムコードを含むモデルに対する警告があることも、この問題を脆弱性として扱わない理由に挙げました。これに対しPillarは、Hugging Faceの保護策は主にブロックリスト方式だと反論しています。同社の概念実証(PoC)コードはスキャンで検知されませんでしたが、Unslothで処理された場合に限り、悪意のある第2段階のペイロードを取得できたといいます。

ただしFogel氏は、これはHugging Faceの脆弱性ではなく、Unslothによるtrust_remote_codeの使い方の問題だと強調しています。

修正は、設定を切り替えるだけにとどまりませんでした。Pillarは当初、モデル確認の処理ではconfig.jsonの宣言的な情報を読むだけで済むため、その経路でtrust_remote_code=Falseに固定するよう推奨していました。Unslothが最終的に行った修正は、それよりも踏み込んだものです。

バージョン2026.6.9では、StudioがHugging Faceから直接任意のモデルを読み込む機能を無効にし、ローカルのモデルファイルに含まれるリモートコードも信頼しないように変更されました。Fogel氏は、同社が独自にこのバージョンを再テストし、Hugging Face経由とローカルディレクトリ経由の両方の攻撃経路が塞がれたことを確認したと述べています。

Pillarはユーザーに対し、Studioを起動せずUnslothのコアだけを使っている場合でも、修正版へアップグレードするよう促しています。さらに、LLMのワークフローを監査し、不要なtrust_remote_code=Trueが使われていないか確認するよう勧めています。

Fogel氏は次のように警告しています。「自動化されたリポジトリスキャンやエージェント型のエクスプロイト、組織的なサプライチェーンキャンペーンにより、一見無害なauto_mapモジュールでさえ、AI普及前よりはるかに早く悪用できます。攻撃者がエクスプロイトに要する時間は短くなり続けています」

この記事はもともとInfoWorldに掲載されました。

Shweta氏は2017年からエンタープライズ技術について執筆しており、直近ではCSO onlineでサイバーセキュリティを取材しています。ランサムウェアからゼロトラストアーキテクチャまで、複雑なテーマを専門家にも一般の読者にもわかりやすく解説しています。アジアン・カレッジ・オブ・ジャーナリズムでジャーナリズムの大学院ディプロマを取得。サイバー脅威の解読に追われていない時間は、小説や映画、新しいレシピの試作を楽しんでいます。

翻訳元: https://www.csoonline.com/article/4228910/unsloths-model-picker-had-a-code-execution-problem-2.html

本記事は csoonline.com の記事を翻訳・要約したものです。