公開日: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 | 
- 
                            Vulnerability Note VU#252619
 Multiple deserialization vulnerabilities in PyTorch Lightning 2.4.0 and earlier versions




























