rsync 3.5、セキュリティ修正33件の「異例」リリース

rsyncの歴史上、1回のリリースでこれほど多くのCVEが修正されたことはない。集中監査が暴いたのは、30年近く使われてきたコードの「信頼の死角」だった。

rsync 3.5、セキュリティ修正33件の「異例」リリース

rsyncの歴史上、1回のリリースでこれほど多くのCVEが修正されたことはない。集中監査が暴いたのは、30年近く使われてきたコードの「信頼の死角」だった。


33件のCVE、1つのリリース

ファイル同期ツールrsyncのバージョン3.5.0が公開された。公式のリリースノートが自ら「extraordinary release」(異例のリリース)と形容するとおり、修正されたセキュリティ問題は33件に上る。

脆弱性の深刻度もばらつきが大きい。CRITICAL判定が1件、HIGHが17件、MEDIUMが15件。修正の大半は、パス処理とデーモンプロトコルに対する集中監査、およびデーモンプロトコルのファジングから見つかったもので、外部の研究者からの報告も含まれている。

つまり、これは「バグがたまたま見つかった」話じゃない。意図的に掘り返して、掘り返しただけ出てきた。

シンボリックリンクという古い罠

33件のうち、最も件数が多いのがシンボリックリンクの競合状態(TOCTOU: Time-of-Check to Time-of-Use)に関連する脆弱性だ。

仕組みはこうだ。rsyncがファイルパスを確認してから実際にファイルを操作するまでの一瞬のすきに、攻撃者がディレクトリをシンボリックリンクに差し替える。rsyncは差し替えに気づかず、本来アクセスすべきでない場所のファイルを読み書きしてしまう。

rsyncをroot権限で動かし、かつソースツリーに一般ユーザーが書き込める環境では、日常的なバックアップがそのまま権限昇格の入り口になりうる。

CVE-2026-53802(HIGH)では、フィルタファイルや--files-fromに仕込んだシンボリックリンク経由で任意のファイルを読み取れる。CVE-2026-53803(HIGH)では、ログファイルやバッチファイルの出力先パスを乗っ取ることで、たとえばauthorized_keysへの書き込みが可能になる。SSHの認証鍵を外部から追加できるという意味だ。

CVE-2026-53785(HIGH)は--relativeオプション使用時に、親ディレクトリの作成がシンボリックリンクをたどってしまい、宛先ツリーの外にファイルを配置できる。

rsync 3.5.0 修正33件のカテゴリ別内訳
攻撃カテゴリ件数割合
シンボリックリンク競合11件33.3%
デーモンプロトコル10件30.3%
可用性・アクセス制御6件18.2%
クライアント側2件6.1%
メモリ安全性2件6.1%
コマンド注入1件3.0%
rrsync制限脱出1件3.0%
※CVE番号ベースで分類。堅牢化措置(CVE番号なし)は含まない

いずれも「パスの解決を1回だけ行い、その結果を信じる」という、長年の設計前提そのものが問題だった。

修正の中核: パスを1歩ずつ歩く

3.5.0の修正で中核となるのがsecure_relative_open()フレームワークの全面導入だ。

従来のrsyncは、ファイルパスを文字列として受け取り、OSにそのまま渡していた。3.5.0では、パスの各コンポーネントを1つずつO_NOFOLLOW付きのopenat()で開き、ディレクトリのファイルディスクリプタを保持しながら進む。途中にシンボリックリンクがあっても、それがrootまたは実行ユーザーの所有でない限り、たどらない。

パスを「文字列」ではなく「ディレクトリの連鎖」として扱う設計に変わった。これにより、確認と操作の間にパスを差し替える攻撃が構造的に封じられる。

Linux 5.6以降ではopenat2(RESOLVE_BENEATH)、FreeBSD 13以降やmacOS 15以降ではO_RESOLVE_BENEATHがカーネルレベルで脱出を防ぐ。古いプラットフォームでは各コンポーネントごとのO_NOFOLLOWウォークにフォールバックする。

この変更は、3.4.0でCVE-2024-12086の修正として部分的に導入されたsecure_relative_open()を、デーモンモードを含むすべてのパス操作に拡張している。

CRITICAL: プロキシプロトコルの偽装

33件中、唯一CRITICAL判定を受けたのがCVE-2026-53791だ。

rsyncデーモンでproxy protocol = trueが有効な場合、信頼されたプロキシ経由でなくても、クライアントがPROXYヘッダを送信して送信元アドレスを偽装できた。ホストベースのアクセス制御を完全に迂回できるため、デーモンをリバースプロキシの背後で運用している環境では深刻な問題になる。

修正後は、転送されたアドレスは設定済みの信頼プロキシからの接続時にのみ受け入れられる。

