脆弱性  ·  2026-10-15

Ludwig (LLMフレームワーク)データセットアーカイブ抽出:シンボリックリンク/ハードリンクのtarスリップ→データセット読み込み時の任意ファイル書き込み

脆弱性Medium 影響度GlobalCVE-2026-104103
NVD REST APIで検証済み(公開日2026-10-14、CVSS 8.1、CWE-22/59、GHSA-qvrm-3x4c-rcxf)。修正(0.17.8)はデータセットアーカイブ抽出パスでエスケープするリンクメンバーを拒否します。
MLトレーニングパイプラインは日常的にリモート/ホスト型ソースからデータセットアーカイブを取得します。侵害されたアーカイブは、フレームワークがオーケストレーターの権限で実行されている間にファイル(例:config、cache、モデルディレクトリ内)を仕掛けることができます — MLビルドへの実用的なポイズニング/上書き経路です。トレーナーは固定・検証済みソースから抽出し、サンドボックス化/最小権限コンテキストで抽出を実行する必要があります。
extract_archive()はTarFile.extractall()の前にtarメンバー名を検証しますが、シンボリックリンク/ハードリンクメンバーは検証しません。巧妙に細工されたアーカイブは抽出ディレクトリからエスケープするリンクを作成し、後続のメンバーを介して任意のファイルシステムパスに書き込みます(CWE-22/59)。commonprefix包含チェックは、宛先の文字プレフィックスを共有する兄弟パスも許可します。Python 3.14は免疫(デフォルトのtarデータフィルター)。
ludwig-ai/ludwig < 0.17.8(Python 3.12/3.13)
ludwig >= 0.17.8にアップグレード。抽出前にアーカイブの出所を検証。ファイルシステムアクセスが制限されたコンテナでのデータセット取り込みを推奨。
NVD CVE-2026-104103GitHub advisory GHSA-qvrm-3x4c-rcxf
ライブフィードで見る AIセキュリティとガバナンスの関連情報をさらに見る — 毎朝更新。
フィードを開く →