DelphiおよびC++BuilderにおけるVCL Bitmap LoadFromFileの脆弱性について
2014/10/03 追記 |
|
概要
VCL内で、不正な形式の BMPファイルを処理する際の潜在的なセキュリティ脆弱性が報告されています。
エンバカデロは、現在、VCLにおける BMPファイルの処理を見直しております。この問題に該当する VCLアプリケーションは以下の修正を行ってください。
- Vcl.Graphics.pasを修正します。 (修正手順は以下をご覧ください)
- 該当するプロジェクトに修正した Vcl.Graphics.pasを追加します。
- C++Builderの場合は [プロジェクト | オプション | パッケージ | 実行時パッケージ ]で「実行時パッケージを使ってリンク」を False(チェックを外す)にします。
- アプリケーションを再構築します。
Vcl.Graphics.pas の修正
- 変数名とスコープは、製品のバージョンによって多少異なる場合があります。構文と以下のスクリーンショットは XE7のものです。
コード修正 1
- TMetafile.ReadEMFStream に対し、次のコードを、以下の画面の箇所に追加します。
if EnhHeader.nBytes < Sizeof(EnhHeader) then
InvalidMetafile;
コード修正 2
- TBitMap.ReadDIB に対し、次のコードを、以下の画面の箇所に追加します。