
CVE-2025-32434 向けの概念実証エクスプロイト。PyTorchのtorch.load()関数における重要なRCE脆弱性であり、メモリマップドファイル書き込みを介してweights_only=True保護を回避します。
CVE-2025-32434は、深層学習やニューラルネットワークで広く使用されるPythonライブラリPyTorchにおける、重大なリモートコード実行(RCE)脆弱性です。
この脆弱性は、torch.load()関数に存在し、安全とされるweights_only=Trueパラメータを使用した場合でも発生します。weights_only=Trueオプションは、読み込みをモデルパラメータのみに制限することでコード実行を防ぐために設計されました。しかし、研究者はこの保護を回避する方法を発見しました。
| ステータス | バージョン |
|---|---|
| 脆弱 | PyTorch 2.5.1およびそれ以前の全バージョン |
| 修正済み | PyTorch 2.6.0以降 |
認証されていない攻撃者は、被害者が読み込むと任意のコードを実行する悪意のあるモデルファイルを作成できます。この攻撃はユーザー操作を必要とせず、システム全体の侵害につながる可能性があります。この脆弱性は、PyTorchがPythonのpickleシリアライゼーションをどのように使用するかを悪用し、攻撃者がモデルファイルに悪意のあるコードを埋め込むことを可能にします。
この脆弱性は、多くの開発者がセキュリティ対策としてweights_only=Trueに依存しているにもかかわらず、「安全」なオプションでも不十分であることを証明しているため、特に危険です。
提供されているfull.pyスクリプトは、読み込まれるとファイルシステムに書き込みを行う悪意のあるPyTorchモデルを作成する方法を示しています。
torch.from_file()を使用して、ターゲットのcronファイルを指すメモリマップドテンソルを作成します# メモリマップドファイル書き込み
t = torch.from_file("/etc/cron.d/rev",
shared=True,
size=len(asciis),
dtype=torch.uint8)
msg = torch.tensor(asciis, dtype=torch.uint8)
t.copy_(msg) # /etc/cron.d/revに書き込み
このガイドでは、CVE-2025-32434の概念実証(PoC)スクリプトの使用方法をステップバイステップで説明します。
始める前に、以下を確認してください:
# Install PyTorch (vulnerable version for testing)
pip install torch==2.5.1
pip install torch