人気のRustライブラリAsync-tarにおける高深刻度の脆弱性により、攻撃者がアーカイブエントリを密輸し、リモートで任意のコードを実行できる可能性があります。
CVE-2025-62518(CVSSスコア8.1)として追跡され、TARmageddonと名付けられたこのセキュリティ欠陥は、PAXヘッダーとustarヘッダーの間に特定の不一致があるネストされたTARファイルの処理中に発生する非同期化問題として説明されています。
ファイルエントリが両方のヘッダーを持ち、ustarヘッダーが誤ってサイズをゼロに指定している場合、パーサのデータ境界決定ロジックに不整合が生じ、PAXヘッダーが正しくファイルサイズを指定していても、パーサはustarサイズに基づいてストリーム位置を進めてしまいます。
「0バイトだけ進めることで、パーサは実際のファイルデータ(これはネストされたTARアーカイブ)をスキップできず、すぐにネストされたアーカイブの先頭にある次の有効なTARヘッダーに遭遇します。その結果、パーサは内部アーカイブのヘッダーを外部アーカイブに属する正当なエントリとして誤って解釈してしまいます」と、8月にこの脆弱性を報告したEdera社は説明しています。
このバグはリモートコード実行につながる可能性があり、攻撃が成功するとファイルの上書きが発生し、攻撃者が設定ファイルを置き換えることができます。また、サプライチェーン攻撃やビルドバックエンドの乗っ取りにも悪用される可能性があると、セキュリティ企業は述べています。
Ederaによると、この脆弱性によるエコシステム全体への影響は定量化できません。なぜなら、脆弱なライブラリであるAsync-tarおよびその最も人気のあるフォークであるTokio-tarはすでに放棄されているからです。
これにより、アップストリームリポジトリへのパッチの適用が事実上不可能となり、ダウンストリームユーザーに継承されることもありませんでした。そのため、Ederaはパッチの展開を確実にするために分散型開示アプローチを取りました。
Ederaの説明によると、Tokio-tarはcrates.ioで500万回以上ダウンロードされていますが、現在アーカイブされているKrata-tokio-tar(元々Ederaがメンテナンス)、Astral-tokio-tar(Astralがメンテナンス)、Testcontainers、Binstalk-downloader、Liboxen、Opa-wasmなど、数多くのダウンストリームプロジェクトで使用されています。
広告。スクロールして続きをお読みください。
Binstalkのメンテナーは依存関係を削除するか、バグを修正したAstral-tokio-tar(バージョン0.5.6)に切り替えることを決定しました。Opa-wasmは、脆弱なTokio-tarの機能に依存していないため、影響を受けません。
「他のプロジェクトにも今後のパッチについて通知しましたが、私たちの連絡には返答がありませんでした。さらに、私たちが把握していない影響を受けるバージョンに依存しているダウンストリームプロジェクトが他にも存在する可能性があります」とEderaは述べています。
Astral-tokio-tarおよびKrata-tokio-tar向けの修正が展開されたため、ダウンストリームユーザーはこれらのパッチ済みライブラリに切り替えるか、TARパーサーを修正してサイズ決定の際にPAXヘッダーを優先し、ヘッダーの整合性を検証し、ヘッダーの混乱を防ぐために厳格な境界チェックを追加することが推奨されています。
「TARmageddonの発見は、Rustが万能薬ではないことを改めて示しています。この脆弱なライブラリ群(async-tar > tokio-tar > フォーク)は、人気のあるコードが、たとえ現代的で安全な言語で書かれていても、メンテナンスされなくなり、何百万人ものダウンストリームユーザーをリスクにさらすという、オープンソースのよくある話を物語っています」とEderaは述べています。
翻訳元: https://www.securityweek.com/tarmageddon-flaw-in-popular-rust-library-leads-to-rce/