Cisco Talos は本日、ACD Systems Canvas Draw 5(Mac 用グラフィック編集ツール)で発見された複数の脆弱性を公開します。Canvas Draw 5 の脆弱性は、TIFF や PCX の画像処理に起因します。TIFF は Canvas Draw で多用されるラスタベースの画像形式です。PCX は初期のコンピュータで一般的に使用された画像形式です。その後、より高度な形式に置き換えられましたが、現在も使用されており、Canvas Draw でもフルサポートされています。
Cisco Talos は情報開示方針に従って ACD Systems と協力し、今回の脆弱性が解決されたことと、影響を受けた利用者向けにアップデートが利用可能であることを確認しています。
脆弱性の詳細
ACD Systems Canvas Draw 5 の FillSpan における境界外書き込みにより、任意コードが実行される脆弱性(TALOS-2018-0638/CVE-2018-3973)
エクスプロイト可能な境界外書き込み(out-of-bounds write)の脆弱性(TALOS-2018-0638)が Canvas Draw バージョン 5.0.0 の TIFF-parsing 関数に存在します。細工された TIFF 画像がアプリケーションで処理されると、境界外書き込み(out of bounds write)を引き起こし、任意のデータを上書きするおそれがあります。脆弱性がエクスプロイトされると、任意コードが実行される危険性があります。
解析画像により影響を受けたアドレスがレジスタに読み込まれ、メモリで下位の 4 バイトがゼロで埋められます。関数「DIB_resolution_set」でこの値が使われると、境界外書き込みを引き起こし、エクスプロイト可能な条件が発生します。
詳細は、こちらからアドバイザリ全文をお読みください。
ACD Systems Canvas Draw 5 の IO metadata における境界外書き込みにより、任意コードが実行される脆弱性(TALOS-2018-0642/CVE-2018-3976)
エクスプロイト可能な境界外書き込み(out-of-bounds write)の脆弱性(TALOS-2018-0642)が、Canvas Draw バージョン 5.0.0.28 の CALS ラスタ ファイル形式の解析機能に存在します。巧妙に細工された CAL 画像がアプリケーションで処理されると、境界外書き込みを引き起こし、任意のデータを上書きする恐れがあります。脆弱性がエクスプロイトされると、任意コードが実行される危険性があります。
この脆弱性は CALS ラスター ファイル形式の解析機能、特に画像の行と列の処理機能に起因しています。CALS ヘッダー内では、画像データの場所と画像サイズに応じて値が設定されています。CALS ヘッダーに不正な値が渡されると、アプリケーションは配列境界外書き込みを行い、画像データへのアクセスを試みます。
詳細は、こちらからアドバイザリ全文をお読みください。
ACD Systems Canvas Draw 5 のハフマン テーブルにおける境界外書き込みにより、任意コードが実行される脆弱性(TALOS-2018-0648/CVE-2018-3980)
エクスプロイト可能な境界外書き込み(out-of-bounds write)の脆弱性(TALOS-2018-0648)が Canvas Draw バージョン 5.0.0 の TIFF-parsing 機能に存在します。
この脆弱性は、Adobe Deflate アルゴリズムで圧縮された、タイル配列の TIFF 画像の解析方法に起因しています。Adobe Deflate は TIFF の標準的な圧縮アルゴリズムではありません。これは Adobe 社の独自規格であり、zlib 圧縮形式を利用したロスレス Deflate 圧縮アルゴリズムです。Canvas Draw でも Adobe Deflate をサポートしています。
この脆弱性はハフマン テーブルを構築する際に引き起こります。ハフマン コーディングは圧縮符号化方式を構成する 2 つの要素の 1 つです。圧縮符号化方式を使用する場合、アプリケーションは検証せずに TIFF 画像から直接ユーザ データを取り出します。
詳細は、こちらからアドバイザリ全文をお読みください。
ACD Systems Canvas Draw 5 の Resoultion_Set における境界外書き込みにより、任意コードが実行される脆弱性(TALOS-2018-0649/CVE-2018-3981)
エクスプロイト可能な境界外書き込み(out-of-bounds write)の脆弱性(TALOS-2018-0649)が Canvas Draw バージョン 5.0.0 の TIFF 解析機能に存在します。細工された TIFF 画像がアプリケーションで処理されると、境界外書き込み(out of bounds write)を引き起こし、任意のデータを上書きするおそれがあります。脆弱性がエクスプロイトされると、任意コードが実行される危険性があります。
この脆弱性は、解像度タグやデータが細工された、タイル配列の TIFF 画像を解析する際に発現します。ユーザにより影響を受けたアドレスがプロセッサ レジスタに読み込まれ、メモリで下位の 4 バイトがゼロで埋められます。「DIB_resolution_set」でこの値が使われると、境界外書き込みを引き起こし、エクスプロイト可能な条件が発生します。
詳細は、こちらからアドバイザリ全文をお読みください。
該当バージョン
脆弱性は Canvas Draw バージョン 5.0.0.28 で確認済みですが、古いバージョンにも存在する可能性があります。お使いのバージョンに合う最新のセキュリティ更新を適用することが推奨されます。
まとめ
作業環境で日常的に共有されるファイル形式は、攻撃者にとって格好の標的となります。それらのファイルが攻撃源になるとは考えないユーザが多いためです。TIFF および PCX ファイル形式は、グラフィック デザイン業界や、FAX といった特定のドキュメントの配布に広く使用されています。
画像ファイル形式は複雑であり、ファイルを解析するプログラムでは意図せず脆弱性が含まれる可能性が高くなります。
カバレッジ
次の Snort? ルールは、今回発見された脆弱性に対するエクスプロイトを検出します。脆弱性に関する新たな情報が発見された場合は、ルールが追加・変更される可能性もあります。最新情報にご注意ください。ルールに関する最新情報は、Firepower Management Center または Snort.org を参照してください。
Snort ルール: 39593 – 39596、 39599 – 39632、 47336、47337
本稿は 2019年1月30日に Talos Group のブログに投稿された「Vulnerability Spotlight: Multiple vulnerabilities in ACD Systems Canvas Draw 5」の抄訳です。