人気のあるRustクレートasync-tarの脆弱性が、高速なuv Pythonパッケージマネージャーに影響を与えています。uvはフォークされたバージョンを使用しており、現在は修正されていますが、最も多くダウンロードされているバージョンは未修正のままです。
この脆弱性は、ヘッダー解析コードのエラーによるもので、攻撃者がtarアーカイブ内に追加のファイルを隠すことを可能にします。これはセキュアコンピューティング企業Ederaのチームによって発見されました。
tarフォーマットはustar(Unix Standard TAR)とpaxヘッダーの両方をサポートできます。後者は数十年前にtarの拡張として追加されました。ファイルエントリがustarとpaxヘッダーの両方を持つ場合、コードはpaxサイズではなく、しばしばゼロであるustarサイズに基づいてストリーム位置を進めます。本来はpaxサイズが優先されるべきです。これにより、ファイルの内容がtarヘッダーとして解釈され、密輸されたファイルが有効になります。Ederaは述べていますが、これによりファイルの上書き攻撃、ビルドシステムやパッケージマネージャーの悪用によるサプライチェーン攻撃、BOM(部品表)セキュリティスキャンの回避が可能になります。
脆弱性の通常の公開パターンでは、問題が広く知られる前にメンテナーに事前に通知し、パッチを作成します。しかし今回は、async-tarにはいくつかの重要なフォークがあります。uvで使用されているバージョンはastral-tokio-tarであり、readmeには「これはedera-dev/tokio-tarのフォークであり、それはvorot93/tokio-tarのフォークであり、それはdignifiedquire/async-tarのフォークであり、alexcrichton/tar-rsに基づいている」と記載されています。

最も人気のあるtokio-tarクレートは修正されておらず、このリストで唯一修正されたバージョンは最後に示されています
tokio-tarというフォークが最も人気があり、crates.ioによると700万回以上ダウンロードされています。しかしEderaチームは、tokio-tarとasync-tarの両方のメンテナーに連絡するのに苦労しました。なぜなら「どちらのプロジェクトにもSECURITY.mdや公開連絡方法がなかった」ためで、適切な人物を見つけるためにソーシャルエンジニアリングやコミュニティ調査に頼らざるを得ませんでした。その結果、async-tarとastral-tokio-tarは修正されましたが、tokio-tarは修正されていません。Ederaは「事実上放棄されたソフトウェアのようだ」と述べ、修正済みのフォークか、非asyncですが正しく動作する標準のtarクレートへの切り替えを推奨しています。
Ederaは自身のtokio-tarフォークであるkrata-tokio-tarも持っていますが、脆弱なバージョンを使用している自社製品は他の緩和策によりリスクがないと報告しています。Ederaのクレートにはパッチが提供されていますが、今後はAstralのバージョンを推奨し、アーカイブされる予定です。ただし執筆時点ではまだcrates.ioに掲載されています。
Ederaはまた、ソフトウェアがRustで書かれているからといって安全が保証されるわけではないと指摘しています。Rustはバッファオーバーフローやuse-after-freeのようなメモリ問題からは守りますが、ロジックエラーを防ぐことはできません。®
翻訳元: https://go.theregister.com/feed/www.theregister.com/2025/10/22/vulnerable_rust_crate/