Cisco Japan Blog
Share

注目の脆弱性:EZB Systems 製 UltraISO ISO の解析機能における、リモートでコードが実行される脆弱性

- 2017年8月7日 4:30 PM

脆弱性の発見者:Piotr Bania(Cisco Talos)

本日 Talos は、EZB Systems 製 UltraISO ISO(ディスク イメージ作成ソフト)で新たに検出された脆弱性の詳細を公開します。TALOS-2017-0342(CVE-2017-2840)の脆弱性では、細工された ISO イメージを UltraISO ソフトウェアで開いて解析した際に、任意のコードがリモートで実行される危険性があります。

概要

この脆弱性は、EZB Systems UltraISO ソフトウェア、ISO CD/DVD イメージ ファイルの作成/編集/変換ツール、および起動可能な CD/DVD イメージの作成ソフトウェアに存在します。UltraISO は、CD/DVD イメージ ファイルを直接編集し、そこからファイルやフォルダを抽出したり、CD/DVD-ROM やハードドライブから直接 ISO ファイルを作成したりできるソフトウェアです。

ISO(9660)のディスク イメージ形式は単一ファイル内のファイル システムです。基本的には、ソフトウェアのインストール ディスク(CD-ROM)で使用されるファイル システムのバイナリ コピーです。よく利用されているソフトウェアや OS のインストール ディスクの多くは ISO ファイル形式を使用して提供されます。

技術詳細

EZB Systems UltraISO には、バッファ オーバーフローの脆弱性が存在します。UltraISO では .ISO ファイルに「NM」エントリを挿入した後、ISO ヘッダーバイトフィールド NM_hdr.len(代行名の長さ)から直接計算された maxlen 引数により _strncpy 関数を実行します。

UltraISO では、このフィールドが常に 5 バイトよりも大きくなることを想定しています。しかし、攻撃者がフィールドの値を 5 バイトよりも強制的に小さくすると、_strncpy 関数の maxlen パラメータは非常に大きくなります(NM_hdr.len – 5、結果は符号なし)。

後に memset 関数が _strncpy 関数内で実行されると、非常に大きなサイズのパラメータが使用されることになります。これによりメモリ破損が発生し、リモートでコードが実行される危険性があります。

この脆弱性の詳細は、TALOS-2017-0342popup_icon のレポートをご覧ください。

ディスカッション

ISO 9660 のファイル形式は昔からある形式の 1 つで、初期の仕様には最大ファイル サイズだけでなく、ファイル名の長さやディレクトリの深さなど、いくつかの制限も含まれます。これらの制限は以前からあるオペレーティング システムから継承されたものです。たとえば、ISO 9660 ファイル システムのファイル名の長さは最大 8 文字、ファイル拡張子の長さは最大 3 文字に制限されています。

その後、さまざまな拡張子が開発されて初期のファイル形式仕様の制限が見直されました。そのうちの 1 つである Rock Ridge 拡張規格により、初期のファイルに代行名を付けられるようになりました。代行名はデフォルトの 8 文字を超えることができます。

UltraISO の脆弱性は、代行名(NM)System Use Entry を解析する際に発生します。代行名の構造にはシングル バイトの長さを設定するフィールドが含まれていますが、攻撃者によりそれが操作されるとバッファ オーバーフローが起き、現在のユーザの権限でコードを実行される危険性があります。

サード パーティのディスク イメージ ユーティリティが役立つ場面も多くありますが、OS にもデフォルト ツールが付属しており、最初にこれを試してみる価値はあります。Windows 8 以降には ISO イメージをマウントする機能が内蔵されているため、サード パーティのディスク イメージング ユーティリティが不要なケースもあります。

それでもサード パーティのディスク イメージング ソフトウェアが必要な場合は、最新のセキュリティ アップデートを必ず適用して、攻撃への対策を取る必要があります。

該当バージョン

9.7.0.3476 より前のバージョンの UltraISO には、本脆弱性に対する修正が含まれています。

カバレッジ

この悪意ある試行は、以下の Snort ルールにより検出可能です。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新のルールの詳細については、FireSIGHT Management Center または Snort.org を参照してください。

Snort ルール:43000 ~ 43001

 

本稿は 2017年8月2日に Talos Grouppopup_icon のブログに投稿された「Vulnerability Spotlight: EZB Systems UltraISO ISO Parsing Code Execution Vulnerabilitypopup_icon」の抄訳です。

 

Tags:
Leave a comment

Share