Ubuntu 25.10の新しい「sudo-rs」コマンドに2つの脆弱性が発見され、公開され、短期間で修正されました。
月曜日、Ubuntuのセキュリティ通知 USN-7867-1で、新しいRust製sudoコマンドに2つのセキュリティホールがあることが明らかになりました。このコマンドはバージョン25.10で登場し、The Registerは5月に紹介しています。sudoはQuesting Quokkaの他の新しいRustコンポーネント、GNU coreutilsのRust置き換えとは別プロジェクトです。
確かに、認証や権限昇格を目的とするコアツールに脆弱性があるのは良くないことですが、今回の穴は比較的軽微で、悪用は困難です。
The RegのFOSSデスクは、sudoを2000年のMac OS X最初のパブリックベータで初めて体験しましたが、クラシックなCバージョンは由緒あるツールです。あまりに古いため正確な初出日は不明ですが、プロジェクト自身の歴史によれば1980年に遡ります。(プロジェクトのロゴはコードよりずっと新しく、2006年のXKCDコミックが元ネタです。)Ubuntuは最初のリリースである4.10 “Warty Warthog”からsudoコマンドを含み、全能なrootアカウントの使用を推奨していません。
新しいsudo-rs実装は完全な書き直しであり、Trifecta Tech FoundationのプロジェクトリーダーMarc Schoolderman氏が、先月のUbuntu Summitで「Sudo-rs and beyond」というタイトルで講演しました。筆者もその講演に出席し、Schoolderman氏と話をしたので、今回連絡を取りました。以下は本人からの話です:
Linux界隈ではRustに対して賛否両論があることを踏まえ、彼は今回の2件はいずれもメモリ安全性とは無関係、つまりRust自体に直接関係するものではないと指摘しました。
とはいえ、両方のバグにはたとえ軽微でもセキュリティ上の影響があるため、議論し番号を割り当てる価値があります。情報や修正内容、修正理由を共有することで、周知が広がります。彼によれば、チームはsudo-rsのDebian「stable」バージョンにもセキュリティ修正をバックポートし、下流パッケージャーの負担軽減にも役立てたとのことです。
Questingのリリースからほぼ1か月、この間に新しいRustコンポーネントに対するバグハンターの注目が集まったのは2度目です。10月23日にはJulian Andres Klode氏が、Rust coreutilsの日時処理バグをubuntu-security-announceメーリングリストに投稿しました。
Canonicalのバグ #2127970に詳細があります。date -r $FILENAMEコマンドは、本来ファイルの最終変更時刻を表示するものです:
-r, --reference=FILE
FILEの最終変更時刻を表示する
新しいRust製dateコマンドはこれを正しく処理せず、現在の日付を返していました。これは、単にdateコマンドだけを入力した場合と同じ挙動です。このため、自動更新が正常に動作しなくなり、バックグラウンドチェックがファイルの古さを判定できなくなりました。
Redditで議論されたように、これはRustコマンドがGNU coreutilsのC版と同じスイッチを黙って受け付けるためです。コメントでも指摘されている通り、これは古くて複雑なツールの代替品を提供するパッケージではよくあることです。たとえば、Postfixのsendmailコマンドは、クラシックなsendmailのはるかに単純な代替品です(詳細はブートノート参照)。
幸い、Rust製dateの問題は深刻な障害にはなりませんでした。通常のアップデートチェックには影響せず、アップデートを実行すれば修正版dateがインストールされ、問題は解消しました。今回のsudo-rsの件はセキュリティ問題であり、まだ若いsudo-rsプロジェクトは完全なCoordinated Vulnerability Disclosure(協調的脆弱性公開)プロセスを経ました。Schoolderman氏は「内部的には、このプロセスが非常にスムーズに進み、オープンソースコミュニティ内の他の関係者とのやり取りも良好でした」と語っています。
このような事例は重要であり、これこそがUbuntuの中間リリースが存在する理由です。新しいツールを早期に公開し、誰も予想しなかった問題を発見してもらうためです。Schoolderman氏は次のように締めくくりました:
ブートノート
元祖sendmailプログラムはEric Allman氏によって書かれ、有名です:「Sendmailは人類史上最も恐ろしい設定ファイルを持つことで知られている。」1980年代、筆者はUnixの修行時代にsendmail.cfの基本的な書き方を学ばなければなりませんでした。Linux Network Administrator’s Guideにもこう書かれています:
昨年のEuroBSDConで、筆者はAllman氏に会い、サインをもらいました。®
翻訳元: https://go.theregister.com/feed/www.theregister.com/2025/11/13/ubuntu_rust_sudo_hole/