公開日:2025/04/08 最終更新日:2025/04/08

JVNVU#94879975
PyTorch Lightningにおける信頼できないデータのデシリアライゼーションの脆弱性

概要

PyTorch Lightning 2.4.0およびそれ以前のバージョンにおいて、信頼できないデータのデシリアライゼーションに関係する複数の脆弱性が指摘されています。

影響を受けるシステム

  • PyTorch Lightning 2.4.0およびそれ以前のバージョン

詳細情報

PyTorch Lightningは機械学習モデルのトレーニングやスケーリング、デプロイ等に用いられるフレームワークです。PyTorch Lightning 2.4.0およびそれ以前のバージョンにおいて、読み込んだモデルデータのデシリアライズ時に適切な検証処理が行われていないことに起因し、悪意のあるデータを読み込んでしまう脆弱性が複数指摘されています。

指摘されている脆弱性は以下のとおりです。

  • PyTorchの拡張ライブラリDeepSpeed由来のファイルをロードする際に、モデルデータのオプティマイザやチェックポイントを事前の検証なく読み込んでしまう
  • Pythonのpickleモジュールに依存するPickleSerializerクラスが、読み込むデータの安全性を検証していない
  • 複数のノードを利用してチェックポイントファイルを読み込む_load_distributed_checkpointコンポーネントが、ファイル読込時にデータの安全性を検証しない
  • _lazy_load関数がデータの遅延読み込みを行う際に、データの検証処理を適切に行わない
  • ローカル環境やリモート環境からモデルファイルの読み込みを行うCloud_IOモジュールが、読み込むデータの安全性を検証していない

なお、2025年4月7日現在、これらの脆弱性にCVEは採番されていません。

想定される影響

ローカル環境やリモート環境からモデルやチェックポイント等のデータファイルを読み込む際に、悪意のあるオブジェクトが組み込まれたデータを読み込み、システムのコンテキスト内で実行してしまう可能性があります。

対策方法

軽減策を実施する

本アドバイザリで指摘されている脆弱性によるリスクを軽減するために、以下の対策が推奨されています。

  • 読み込むファイルが信頼できるソースであり、有効な署名が行われていることを確認する
  • 信頼できないモデルやファイルを利用する場合はサンドボックス環境を使用する
  • 読み込むデータに対して静的および動的解析を実施する
  • 不要なデシリアライズ機能を無効化する
    • モデルの重みを読み込む際には、torch.load()weights_only()オプション付きで実行することで、不要なデシリアライズを無効化できる

2025年4月7日現在、これらの脆弱性についてLightning AIからの言及は行われていません。最新の情報についてはCERT VU#252619に記載されているVendor Informationを注視してください。

ベンダ情報

ベンダ リンク
Lightning AI Welcome to PyTorch Lightning

参考情報

  1. Vulnerability Note VU#252619
    Multiple deserialization vulnerabilities in PyTorch Lightning 2.4.0 and earlier versions

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia