EXEpressにも関わる「DLL読み込みに関する脆弱性」について

EXEpress ユーザーサポート担当田中です。

EXEpressにも関わるDLL読み込みに関する脆弱性について、最近お問い合わせをいただくことが度々ありましたので、この場を借りて、解説いたします。本記事が、ユーザーの皆様の心配を少しでも軽減できれば、と願っております。

本件は、一般的な脆弱性情報を集めている「CWE」で定義されている「CWE-426」という項目に該当します。

以下に簡単に概要をまとめます。

自己解凍実行ファイル(以下、exeファイル)を実行すると、Windows APIを使用するため、いくつかのDLLファイルを参照しますが、そのうち一部のDLLについて、同名のファイルをexeファイルと同じ場所に配置していた場合、Windowsの標準的な動作として、そちらからロードを試みてしまいます。

そのため、悪意のある偽装したDLLがexeファイルと同じフォルダにある場合、exeファイルが偽装DLLをロードしてしまい、任意の攻撃コードを実行できてしまいます。

先日公開した、当社のソフトウェア EXEpress Ver.6.03のアップデートでは、exeファイルの起動時に即時DLLをロードしないように変更し、かつロードはWindowsのシステムフォルダにあるファイルを厳密に指定して行うように変更しました。これにより、exeファイルと同じ場所に不正なDLLを配置しても、それがロードされることはなくなります。

補足ですが、本脆弱性はWindowsの仕様に起因するため、EXEpress Ver.6.03以前のみならず、InstallShieldで作成したexeファイルや、その他多くのexeファイルにも同様の問題が生じる可能性がございます。(なお、InstallShieldは2016/10/18に公開されたHotFixでこの問題に対応しています)

この問題は多くのexeファイルでも発生する現象ですが、インストーラの場合はダウンロードフォルダなど、悪意のあるファイルが存在している可能性が高いフォルダから実行される場合もあるため、脆弱性として扱っております。

本脆弱性に対応したEXEpress 6の製品ページはこちら

2020/06/16 更新 |