この脆弱性は Cisco Talos の Marcin Noga が発見しました
概要
Talos では、FreeXL ライブラリに 2 件の脆弱性を発見しました。これらの脆弱性によりリモートでコードが実行される危険性があります。FreeXL は、Excel(.xls)スプレッド シートから有効なデータを抽出するための、オープンソースの C ライブラリです。これらの脆弱性がエクスプロイトされると、攻撃者により任意のコードが実行される危険性があります。細工された .XLS(Excel)ファイルを、FreeXL ライブラリを使用したアプリケーションから開くと、悪意のあるコードがローカル ユーザの権限で実行されます。
詳細
TALOS-2017-0430 / CVE-2017-2923
FreeXL ライブラリの read_biff_next_record 関数に、ヒープ ベースのバッファ オーバーフローに起因する脆弱性が存在します。この脆弱性は、BIFF(Binary Interchange File Format)レコードのサイズが read_biff_next_record 関数の workbook->record フィールドより大きい場合に発生します。
この脆弱性を突いた .XLS ファイルを開くとメモリ破壊が引き起こされ、リモートでコードが実行されます。攻撃者は、これを悪用することでメモリの大部分を上書きし、アプリケーションをクラッシュさせたり、重要な制御フロー構造を上書きして任意のコードを実行したりすることができます。詳細については、完全版のレポートを参照してください。
TALOS-2017-0431 / CVE-2017-2924
FreeXL ライブラリの read_legacy_biff 関数には、ヒープ ベースのバッファ オーバーフローに起因する別の脆弱性が存在します。DIMENSION レコードが悪意のある XLS ファイルのデータで満たされている場合に、関数がそれを解析するとバッファ オーバーフローが発生します。この脆弱性をエクスプロイトするには、悪意のある XLS ファイルが BIFF 形式である必要があります。攻撃者は、これを悪用することでメモリの大部分を上書きし、アプリケーションをクラッシュさせたり、重要な制御フロー構造を上書きして任意のコードを実行したりすることができます。詳細については、完全版のレポートを参照してください。
カバレッジ
今回の脆弱性をエクスプロイトする試みは、以下の Snort ルールにより検出できます。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新ルールの詳細については、FireSIGHT Management Center または Snort.org を参照してください。
Snort ルール:44271-44272、44273-44274
本稿は 2017年9月11日に Talos Group のブログに投稿された「Vulnerability Spotlight: TALOS-2017-0430/0431: Multiple Vulnerabilities in FreeXL Library」の抄訳です。