16.00で特定のexeファイルを展開しようとした際にクラッシュするという情報がsourceforgeのフォーラムで報告されていたので気になって調べてみた。0000000000040713一つ前のバージョンである15.04の64-bit版ではクラッシュせずに展開できる。32-bit版では「要求された量のメモリを割り当てることができません」というメッセージが表示されて開くことができないが、クラッシュはしない。スポンサーリンク原因CPP/7zip/Archive/PeHandler.cppの変更が原因であることがわかった。PEファイルのリソースセクションの処理で、セクションのVirtualSize(VSize)とSizeOfRawData(PSize)の小さいほうのサイズで確保されたバッファに対して、バッファの走査を行う際の境界判定の箇所のみSizeOfRawData(PSize)に変えたことが原因。これによって、VirtualSize(VSize)よりSizeOfRawData(PSize)が大きいリソースセクションを持つPEファイル(exe)を開いた際にクラッシュする場合がある。該当行は以下の画像を参照。修正バッファの領域外の参照が原因であり、特に危険な脆弱性ということはないと思われるので本家の修正を待てばよいと思う。16.00には2件の脆弱性修正も含まれているため古いバージョンを使用するべきではない。一応、以下のパッチを当て、ビルドするとクラッシュしなくなることは確認できた。上記パッチの使用は自己責任でお願いします。パッチ自体のライセンスはパブリックドメイン扱いで。コメントをキャンセルメールアドレスが公開されることはありません。続報ビビビッは現在7人で更新しています。1この記事を書いたメンバーauthor:xx2zz13時出社16時退社の仕事を探しています。