セキュリティ Hugging Face Transformersに脆弱性、なぜ「同意しない」を選んでもコードは残るのか。CVE-2026-80047の仕組みを読み解く Hugging Face製のPythonライブラリTransformersに、外部モデルのカスタムコードを利用者の同意確認前にディスクへ書き込んでしまう脆弱性CVE-2026-80047が見つかった。対象バージョンと影響、対策を整理した
30秒で分かる結論
AIモデル共有プラットフォーム「Hugging Face」が提供するPythonライブラリ「Transformers」に、脆弱性CVE-2026-80047が見つかりました。対象バージョンはv4.49.0からv5.8.1です。Transformersには「load_custom_generate()」という機能があり、AIモデルの提供元が指定した独自の生成処理コード(custom_generate/generate.py)を外部のリポジトリから取得して実行できます。今回見つかった問題は、このコードが、利用者が「信頼して実行するか」を確認する画面(trust_remote_codeの同意確認)に答える前に、いったんローカルのキャッシュフォルダ(~/.cache/huggingface/modules)へ書き込まれてしまう仕組みになっていたことです。つまり利用者が確認画面で実行を拒否しても、コード自体はすでにディスク上に保存されてしまいます。この脆弱性は、米国のセキュリティ機関CERT/CC(VU#456290)と、日本のIPA・JPCERT/CCが共同運営する脆弱性情報ポータル「JVN」(JVNVU#97909245)で、2026年9月2日に公表されました。記事執筆時点でTransformers開発元からの修正版は確認されておらず、信頼できないモデルのリポジトリでload_custom_generate()を使わないことと、キャッシュフォルダの内容を定期的に確認・削除することが呼びかけられています。
まず初めに
「実行しますか?」と聞いておいて、返事を待たずにこっそり荷物を部屋に運び込んでしまう宅配業者がいたら、誰でも不気味に思うはずだ。今回の脆弱性は、まさにそういう話である。利用者が「いいえ」と答えても、コードはすでに部屋の隅に置かれている。Hugging Faceは世界中の開発者が日常的に使う定番ツールだけに、こういう「確認画面はあるのに確認の意味を成していない」設計は、地味だが影響範囲が広い問題だ。※個人の感想です
生成AIによるイメージ。実物や実際の画面ではありません。
何が起きているのか
Hugging Faceは、AIモデルやデータセットを開発者同士が公開・共有できるプラットフォームです。同社が公開しているPythonライブラリ「Transformers」は、世界中の研究者・エンジニアが機械学習モデルを扱う際に広く使っている定番ツールの一つです。
Transformersには、AIモデルの提供元がモデル固有の生成処理を独自に定義できる「load_custom_generate()」という機能があります。この機能を使うと、モデルのリポジトリに含まれる「custom_generate/generate.py」という外部のPythonファイルを取得し、実行できます。外部から取得したコードをそのまま実行するのは本来リスクが高いため、Transformersには「trust_remote_code」という、利用者に実行の可否を確認する仕組みが用意されています。
ところが今回見つかった脆弱性では、この確認処理(resolve_trust_remote_code)が行われる前に、リポジトリから取得したファイルをローカルのキャッシュフォルダ(~/.cache/huggingface/modules)へ書き込む処理(get_cached_module_file)が先に実行されてしまうことが分かりました。*本来は「確認してから実行」のはずが、実際には「保存してから確認」になっていたわけだ。*この結果、利用者が確認画面で実行を拒否しても、攻撃者が用意したPythonコードはすでにディスク上のキャッシュフォルダに残ってしまいます。残ったファイルは、その後の別の操作で意図せず読み込まれ、実行されてしまう可能性が指摘されています。
対象バージョンはv4.49.0からv5.8.1です。この脆弱性はCVE-2026-80047として採番され、米国のセキュリティ機関CERT/CCが「VU#456290」として、日本ではIPA・JPCERT/CCが共同運営する脆弱性情報ポータル「JVN」が「JVNVU#97909245」として、2026年9月2日にそれぞれ公表しました。記事執筆時点で、Transformers開発元からの修正版の提供は確認されていません。
なぜ重要なのか
この脆弱性が重要なのは、Transformersが特定の企業や一部の研究者だけでなく、世界中の非常に多くの開発者が日常的に使っている基盤的なライブラリだからです。Hugging Face上には、企業や個人が自由に公開したAIモデルが多数存在しており、利用者がそうしたモデルを読み込む際に、悪意のある第三者が用意した「custom_generate/generate.py」を含むモデルを不用意に読み込んでしまうと、確認画面で拒否したつもりでも、コードがすでに手元の環境に置かれてしまう可能性があります。
こうした問題は「サプライチェーン攻撃さぷらいちぇーんこうげき 」と呼ばれる手口の一種とみなすことができます。開発に使うツールやライブラリ、公開されているモデルという「供給網」の一部に悪意のあるコードを紛れ込ませ、それを利用する多数の開発者へ間接的に被害を広げる手法です。AIモデルの利用が急速に広がる中で、モデル自体が新たな攻撃の経路になり得ることを、今回の脆弱性はあらためて示しています。
私たちへの影響
一般の消費者が、この脆弱性によって直接何らかの操作を求められることはありません。Transformersは主に開発者やエンジニアが使うライブラリであり、影響を受けるのは、AIモデルの開発・研究・製品化にTransformersを利用している技術者やその所属組織です。
一方、対象バージョンのTransformersを使っており、かつ社内外のモデルリポジトリからload_custom_generate()経由でモデルを読み込む可能性がある開発者・企業にとっては、実務上の対応が必要です。信頼できる提供元以外のモデルリポジトリでこの機能を使わないようにするとともに、キャッシュフォルダ(~/.cache/huggingface/modules)に見覚えのないファイルが残っていないか、定期的に確認することが呼びかけられています。
初心者が知っておくべきこと
「trust_remote_code」とは、外部のリポジトリに含まれる、開発元以外が書いたプログラムコードを実行してよいかどうかを、利用者に確認する仕組みのことです。多くのソフトウェアで、外部から取得したコードをそのまま実行するとセキュリティ上のリスクがあるため、このような確認ステップが設けられています。今回の脆弱性は、この確認の「タイミング」自体に問題があったケースです。
「キャッシュ」とは、一度取得したデータやファイルを、次回すばやく使えるように一時的に手元の記憶領域へ保存しておく仕組みです。便利な仕組みである一方、今回のように、確認前の段階で保存されたファイルがそのまま残ってしまうと、後から意図せず使われてしまうリスクの温床にもなり得ます。
よくある質問
Q. 自分のパソコンやサーバーは対象になりますか?
A. Transformersのバージョンがv4.49.0からv5.8.1の範囲に含まれ、かつload_custom_generate()という機能を使ってモデルを読み込んだことがある場合に、対象となる可能性があります。バージョンを使っているだけで、この機能を使っていない場合の影響については、公表内容からは明らかにされていません。
Q. 今すぐ何をすればいいですか?
A. CERT/CCとJVNの公表内容では、信頼できないモデルのリポジトリでload_custom_generate()を使わないことと、キャッシュフォルダ(~/.cache/huggingface/modules)の中身を定期的に確認し、見覚えのないファイルがあれば削除することが呼びかけられています。修正版の有無は、Hugging Face公式のリリース情報を確認することが推奨されます。
IT Postの見方
IT Postでは、今回の脆弱性を「確認画面という安全装置が、実は安全装置になっていなかった典型例」と受け止めています。
「同意するか聞く」という設計自体は正しい。だが、聞く前にもう物を置いてしまっては、聞いている意味がない。*同意を求める画面をわざわざ用意したのに、その裏でこっそり仕事を終わらせてしまっているのだから、これでは「確認したふり」でしかない。*こういう設計ミスは、悪意があって起きるわけではなく、便利さを追い求めるうちに気づかれずに積み重なっていくものだ。だからこそ、外部から取得したものは同意が取れるまで一切手をつけない、という「セキュアバイデフォルトせきゅあばいでふぉると (Secure by Default )」の発想を、AI関連ツールの開発でも徹底してほしいとIT Postでは考えます。※個人の感想です
今後どうなりそうか
記事執筆時点でTransformers開発元からの修正版は確認されていません。IT Postでは、修正版が公開された場合や、この脆弱性が実際に悪用された事例が確認された場合には、あらためて取り上げます。AIモデルの利用が広がるにつれて、こうしたモデル自体を経由する供給網型の脆弱性は今後も見つかる可能性があり、開発者側の警戒と、プラットフォーム側の安全設計の両方が引き続き求められます。