JVNDB-2025-003085
|
PyTorch Lightning における信頼できないデータのデシリアライゼーションの脆弱性
|
PyTorch Lightning は機械学習モデルのトレーニングやスケーリング、デプロイ等に用いられるフレームワークです。PyTorch Lightning 2.4.0 およびそれ以前のバージョンにおいて、読み込んだモデルデータのデシリアライズ時に適切な検証処理が行われていないことに起因し、悪意のあるデータを読み込んでしまう脆弱性が複数指摘されています。
指摘されている脆弱性は以下のとおりです。
- PyTorch の拡張ライブラリ
DeepSpeed 由来のファイルをロードする際に、モデルデータのオプティマイザやチェックポイントを事前の検証なく読み込んでしまう
- Python の pickle モジュールに依存する
PickleSerializer クラスが、読み込むデータの安全性を検証していない
- 複数のノードを利用してチェックポイントファイルを読み込む
_load_distributed_checkpoint コンポーネントが、ファイル読込時にデータの安全性を検証しない
_lazy_load 関数がデータの遅延読み込みを行う際に、データの検証処理を適切に行わない
- ローカル環境やリモート環境からモデルファイルの読み込みを行う
Cloud_IO モジュールが、読み込むデータの安全性を検証していない
なお、2025 年 4 月 7 日現在、これらの脆弱性に CVE は採番されていません。
|
|
|
Lightning AI
- PyTorch Lightning 2.4.0 およびそれ以前のバージョン
|
|
ローカル環境やリモート環境からモデルやチェックポイント等のデータファイルを読み込む際に、悪意のあるオブジェクトが組み込まれたデータを読み込み、システムのコンテキスト内で実行してしまう可能性があります。
|
[軽減策を実施する]
本アドバイザリで指摘されている脆弱性によるリスクを軽減するために、以下の対策が推奨されています。
- 読み込むファイルが信頼できるソースであり、有効な署名が行われていることを確認する
- 信頼できないモデルやファイルを利用する場合はサンドボックス環境を使用する
- 読み込むデータに対して静的および動的解析を実施する
- 不要なデシリアライズ機能を無効化する
- モデルの重みを読み込む際には、
torch.load() を weights_only() オプション付きで実行することで、不要なデシリアライズを無効化できる
2025 年 4 月 7 日現在、これらの脆弱性について Lightning AI からの言及は行われていません。最新の情報については CERT VU#252619 に記載されている Vendor Information を注視してください。
|
Lightning AI
|
|
|
- JVN : JVNVU#94879975
- US-CERT Vulnerability Note : VU#252619
|
|