ディストリビューションのパッケージデータベース Ubuntu 10月15日にリリース予定の26.10では、Rust言語で書かれたuutils coreutils(Rust Coreutils)ツールキットへの完全な移行が行われます。Rust Coreutilsユーティリティは、cp、mv、rmユーティリティを含むGNU Coreutilsパッケージのすべてのコンポーネントを完全に置き換えています。 Ubuntu 26.04はGNU Coreutilsの派生版として提供された。
rust-coreutils パッケージは当初、リリースにデフォルトで含まれていました。 Ubuntu 25.10、ただしLTSブランチでは Ubuntu 4月26日、GNU Coreutilsスイートのcp、mv、rmユーティリティがロールバックされました。これらのオプションは、Rust Coreutilsコードベースの監査中に発見されたセキュリティ上の問題により元に戻されました。Rust Coreutilsの脆弱性のほとんどは、競合状態によって引き起こされます。競合状態とは、情報が検証された後、操作が実行される前にデータが変更される可能性がある状態です(TOCTOU - チェックから使用までの時間)。このような脆弱性により、チェックの完了から操作の開始までの間に、ファイルがシンボリックリンクに置き換えられるといったことが可能になります。
ルート権限で実行されるシステムスクリプトで cp、mv、rm ユーティリティを使用する場合、シンボリックリンクを置き換えることで、任意のファイルをコピー、上書き、または削除できます。たとえば、ディレクトリを再帰的に削除する場合、rm ユーティリティは最初にすべてのディレクトリをスキャンし、rmdir() 関数を呼び出して逆順に削除します。親ディレクトリをスキャンした直後、子ディレクトリをスキャンする前に、親ディレクトリのシンボリックリンクを置き換えることで、/etc/cron.daily/apport cron スクリプトが毎日実行されるときに、システム上の任意のディレクトリを削除できます。ルート権限で実行されるこのスクリプトは、システム上のすべてのユーザーが書き込み可能な /var/crash ディレクトリの内容を再帰的に削除します。
出所: オープンネット.ru