デーモンプロトコルの地雷原

ファジングで発見されたデーモンプロトコルの脆弱性群も見逃せない。

CVE-2026-70456(HIGH)は、ピアが送信する引数の数がちょうど上限値maxargsに一致した場合に、末尾のNULLが配列の1つ先に書き込まれるヒープの境界外書き込みだ。CVE-2026-70458(HIGH)では、-H(ハードリンク保持)が有効でないにもかかわらずFLAG_HLINKEDが付いたファイルエントリを受け入れてしまい、確保されていないスロットへの書き込みが発生する。

CVE-2026-70464(HIGH)は、認証前のハンドシェイクで接続を無期限に保持できるDoS攻撃。改行なしのデータを送り続けるだけで、モジュールのmax connectionsを食いつぶせる。

デーモンのfork-per-connection設計が被害範囲を個別の接続に限定してくれるが、それでも境界外書き込みは攻撃者にとってのプリミティブになりうる。

「Patch the Planet」とオープンソースの体力

今回のリリースノートで目を引くのは、謝辞の厚みだ。

Linuxカーネルのstableメンテナであるグレッグ・クロー=ハートマン(Greg Kroah-Hartman)氏がセキュリティレポートと助言を提供し、Trail of Bitsのフィリペ・カサル(Filipe Casal)氏は、OpenAIとの共同イニシアチブ「Patch the Planet」を通じてテストとセキュリティレポートを大量に提出した。rsync管理者グループにも6人の新メンバーが加わり、トリアージやテスト作成、PRレビューを分担している。

rsyncの原作者であるアンドリュー・トリジェル(Andrew Tridgell)氏は2024年に開発の第一線に復帰している。1996年にオーストラリア国立大学の博士論文から生まれたツールが、30年後にこれだけの集中監査を受けて立て直されたことになる。

rsyncセキュリティリリースの経緯(2025〜2026年)
2025年1月
3.4.0 セキュリティ修正6件
Google研究者の報告。ヒープオーバーフロー・パストラバーサル等
2025年1月
3.4.1 リグレッション修正
3.4.0のフラグ衝突・ビルド問題を修正
2026年4月
3.4.2 セキュリティ関連修正
整数オーバーフロー等を修正。CVE番号なし
2026年5月
3.4.3 セキュリティ修正6件
シンボリックリンク競合・圧縮デコーダの脆弱性等
2026年6月
3.4.4 リグレッション修正
3.4.3で発生した--link-dest等のリグレッションを修正
2026年8月
3.5.0 セキュリティ修正33件
パス処理・デーモンプロトコルの集中監査で33件を修正
※rsync公式リリースノートに基づく

3.4.3でも6件のCVEが修正されたが、リグレッションが多発して3.4.4で修正を重ねた経緯がある。開発チームはその反省から、3.5のテストスイートを大幅に拡充し、セキュリティの専門知識を持つメンバーを増員した。

ユーザーが今すぐ確認すべきこと

3.5.0で修正された脆弱性のうち、かなりの数はデフォルト設定(use chroot = yes)では到達しない。だが「到達しない」は「安全」じゃない

use chroot = noで運用しているデーモン

シンボリックリンク競合の多くがここに集中している。chrootなしのデーモンは、パス走査のほぼすべてが攻撃面になっていた。最優先で更新すべき環境だ。

rrsyncで制限付きSSHアクセスを提供している環境

CVE-2026-53783(HIGH)で制限ディレクトリからの脱出が可能だった。バックアップ用途でrrsyncを使っている場合は即座に更新が必要になる。

root権限でrsyncを実行しているバックアップスクリプト

シンボリックリンク競合の脆弱性群は、rsyncが高い権限で動いているほど影響が大きくなる。自動バックアップのcronジョブを確認してほしい。

古い安定版系列からすぐに3.5.0へ移行できない場合、rsync 3.2.7用と3.4.1用のパッチセットが公式に提供されている。GPG署名付きで、フルセットと差分セットが用意されている。


30年の信頼を更新する

rsyncは1996年の初版リリース以来、Linuxインフラの基盤であり続けてきた。サーバーのバックアップ、ミラーサイトの同期、CI/CDパイプラインのアーティファクト転送。目に見えない場所で、黙って動いてきたツールだ。

だからこそ、33件のCVEという数字は重い。30年にわたって前提とされてきたパス処理の信頼モデルが、現代の攻撃面の前では通用しなくなっていた。それが33件の正体だ。

トリジェル氏は10年以上前に「50年後、Sambaは誰も知らないかもしれないが、rsyncは何らかの形で使われているだろう」と語ったことがある。その予測が正しいなら、rsyncにはまだ先がある。3.5.0は、その先に向けた足場の組み直しだ。

関連記事

この記事を共有する