Rustライブラリに重大な脆弱性が発見される

TARライブラリおよびそのフォークにリモートコード実行の危険性

Rustプログラミング言語でプロジェクトを作成している開発者や、Rustベースのアプリケーションを環境で使用しているITリーダーは、このプログラミング言語のライブラリの1つで発見された重大な脆弱性に注意を払う必要があります。

Ederaの研究者によると、人気のあるRustライブラリasync-tarに、TARmageddon(CVE-2025-62518)と名付けられた重大な境界解析バグが発見されました。そして、この脆弱性はこのライブラリだけでなく、広く使われているtokio-tarを含む多くのフォークにも存在します。

「最悪の場合、この脆弱性の深刻度は8.1(高)であり、設定ファイルの置き換えやビルドバックエンドの乗っ取りなど、ファイルの上書き攻撃を通じてリモートコード実行(RCE)につながる可能性があります」と研究者はレポートで述べています。その他の影響としては、アプリケーションを介した感染の拡大、いわゆるサプライチェーン攻撃も含まれます。

研究者によると、最初に推奨される対応は、すべてのアクティブなフォークにパッチを適用することです。この脆弱性はuv(AstralのPythonパッケージマネージャー)、testcontainerswasmCloudなど、主要かつ広く利用されているプロジェクトに影響します。「tokio-tarがさまざまな形で広く使われているため、このバグの影響範囲を事前に正確に把握することはできません」と述べています。

さらに悪いことに、研究者は、ダウンロード数の多いtokio-tarが未だにパッチが適用されていないと警告しています。おそらく、もはや積極的にメンテナンスされていないためです。

Ederaは、tokio-tarに依存している開発者に対し、パッチが適用されたastral-tokio-tarバージョン0.5.6以降のような、積極的にメンテナンスされているフォークへ移行することを推奨しています。

ITリーダーも、自分たちのアプリケーションがRustで開発されており、リスクがないかどうかをスキャンする必要があります。

なぜ重大なのか?

TARファイルは、UnixやLinuxシステムで複数のディレクトリやファイルを1つのアーカイブファイルにまとめ、元の情報のディレクトリ構造やメタデータを保持するために使用されると、カナダのインシデント対応企業DigitalDefenceの責任者ロバート・ベッグス氏は説明します。アーカイブファイルは、バックアップやソースコード配布などの目的でソフトウェアをパッケージングする際によく使われます。

特定バージョンのTARライブラリの書き方により、潜在的な脆弱性が存在すると、彼はCSOへのメールで述べています。「最悪の場合、攻撃者がホストシステム上で任意のコードを実行し、重要なファイル(設定ファイルやビルドスクリプト)の上書きや、不正なファイルシステムアクセスなどの悪意ある行為を行うことが可能になります」。また、悪意のあるTARからファイルを抽出するシステムが侵害される可能性もあります。

「この脆弱性が特に深刻なのは、脆弱なTARライブラリがしばしば積極的にメンテナンスされていないアプリケーションの一部として存在し、パッチ適用や他の対策時に見落とされる可能性があるためです」と彼は付け加えました。

現時点でこの脆弱性を悪用した事例は確認されていませんが、ベッグス氏は状況がすぐに変わる可能性があると述べています。「これは深刻度の高い脆弱性(1から10のスケールで8.1)なので、攻撃者の注目を集める可能性が高いでしょう」と指摘しています。

推奨事項

彼は情報セキュリティリーダーに以下を推奨しています:

  • tokio-tarのフォークやラッパーへの依存関係を特定するためにコードを監査し、それらにもパッチが適用されていることを確認する
  • 継続的インテグレーション/継続的デプロイメント環境やコンテナでのTARファイルの利用状況を確認し、パッチが適用されていることを確認する
  • アーカイブ処理時には隔離(サンドボックス)し、信頼できないソースからのTARファイルの抽出は避ける
  • ライブラリに関連するさらなる脆弱性や悪用の可能性について継続的に監視する

管理者は、astral-tokio-tarをメンテナンスしているAstral Securityが作成した問題を説明するこのアドバイザリにも関心があるかもしれません。

このバグは7月に発見され、その月にすべてのライブラリのメンテナー、Rust Foundation、特定のプロジェクトに開示されました。詳細は今週まで公開しないことで合意されていました。

最も人気のあるフォーク(crates.ioで500万回以上ダウンロードされているtokio-tar)がもはや積極的にメンテナンスされていないように見えるため、Ederaは複雑なフォーク系統全体に分散型の開示を調整しました。

考えられる影響

Ederaによると、この脆弱性は、攻撃者がTAR抽出時に追加のアーカイブエントリを「密輸」できる非同期化の欠陥です。これは、PAX拡張ヘッダーとustarヘッダーの間に特定の不一致があるネストされたTARファイルを処理する際に発生します。この欠陥は、ファイルデータの境界を決定する際のパーサーのロジックの不整合に起因します。

Ederaが描く感染シナリオの一例としては、

  • tokio-tarを使用するPythonパッケージマネージャーへの攻撃。攻撃者が悪意のあるパッケージをオープンソースのPyPIリポジトリにアップロードし、開発者が便利なユーティリティとしてダウンロードします。パッケージの外側のTARコンテナには正規のファイルが含まれていますが、隠された内側のTARにはビルドバックエンドを乗っ取る悪意のあるファイルが含まれています。この隠された内側のTARが予期しないファイルや上書きファイルを導入し、テスト環境を侵害しサプライチェーンを汚染します。
  • 「スキャン/承認」フェーズが分かれているシステムへの攻撃。セキュリティスキャナーが外側のクリーンなTARを分析し、限定されたファイルセットを承認します。しかし、脆弱なライブラリを使用した抽出プロセスで、内側のTARから追加の未承認・未スキャンのファイルが取り込まれ、セキュリティコントロールの回避やポリシー違反が発生します。

Rust開発者は、Rust言語によってメモリ安全なアプリケーションが作成できると述べていますが、Ederaの研究者は「TARmageddonの発見は、Rustが万能薬ではないことを重要な形で思い出させてくれます」と述べています。

「Rustはロジックバグを排除するものではありません」とレポートは指摘し、「この解析の不整合は本質的にロジックの欠陥です。開発者は使用する言語に関係なく、あらゆる種類の脆弱性に対して警戒を怠ってはなりません。」

また、このレポートは、メンテナンスされていないオープンソースライブラリにコードが依存することの危険性も思い出させてくれます。

翻訳元: https://www.csoonline.com/article/4077445/serious-vulnerability-found-in-rust-library.html

ソース: csoonline.com