何が起きたか・対象

Unix向けUnRARで、アーカイブ内のリンク先を検査した後にパス区切りを変換し、検査用の展開領域の外へファイルを書ける問題がありました。識別子はCVE-2022-30333です。 問題の変換はバックスラッシュからスラッシュへの置き換えです。

攻撃者がそのリンクと、リンク経由で保存するファイルをRAR添付に含め、Zimbraへメールを送る経路が実証されています。Amavisが受信時に脆弱なUnRARで自動展開すると、変換後のリンク先が領域外を指し、そこへファイルが書かれます。受信者のログインやメール閲覧は必要ありません。 説明用に、展開先を/tmp/check、そこに作るリンクをlinkとし、RAR内の別ファイルの名前がlink/note.txtだとします。先に作ったlinkが外のディレクトリを指していれば、後からnote.txtを展開する際、OSがlinkをたどり、その参照先へ内容を書きます。

同じホスト上のWeb公開ディレクトリへ書ける試験構成では、攻撃者は命令を受け付けるJSPを保存し、そのURLへ接続することでWebサービスに実行させられました。保存だけでコードが動くのではなく、書き込み権限と、そのファイルをプログラムとして実行するサービスが必要です。 この経路で動くコードは、まずzimbraユーザーの権限に従います。

報告・修正・公開の時系列

2022-05-04にRarLabへ報告され、05-06にUnRARバイナリ6.12が公開されました。Zimbraは05-20にAmavisで7zを使う対応を行い、研究公開は06-28です。ツール側の修正と製品側の対応を分けて扱います。

正常ならどう動くはずだったか

Zimbraの添付検査では、AmavisがRARを一時領域へ展開して内容を検査します。アーカイブ内のリンクがあっても、その領域外へ書き込まないようにする必要があります。受信者がメールを開く前にもこの処理は動きます。

技術的な原因

Unix向けUnRARは、RAR内のシンボリックリンクの参照先が展開先の外へ出ないか検査した後、Windows形式のパスにあるバックスラッシュをスラッシュへ変換していました。検査時にはUnixの親ディレクトリ指定と見なさなかった文字列が、変換後には展開先の外へ移動するパスになります。安全性を確認した値と、実際にリンクを作るための値が異なることが不備です。 機構の説明用に、リンク先が..\outsideなら、Unixの検査時にはバックスラッシュを通常の名前の文字として扱えます。後から../outsideへ変換すると、..と/が親ディレクトリへの移動を意味します。/tmp/check内に作るリンクでも、変換後は/tmp/outsideを指す例になります。実際の製品の全保存パスを再現した例ではありません。

攻撃が成立する条件と流れ

攻撃者がリンクと、そのリンクを経由して展開するファイルをRAR添付へ含め、Zimbra宛てにメールを送ります。受信時のAmavisが脆弱なUnRARを自動実行すると、一時的な検査用ディレクトリの外へファイルを書けます。受信者がメールを開く前の処理なので、受信者のログインや添付の手動展開は必要ありません。ただし、書き込みだけで即座にコードが動くわけではなく、書いたファイルを他のサービスがプログラムとして読み込む経路も必要です。

確認された事実と、想定される影響

研究はZimbraの試験環境で、認証前のメール受信からコード実行までを実証しています。資料の一例は、検査処理とWebサービスが同じホストにあり、zimbraユーザーがWeb公開ディレクトリへ書ける構成です。攻撃者が命令を受け付けるJSPファイルをそこへ保存し、そのURLへアクセスすると、Webサービスがファイルを実行して攻撃者の命令を処理する経路になります。複数ホストへ分離した構成では同じ経路は使えませんが、資料は別の実行経路も報告しています。その全構成と実行対象は本記事では追跡していないため、複数ホストなら一律に安全とも、同じJSP手法が成立するとも判断しません。

コードが使える権限は、まずzimbraユーザーの権限です。一般的な影響例では、その権限で読めるメールや設定を読み、外部送信も許可されていれば攻撃者へ届けられるおそれがあります。UnRARだけで無条件にroot権限を得る話ではなく、資料が触れる追加の権限昇格は別の不備です。実悪用と被害件数は未確認です。

実際の修正・対応方針

研究資料は、検証したパスとリンク作成に使うパスを一致させる修正がUnRARソース6.1.7、バイナリ6.12に含まれると説明しています。Zimbra側は検査の展開ツールを7zへ切り替えました。詳細な配布差分の全確認は行っていません。

利用者・運用者が確認すること

Zimbraの版だけでなく、実際の添付検査が呼ぶ展開ツールと配布元の修正状況を確認します。検査プロセスが他サービスのプログラム領域へ書けないよう権限も分けると、展開の欠陥から実行への連鎖を抑えられます。

開発者への教訓(教材としての考察)

安全性を確認した後に、文字の表記を変えるだけでも意味が変わります。最終的にOSが使うパスを検証し、処理間で同じ対象を扱っていることを保証する必要があります。

出典・確認範囲

  1. [1] Unrar Path Traversal Vulnerability affects Zimbra MailSonar / 確認日 2026-10-29
未確認事項・限界

本記事では実悪用の観測と被害規模を公的資料まで照合できていません。