InstallShield

10102 : インストーラーの .exe ファイルと同一フォルダにある ntmarta.dll や cryptbase.dll を不正に読み込む

インストーラーの .exe ファイルと同一フォルダに ntmarta.dll や cryptbase.dll ファイルが存在した場合、
実行時にそのファイルを不正に読み込むことがあります。

対象製品:InstallShield 2016 Service Pack 2、InstallShield 2015 Service Pack 2


[概要]

InstallShield で直接呼び出していない一部の .dll(ntmarta.dll、cryptbase.dll など)がインストーラーの
.exe と同一フォルダに配置されたとき、インストーラー実行時にこのファイル不正に読み込む事象が発生
することがあります。
この事象は特定の Windows 7 上で確認されており、#IOJ-1829226 として登録されています。

InstllShield で生成したインストーラーは内部で Microsoft 社の API を使用していますが、この API が内部
でカレントディレクトリにある ntmarta.dll、cryptbase.dll を読み込むことに起因しており、これに対応する
ために InstallShield 側で#IOJ-1829226に対する hotfix が提供されています。

Windows loads a different library or launches a different executable than was intended by the author of a InstallShield setup launcher executable

---------------------------------------------------------------------------------------------------------------------------------------
NOTE 2: On February, 23, 2018, the Hotfixes for InstallShield 2015 SP2 and InstallShield 2016 SP2
were updated to resolve an issue which caused an improper load of ntmarta.dll on specific Windows 7
machines, tracked as Issue #IOJ-1829226.
---------------------------------------------------------------------------------------------------------------------------------------


[Hotfix]

以下の手順で、hotfix を適用してください。

  1. 以下の Flexera Knowledge Baseより、NOTE2 の下にある Hotfix IOJ-1829226 をダウンロードします。

    Windows loads a different library or launches a different executable than was intended by the author of a InstallShield setup launcher executable
    --------------------------------------------------------------------------------------------
    InstallShield 2016 SP2 Hotfix IOJ-1829226 may be downloaded here.
    InstallShield 2015 SP2 Hotfix IOJ-1829226 may be downloaded here.
    --------------------------------------------------------------------------------------------
    ※該当するバージョンの here からダウンロードしてください。

  2. InstallShield がインストールされているマシン上で、手順1 でダウンロードした hotfix を実行します。
    ※hotfix 適用前に、InstallShield は終了しておく必要があります。

  3. InstallShield を起動し、各プロジェクトでインストーラーを再ビルドします。
    ※再ビルド後に生成されたインストーラーで、上記が適用された setup.exe が生成されます。

[注意事項]

  1. セットアップランチャーの名称を setup.exe とした場合、OS 側の動作として実行ディレクトリに存在する
    version.dll などシステムファイルと同名の .dll ファイルを既定で読み込むことがあるため、セットアップ
    ランチャーの名前を "Installer.exe" など"setup.exe"以外にすることが推奨されます。

  2. InstallShield では、Microsoft が外部ライブラリを安全に読み込めるようにする新しい API 拡張機能を使用
    しているため、OS 側での対策が行われている環境にて正常に動作いたします。
    インストーラーの実行環境には、以下のセキュリティ hotfix が適用されている必要があります。

    マイクロソフト セキュリティ アドバイザリ: 安全でないライブラリの読み込みにより、リモートでコードが実行される

 

[備考]
InstallShield 2018 では、すでにこの問題は修正されています。

なお、本 hotfix はメーカーの意向により一時個別提供となっておりましたが、現在正式公開となっております。


脆弱性、ロード、カレントディレクトリ
2018/03/12 11:49:13
2019/05/27 16:00:58