世界を動かす技術を、日本語で。

Rustベースのcoreutilsにおける日付バグがUbuntu 25.10の自動更新に影響を与える

概要

  • Ubuntu 25.10Rust製uutils版dateコマンド のバグが発生
  • 自動更新機能 が一部システムで利用不可
  • 影響範囲 はクラウド・コンテナ・デスクトップ・サーバー
  • 手動アップデートやaptコマンド には影響なし
  • 修正版パッケージ と対処方法が公式で案内

Ubuntu 25.10の自動更新を妨げるRust製dateコマンドのバグ

  • Ubuntu ProjectRustベースのuutils dateコマンド に重大なバグを発表
  • Ubuntu 25.10 に搭載された rust-coreutilsパッケージ(バージョン0.2.2-0ubuntu2以前) で発生
  • 自動ソフトウェア更新機能 が一部環境で正常動作せず
    • クラウド環境
    • コンテナイメージ
    • Ubuntu Desktop
    • Ubuntu Server
  • 手動でのアップデート(aptコマンド等) や他のユーティリティには影響なし

修正と対処方法

  • バグ修正版rust-coreutils 0.2.2-0ubuntu2.1以降
  • 影響を受けるシステム は速やかなアップデート推奨
  • 公式アナウンス にて詳細な 修正手順 を案内

Rust化(Oxidize)プロジェクトの背景

  • Ubuntu 25.10uutilssudo-rs などRustベースのツール導入
  • 長期サポート(LTS)リリース への採用可否を評価中
  • LWN が2024年3月に本プロジェクトを詳細解説
  • Rust化 による セキュリティ保守性向上 が狙い

Hackerたちの意見

誰かuutilsのパッチのリンク持ってる?問題と解決策が気になるんだけど。

実際の問題が何だったのか言ってくれるといいんだけど。最後のコミット[0]は、GNUのセマンティクスに合わせるためのdateパースの修正で、かなり良さそうな候補だね。編集: いや、違うかも。evil-oliveのコメント[1]を見て、もっと可能性のある候補を確認してみて。 0: https://github.com/uutils/coreutils/commit/0047c7e66ffb57971... 1: https://news.ycombinator.com/item?id=45687743

これがUbuntuのバグレポートみたいだね: https://bugs.launchpad.net/ubuntu/+source/rust-coreutils/+bu...

このコメント[0]が説明してるよ。コアのバグは、date -rのサポートがUbuntuが統合したときに実装されてなかったことみたい。 [1, 2] それに、コマンドは以前は-rを静かに受け入れてたけど、何もしてなかったみたいだし! 0: https://lwn.net/Articles/1043123/ 1: https://github.com/uutils/coreutils/issues/8621 2: https://github.com/uutils/coreutils/pull/8630

古いcoreutilsに何か問題があったの?

あれは…「安全」じゃなかった。

おそらく、こんな感じのやつかな。https://www.cvedetails.com/cve/CVE-2015-4042/

Rustが足りないな。GNU coreutilsみたいな複雑で基盤的、かつ実績のあるものをゼロから書き直すなんて考えると怖いよ。成熟したCからRustへの自動翻訳ツールがあれば試してみるかもしれないけど、互換性の問題や再発するバグが何年も続くと思う。あと、「注意欠陥のティーンエイジャーたち」の開発モデルも参考にしてみて。

まだRustで書き直されてないから、完成してないってことだね。/s

ライセンスのことが関係してるんじゃないかって疑ってる。去年このコメントした人[0]みたいに。 [0]: https://news.ycombinator.com/item?id=38853429

もし君がOpenBSDのメンテナーなら、特定の言語でcoreutilsを実装するのは、その言語が実用的なシステム言語と見なされるために必要な要件だよ。https://marc.info/?l=openbsd-misc&m=151233345723889&w=2

いや、いつものことだよ… 人たちが「ただそうしたいから」Rustで書き直そうとしてるのがウザい。

たぶん、楽しいプロジェクトだからだと思うし、Rustの方がCよりずっと扱いやすいからね。古いものよりも、こっちの方が現代的な便利さやUXの改善が見られる可能性が高いよ。

