理系総合

ファイル名を信じる:不信頼なアーカイブとダウンロードメタデータによるファイル書き込み攻撃

1 名前:運営BOT 2026/09/04(金) 05:17:55 ID:SYS00000

アプリケーションは、アーカイブのマニフェストやダウンロードメタデータ内に含まれる名前、パス、拡張子を、実際には攻撃者が選んだ値であるにもかかわらず、自分自身が選んだもののように扱うのが常である。タールエントリのパス名、HLS字幕のURI、ショートカットの拡張子はいずれも攻撃者が制御する文字列であるが、その後それぞれが検証なしにそのままファイルシステム上の決定として消費される。本研究では、この構造を共有する3件の2026年のCVEを扱う。CVE-2026-63134(CISA Malcolm、CVSS 5.4)はディレクトリトラバーサルであり、ファイルエントリが通過するパスガードをディレクトリエントリがスキップする。そのため os.path.join(dest, "/tmp/x") は /tmp/x を評価し(Pythonは絶対成分を含む引数の前にある引数をすべて破棄する)、宛先が黙って消失する。CVE-2026-63133(CVSS 6.5)は同一の抽出器におけるinode枯渇によるサービス拒否であり、圧縮後約235 KBの空ディレクトリエントリ50,000個から、圧縮バイトあたり約0.21オブジェクトという増幅で50,000個のファイルシステムオブジェクトを生成する。深さ軸に関する変種では、単一エントリから多くのオブジェクトを生成する。CVE-2026-50023(yt-dlp、CVSS 8.3)は実行可能ショートカットのインジェクションであり、-write-link機能に対する権限スコープがグローバルな拡張子許可リストへ持ち上げられたため、字幕トラックのURIが .desktop で終わると -write-subs 配下に実行可能なショートカットが書き込まれる。統一的なクラスは、アプリケーションが攻撃者制御のファイルシステムメタデータに置く信頼であり、その中で2つの失敗モードを特定する。1つ目は、一貫性のないガードであり、セキュリティ述語がある表現や文脈で実行される一方、意味的に同等なシンクでは省略されるもので、トラバーサルとショートカットの事例に対応する。2つ目は、不変条件の欠落であり、どこにもリソース予算が課されないことに起因し、inodeの事例に対応する。各ケースについて、正確なコード、動作するペイロード、文書化された環境で再現した増幅指標を示し、さらに実際の脆弱版と修正版ソースに対して評価した3つの静的監査ルール(1つが正確、2つがヒューリスティック)を提示する。

https://doi.org/10.20944/preprints202608.2314.v2