7-Zipで任意コード実行が可能となる2件の脆弱性
2016年5月15日 20:28
オープンソースの高圧縮ファイルアーカイバ―「7-Zip」で、任意コード実行が可能となる2件の脆弱性が発見された(Cisco Talos Blogの記事、The Registerの記事)。 TALOS-2016-0094 (CVE-2016-2335)はUDFファイルの処理における領域外メモリ参照の脆弱性だ。UDFボリュームでは複数のパーティションマップを保持できるが、7-Zipでは利用可能なパーティションマップオブジェクトの数よりもLong Allocation Descripterから取得した「PartitionRef」フィールドの値が大きいかどうかを確認しない。そのため、Long Allocation Descripterを細工することで領域外メモリ参照を引き起こし、任意のコード実行が可能になるという。 TALOS-2016-0093 (CVE-2016-2334)はHFS+ファイルシステムにzlib圧縮で格納されたファイルの処理におけるヒープオーバーフローの脆弱性だ。HFS+ファイルシステムでzlibを用いて圧縮したファイルを格納するとき、圧縮後のサイズが3,800バイトを超える場合は複数のブロックに分割される。しかし、7-Zipで伸長を行う際、読み込んだブロックを格納する静的サイズのバッファーよりもブロックのサイズが大きいかどうかを確認しない。そのため、バッファーよりも大きくなるように細工したブロックを用いることで、バッファーオーバーフローに続いてヒープ破損を引き起こし、任意のコード実行が可能になるとのこと。 これらの脆弱性は最新版の7-Zip 16.00で修正されており、ユーザーは早期の更新が推奨される。ただし、7-Zipはさまざまな製品で利用されているため、Cisco Talosでは脆弱性を含むライブラリを使用していることにベンダーが気付きにくいといった問題も指摘している。 スラドのコメントを読む | セキュリティセクション | セキュリティ | ソフトウェア | バグ
関連ストーリー: 2014年の教訓:サードパーティのライブラリには脆弱性がある 2015年01月05日 FFmpegのLZO実装コードに脆弱性、20年前から存在 2014年07月02日 libupnpに脆弱性、これを利用しているUPnP対応機器は注意を 2013年01月31日 UNLHA32.DLLの開発停止、作者がLHA書庫の使用中止を呼びかける 2010年06月07日 GNU gzipに脆弱性、1.4リリース 2010年02月05日 圧縮・展開ルーチンに脆弱性、bzip2など相次ぎリリース 2008年03月19日 7-ZIP32.DLLにバッファオーバーフローの脆弱性 2007年09月10日 zlibにバッファオーバーフロー脆弱性 2005年07月08日