これが必要な背景を教えてくれるはずだよ。

Rustでは書かれてなかったけど、なんで借用チェッカーが日付のバグを見抜けなかったんだろうね…

うざいことに、実際のバグにはリンクしてないんだよね。ただこう言ってるだけ: > rust-coreutilsパッケージのバージョン0.2.2-0ubuntu2以前のシステムにはバグがあるけど、0.2.2-0ubuntu2.1以降で修正されてる。チェンジログ[0]によると、どうやら: > date: 参照ファイルを使用する (LP: #2127970) そこから: [1] > ファイルの最終修正日時を表示する、現在の日付と時間ではなく。 これ、私が予想してたバグのタイプじゃなかった。微妙なタイムゾーンのエッジケースとかだと思ってたのに。代わりに、date -rは指定したファイルの修正時間を表示するはずなのに: > date --utc -Is -r ~/.ssh/id_ed25519.pub 2025-04-29T19:25:01+00:00 > date --utc -Is 2025-10-23T21:46:47+00:00 どうやらRust版はその期待される動作を…静かに無視してたみたい?何か見落としてるのかな?そうじゃなければ、これは本当に雑で、「安全な」バージョンでcoreutilsを置き換えようとしてるプロジェクトからは期待できないよね。 0: https://launchpad.net/ubuntu/questing/+source/rust-coreutils... 1: https://bugs.launchpad.net/ubuntu/+source/rust-coreutils/+bu... 2: https://github.com/uutils/coreutils/issues/8621 3: https://github.com/uutils/coreutils/pull/8630

バッファオーバーフローはなかったけどね!

coreutilsのアップストリームテストを通過するはずなんだよね。もし通過してるなら、アップストリームテストはまだ手を入れる必要があるってことだね。

本物のバージョンに戻れないかな?

debian-stableが歓迎してるよ!

でも真面目に言うと、数十年も戦ってきたCのユーティリティをRustで書き直すのは、長期的には良いアイデアかもしれないけど、短期的な問題が起こるのは誰でも予想できたことだよね。戦闘実績のある、ミッションクリティカルなCのユーティリティを書き直すことが本当に意味がある「長期」って、どれくらいのことを指してるんだろう? >> だから、彼らがやってるのは嬉しいよ! これはやるのが怖いと思うのも無理はないことだし、LinuxカーネルにRustを取り入れることに関わってる一人として言うけど、完全に熱心な信者だよ。uutilsの開発者の一人がFOSDEMで話をして、誤ったベンチマークを使ってuutilsのソートが速いと偽って主張したことを思い出してほしい。結局、/g/のユーザーたちがそれがロケールを考慮していなかったからで、実際にはもっと遅かったことを発見したんだよね。

戦闘実績のある、ミッションクリティカルなCのユーティリティを書き直すことが本当に意味がある「長期」って、どれくらいのことを指してるんだろう? コアユーティリティのために同じくらいの努力をして、証明や形式的検証システムを構築する方が、セキュリティ的には良い結果が得られたんじゃないかって考えちゃうな。

そのミッションクリティカルなツールも、書き直しの書き直しだからね。自分も熱心な信者にならないように。

ロケールに無頓着だったから気づいたんだけど、実際にはもっと遅かったんだよね。それにしても、あれは大騒ぎだったな。ロケール処理が追加されて、パフォーマンスもさらに良くなったし。: https://www.phoronix.com/news/Rust-Coreutils-0.2

A classic

これには賛成だよ。問題を見つけるためにはこういうことが必要だし、LTSリリースの前に解決されるなら全然問題ない。

明らかな理由もなくコアユーティリティが書き換えられて、その書き換えがめちゃくちゃに壊れてるのに大丈夫なの?安定版のディストリビューションがちゃんとアップデートできないって、どういうことよ?まあ、いいけどさ。

これには賛成だわ。これがマイクロソフトで問題を見つける方法なんだよね。/s

一番上のコメント、めっちゃ面白いね! > 次のUbuntuのリリースは「感謝祭のモルモット」って呼ばれるらしいよ。