Rustライブラリの「TARmageddon」脆弱性、設定改ざんやRCEの恐れ

概要

Ederaセキュリティチームは、async-tar Rustライブラリとその派生ライブラリ(広く利用されているtokio-tarを含む)に深刻な脆弱性を発見しました。この脆弱性は「TARmageddon」と名付けられ、CVE-2025-62518が割り当てられています。CVSSスコアは8.1(高)と評価されており、攻撃者が設定ファイルを上書きし、重要なビルドシステムを乗っ取ることで、リモートコード実行(RCE)を可能にする可能性があります。

攻撃ベクトル

この脆弱性は、境界解析のバグに起因しており、攻撃者は「ファイル密輸(file smuggling)」と呼ばれる手法を用いて、TARアーカイブの展開時に隠しファイルを挿入できます。パーサーがネストされたTARファイルでPAX(Portable Archive eXchange)とustarヘッダーの不一致を検出すると、ファイル境界の計算に失敗します。具体的には、PAXヘッダーがファイルサイズを1MBと宣言しているにもかかわらず、ustarヘッダーが0バイトと主張した場合、パーサーは誤って0バイトしかスキップせず、ファイルコンテンツ全体を飛び越えません。この同期のずれにより、パーサーは隠された内部アーカイブからのデータを、外部アーカイブに属する正当なエントリとして誤って解釈してしまいます。これにより、攻撃者は悪意のあるファイルをセキュリティ制御をすり抜けさせ、展開ディレクトリに忍び込ませることが可能になります。

影響を受けるプロジェクトと「放置されたソフトウェア」問題

この脆弱性は、uv(AstralのPythonパッケージマネージャー)、testcontainers、wasmCloud、その他多数の依存関係を含む主要なプロジェクトに影響を与えます。tokio-tarはcrates.ioで500万回以上ダウンロードされている最も人気のあるフォークですが、残念ながら放置され、もはや積極的にメンテナンスされていないようです。このため、通常の脆弱性開示とは異なり、単一のアップストリームパッチがすべてのダウンストリームユーザーに伝播するわけではありませんでした。Ederaチームは、async-tar(ルート)、tokio-tar(人気だが未メンテナンスのフォーク)、krata-tokio-tar(アーカイブ済み)、およびastral-tokio-tar(Astralによって積極的にメンテナンスされている)間でパッチを調整するという、分散型の開示プロセスを余儀なくされました。セキュリティ連絡先情報がないため、研究者たちはソーシャルエンジニアリングとコミュニティ調査を通じてメンテナーを特定し、厳格な60日間のエンバーゴ期間中に同時パッチ適用を調整する必要がありました。

潜在的な攻撃シナリオ

攻撃者は、TARmageddonをいくつかの危険な方法で悪用する可能性があります。

  • Pythonビルドバックエンドのハイジャック攻撃: 攻撃者は、侵害されたビルド設定を含む隠された内部TARを持つ悪意のあるパッケージをPyPIにアップロードし、開発者のマシンやCIシステムでのパッケージインストール中にRCEを引き起こす可能性があります。
  • コンテナテストフレームワークの悪用: 汚染されたイメージレイヤーを処理するようにコンテナテストフレームワークを騙し、テスト環境に予期せぬファイルを導入する可能性があります。
  • セキュリティ制御のバイパス: 別々のスキャンおよび抽出フェーズを利用して、承認システムをすり抜けて未承認のファイルを忍び込ませる可能性があります。

対策

astral-tokio-tarを含むアクティブなフォークはすでにパッチが適用されており、Ederaチームは影響を受けるバージョン用のパッチを公開しています。しかし、tokio-tarは放置されているため、未だパッチが適用されていません。ユーザーは直ちにパッチが適用されたバージョンにアップグレードするか、astral-tokio-tarのような積極的にメンテナンスされている代替ライブラリへの移行を強く推奨します。Ederaフォークであるkrata-tokio-tarは、エコシステムの混乱を減らすためにアーカイブされる予定です。


元記事: https://gbhackers.com/tarmageddon-security-flaw-in-rust-library/