2026年3月、Rustのセキュリティレスポンスチームより、Cargoがパッケージの展開に使用しているサードパーティ製クレートtarに重大な脆弱性が存在することが報告されました。
この脆弱性はCVE-2026-33056として識別されており、ビルドプロセス中に悪意のあるクレートがファイルシステム上の任意のディレクトリ権限を変更できてしまう恐れがあります。
本記事では、この問題の詳細と、Rustエコシステムにおける対応状況およびユーザーが取るべき対策について解説します。
脆弱性(CVE-2026-33056)の概要とリスク
この脆弱性は、Cargoがビルド時にクレートを解凍するプロセスで利用するtarクレートの不具合に起因しています。
攻撃者が作成した悪意のあるクレートをCargoが解凍する際、ファイルシステム上の任意のディレクトリのパーミッション(権限)を書き換えることが可能です。
本来、パッケージの展開は限定された作業ディレクトリ内で行われるべきですが、この脆弱性を悪用されると、ユーザーの意図しない場所にある重要なディレクトリの権限が変更され、セキュリティ設定が弱体化させられるリスクが生じます。
この問題は、発見者であるSergei Zimmerman氏によってRustプロジェクトへ事前に通知されました。
crates.ioにおける迅速な対応と現状
公式レジストリであるcrates.ioでは、この報告を受けて即座に防御策が講じられました。
2026年3月13日の時点で、この脆弱性を悪用しようとするクレートの新規アップロードを阻止する変更がすでにデプロイされています。
また、レジストリチームは過去に公開されたすべてのクレートに対して網羅的な監査を実施しました。
その結果、crates.io上に公開されている既存のクレートの中で、この脆弱性を悪用しているものは一つも存在しないことが確認されました。
これにより、公式レジストリのみを利用している一般的なユーザーへの直接的な脅威は、現時点では排除されています。
Rust 1.94.1へのアップデートと対策
Rustチームは本件への恒久的な対応として、2026年3月26日にRust 1.94.1をリリースしました。
このリリースには、脆弱性が修正された最新のtarクレートが同梱されています。
| 項目 | 内容 |
|---|---|
| 脆弱性識別番号 | CVE-2026-33056 |
| 対象コンポーネント | tar クレート(Cargoの依存関係) |
| 修正済みバージョン | Rust 1.94.1 |
| 対策実施日(レジストリ) | 2026年3月13日 |
ユーザーは速やかに以下のコマンドを実行し、Rustツールチェーンを最新の状態に更新してください。
# Rustツールチェーンを最新バージョンへ更新
rustup update stable
なお、企業内などで独自の代替レジストリ(Alternate Registries)を利用している場合は、そのレジストリが今回の脆弱性に対するフィルタリング機能を有しているか、各ベンダーへ確認を急ぐ必要があります。
公式レジストリ以外では自動的な保護が及ばないため、ツールチェーン自体のアップデートが最も確実な防衛策となります。
まとめ
今回のセキュリティアドバイザリは、Cargoのビルドプロセスにおける依存関係の重要性を改めて浮き彫りにしました。
幸いにもcrates.io上の監査では被害は確認されませんでしたが、ファイルシステムの整合性を脅かす脆弱性であるため、放置は禁物です。
全てのRust開発者は、速やかにRust 1.94.1以降へのアップグレードを行い、安全な開発環境を確保することを強く推奨します。
また、外部のレジストリを併用している場合は、提供元が公表しているセキュリティ情報を確認し、同様の対策が行われているか注視してください。
