概要
Cisco Talos は本日(10 月 26 日)、Matroska ファイル形式のビデオ ファイル(.mkv ファイル)を解析する MKVToolNix mkvinfo ユーティリティにおいて明らかになった脆弱性を公開しました。
MKVToolNix は、Linux、Windows などのオペレーティング システムで Matroska ファイルを作成・変更・検査するためのツール セットです。
Matroska は、映画やテレビ番組などの一般的なマルチメディア コンテンツを保存するためのファイル形式で、主にオープンソース ソフトウェアで実装されています。Matroska ファイルの拡張子には、MKV(映像)、MK3D(3D 映像)、MKA(音声のみのファイル)、MKS(字幕のみのファイル)があります。
MKV ファイルは、マルチメディア コンテナ形式です。MKV コンテナでは、音声、映像、字幕を 1 つのファイルに組み込むことができます。各要素が異なるタイプのエンコーディングを使用していても問題ありません。たとえば、映像は H.264 で、音声は MP3 または AAC である MKV ファイルを作成することが可能です。
脆弱性の詳細
TALOS-2018-0694 (CVE-2018-4022)は、MKVToolNix mkvinfo ツールに存在し、MKV(Matroska Video)ファイル形式の処理方法に起因する、Use-After-Free の脆弱性です。本脆弱性を発動させるよう作成された悪意ある MKV ファイルによって、現在のユーザのコンテキストでコードが実行されるおそれがあります。
mkvinfo パーサーは、新しい要素を読み込んでいる間に、現在の要素に特定の有効値が存在するかどうか確認することで、その検証を試みます。該当する値がない場合、読み取りは無効であるとして、パーサーはこの要素を削除します。
ただし、要素が削除されても、値は変数を介して呼び出し元の関数に戻されます。しかし、この要素が有効かつ未解放の場合でも、検証は行われません。
脆弱な関数により要素が解放されるよう仕向けるファイルを偽造して、別途行われる削除操作で Use-After-Free 脆弱性を発動させることが可能です。
該当するバージョン
本脆弱性は、64 ビット版 mkvinfo ツールのバージョン 25.0.0 で確認されていますが、これ以前のバージョンにも存在する可能性があります。MKVToolNix ツールセットをバージョン 28.2.0 以降に更新することをお勧めします。
カバレッジ
次の SNORTⓇ ルールは、今回発見された脆弱性に対するエクスプロイトを検出します。脆弱性に関する新たな情報が発見された場合は、ルールが追加・変更される可能性もあります。最新情報にご注意ください。ルールに関する最新情報は、Firepower Management Center または Snort.org を参照してください。
Snort ルール:
本稿は 2018年10月26日に Talos Group のブログに投稿された「Vulnerability Spotlight: Talos-2018-0694 – MKVToolNix mkvinfo read_one_element Code Execution Vulnerability」の抄訳です。