Skip to content
Tech AI Wire

Ubuntu 26.10がcp、mv、rmをRust版coreutilsに移す

Ubuntu 26.10はcp、mv、rmをRustに移す。監査で113件の問題が見つかり26.04 LTSでは見送られていた。安定版は10月15日に登場する。

著者 Tech AI Wire Team

3 分で読めます

木製の机に置かれた閉じた黒いノートパソコン。天板にオレンジ色のUbuntuロゴのステッカーが貼られている。

数字で見る

issues Zellic's audit found in uutils, 44 of them with CVEs
113
Ubuntu 26.10 stable release date
Oct 15
commands moving in this release: cp, mv and rm
3

Ubuntu 26.10はcp、mv、rmをRust実装に置き換える。これで1年前に始まった移行が完了する。Phoronixの報道によれば、この3つが最後に残っていたGNU版コマンドであり、移行を妨げていた互換性の問題はuutilsの上流で修正済みだという。安定版のリリースは2026年10月15日が予定されている。

この3つのコマンドは、スクリプトが最も多く呼び出すものだ。つまり本リリースは、すでに動かしている処理の中で、目立たない挙動の違いが最も表に出やすいリリースである。

何が移り、何がすでに移っていたのか

これまでのリリースは比較的やさしい部分を済ませていた。OMG! Ubuntuの報道によると、コードネーム「Stonking Stingray」のUbuntu 26.10では、今回加わった3つに加えてls、cat、chmod、duを含むRust版コアユーティリティが一式そろう。

It's FOSSによれば、Rust版ユーティリティを最初に搭載したのはUbuntu 25.10であり、同リリースでは権限昇格の既定ツールもsudo-rsになった。coreutilsとは、ファイルのコピー、ディレクトリの一覧表示、権限の変更といったUnixシステムの日常作業を担う小さなプログラム群である。uutilsプロジェクトはそれらをRustで書き直している。Rustはメモリ関連のバグを種類ごとコンパイル時に防ぐ。

このプロジェクトが掲げる目標は、利用者が違いに気付かないことだ。uutils版はドロップイン置き換えを目指しており、GNUの挙動との差異はすべてバグとして扱う。

なぜcp、mv、rmは見送られたのか

この3つは、ある特定の種類の欠陥が理由でUbuntu 26.04 LTSから外された。OMG! UbuntuとIt's FOSSはいずれも、uutils版にTOCTOUの問題があったと報じている。TOCTOUはtime-of-check to time-of-use、つまり検査時と使用時の差を指す。プログラムがファイルを検査し、次にそのファイルを操作する。その2つの手順の間にある隙で、攻撃者がファイルを入れ替える。

Canonicalはセキュリティ企業のZellicに委託してコードの監査を実施した。It's FOSSによると、監査は2025年12月から2026年3月にかけて2回に分けて行われ、113件の問題が見つかり、そのうち44件にCVE番号が割り当てられた。同誌は、大半がすでに修正済みだとも伝えている。

項目内容
リリースUbuntu 26.10、Stonking Stingray
今回の移行cp、mv、rm
すでに移行済みls、cat、chmod、du、および25.10以降のsudo-rs
監査Zellic、2回、2025年12月から2026年3月:113件の問題、44件のCVE
戻す手段coreutils-from-gnuパッケージを導入する
日程ベータは2026年9月中、安定版は2026年10月15日

この監査の経緯こそ、これを見かけだけの変更ではなく実質的な変更として扱うべき理由だ。ファイルを削除し移動するコマンドの書き直しは、出荷前に44件のCVEを受けた。これは誰かがきちんと目を通したという安心材料である。同時に、これらが単純なプログラムではないという注意喚起でもある。

開発者にとっての意味

まずrootで動くスクリプトを試すこと。この3つのコマンドは、パッケージのpostinstall処理、バックアップ処理、デプロイ用スクリプトの中にある。そうした場所では、オプションの欠落や終了コードの変化が、分かりにくいメッセージではなくマシンの故障につながる。It's FOSSは、Rust版では一部のオプションが依然として欠けていたり、GNU版と挙動が異なる場合があると指摘している。確認すべきは一般的な使い方ではなく、自分が使っているオプションだ。

明文化された逃げ道があり、必要なのは1つのパッケージだけである。coreutils-from-gnuを導入すればGNU版が戻る。これらのコマンドについて何も変わらないリリースが必要なら、イメージのビルドでこれを固定しておくとよい。ただし恒久的な方針ではなく、切り戻し策として扱うこと。

自分のノートパソコンより先にこの変更が届くのは、CIのイメージだ。26.10のような中間リリースは多くの本番環境が使うものではないが、コンテナのベースイメージやテスト実行環境が追いかけている対象である。GNUの挙動に暗黙のうちに依存しているパイプラインは、まずそこで失敗する。そこは、気付くための費用が最も安い場所でもある。

注視すべきは26.04 LTSとの時間差だ。これらのコマンドはLTSから見送られたので、いま入っている修正は将来のLTSが引き継ぐものになる。これはMicrosoftでRustがtier-1言語になったことや、MoldのRust書き直しがLinuxの既定リンカを目指していることと同じ流れである。書き直しは、誰も自分で選んで使うわけではない部分に入り込んでいる。

出典

  1. Ubuntu 26.10 Moves cp, mv & rm Over To Rust Coreutils For 100% Transition - Phoronix
  2. Ubuntu 26.10 completes transition to Rust-based coreutils - OMG! Ubuntu
  3. Ubuntu's Rustification Has a New Milestone! Coreutils Migration is Complete - It's FOSS

関連記事

A terminal window showing a C++ project being linked with mold, with the elapsed link time visible in the output.
Dev Stack

moldのRust書き換え、Linuxの標準リンカを目指す

moldはLLVMのlldより中央値で4.9倍速くリンクします。作者はこれをRust(ラスト)で書き直し、ディストリビューションに/usr/bin/ldとして採用させることを狙っています。