stable-diffusion.cppは、拡散モデル(Stable Diffusion、Flux、Wan、Qwen Image、Z-Imageなど)の推論を実行するための純粋なC/C++ライブラリです。master-584-0a7ae07以前のバージョンには、PyTorchのチェックポイントpickleオペコード解析において境界外読み取りエラーの脆弱性が存在していました。src/model.cpp内のpickle .ckptパーサは、オペコードの引数を読み取る前や、細工されたまたは切り詰められた.ckptファイルでパーサのバッファを進める前に、入力が十分に残っているかを一貫して確認していませんでした。pickleパーサ全体で、オペコードハンドラはbuffer += Nのような式でパーサ位置を進めましたが、buffer + N = buffer_endであることを事前にチェックしていませんでした。そのため、切り詰められたファイルによってメタデータバッファの末尾を超えた読み取りが発生する可能性があります。LibFuzzerは、不正なチェックポイント入力により1秒未満でクラッシュを発見しました。影響を受けるstable-diffusion.cppのリリースを使用して信頼されていない.ckptモデルファイルを読み込むアプリケーションは脆弱である可能性があります。この攻撃は、被害者またはアプリケーションがモデル共有サイトからダウンロードしたモデルなど、信頼されていないソースから.ckptファイルを読み込む必要があります。この問題はmaster-584-0a7ae07で修正されました。開発者が即座にアプリケーションを更新できない場合は、信頼されていないソースから.ckptチェックポイントファイルを読み込まないことで対策可能です。可能な限り信頼できるモデルソースや.safetensorsなどのより安全なフォーマットを使用することが推奨されます。
|