概要
Spectre は、攻撃されるプログラムに関する情報を開示するために使用される可能性がある投機的実行側チャネルを含むハードウェアの脆弱性の新しいクラスです。 詳細については、 この Visual C++ チーム ブログの記事 と セキュリティ アドバイザリ 180002を参照してください。
コードが信頼境界を越えるデータに対して動作する開発者の場合は、 /Qspectre スイッチを有効にしてから、提供されている Spectre 軽減ライブラリにリンクすることで、これらの更新プログラムをインストールし、コードを再コンパイルすることを検討する必要があります。 /Qspectre とライブラリは、Spectre Variant 1 - CVE-2017-5753 の軽減策を提供します。
この更新プログラムの入手方法
ツール セットの更新
| すべてのアーキテクチャ | VC14-KB4338871.exe |
|---|
Spectre 軽減 VC++ ライブラリ
| サポートされているすべてのシステム (x86 ベース) | VS2015U3_vcpp_spectre_libs_x86.exe |
|---|---|
| サポートされているすべてのシステム (x64 ベース) | VS2015U3_vcpp_spectre_libs_x64.exe |
| サポートされているすべての ARM ベースのシステム | VS2015U3_vcpp_spectre_libs_arm.exe |
前提条件
この更新プログラムを適用するには、 Update 3 for Visual Studio 2015 がインストールされている必要があります。
再起動に関する情報
この更新プログラムの適用後、コンピューターの再起動が必要になる場合があります。
置き換えに関する情報
この更新プログラムを適用しても、これまでにリリースされた更新プログラムが置き換えられることはありません。
この更新プログラムの関連情報
ツール セットの更新プログラムをインストールすると、C/C++ コマンド ライン オプションから /Qspectre を手動で有効にすることができます。
また、Spectre 軽減 VC++ ライブラリ (アーキテクチャごとに 1 つの更新プログラム) をインストールし、それらに手動でリンクする必要があります。
パスは次のとおりです。
x86:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre
x64:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\amd64
腕:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\arm
静的リンク のサポートと アプリケーション のローカルデプロイ のみを提供しています。 Visual C++ 2015 ランタイム ライブラリ再頒布可能パッケージの内容は変更されませんでした。 アプリケーション ローカルデプロイとは、マルチスレッド DLL (/MD または /MDd) オプションを使用して新しい Spectre ライブラリにリンクすることを意味し、新しいプログラムをデプロイするときに、軽減されたランタイムを読み込む .exe ファイルと同じディレクトリに含めます。 一元的にデプロイされたランタイムのバージョン (C:\Windows\System32 または C:\Windows\SysWOW64) は、mitgated 以外のバージョンです。 実行可能ファイルが同じディレクトリにない場合は、一元的にデプロイされたバージョンのランタイムが選択されます。
使いやすさを考慮して、Spectre ライブラリ ディレクトリ内のほとんどのライブラリのコピーも提供しています。 ただし、すべてスペクター軽減されるわけではありません。 次の表では、軽減されるライブラリを指定します。 また、テクノロジがそのアーキテクチャでサポートされている場合、Spectre の軽減策を持つファイルは、すべてのアーキテクチャで一貫している必要があることにも注意してください。
Visual C++ ランタイムの静的ライブラリとインポート ライブラリ
- binmode.obj
- chkstk.obj
- Commode.obj
- comsupp.lib
- comsuppw.lib
- concrt.lib
- delayimp.lib
- invalidcontinue.obj
- iso_stdio_wide_specifiers.lib
- legacy_stdio_definitions.lib
- legacy_stdio_wide_specifiers.lib
- libcmt.lib
- libconcrt.lib
- libconcrt1.lib
- libcpmt.lib
- libcpmt1.lib
- libvcruntime.lib
- loosefpmath.obj
- msvcmrt.lib
- msvcprt.lib
- msvcrt.lib
- newmode.obj
- noarg.obj
- noenv.obj
- notelemetry.obj
- nothrownew.obj
- oldnames.lib
- ptrustm.lib
- setargv.obj
- threadlocale.obj
- vcamp.lib
- vccorlib.lib
- vcomp.lib
- vcruntime.lib
- wsetargv.obj
- onecore\iso_stdio_wide_specifiers.lib
- onecore\legacy_stdio_definitions.lib
- onecore\legacy_stdio_wide_specifiers.lib
- onecore\libcmt.lib
- onecore\libcpmt.lib
- onecore\libcpmt1.lib
- onecore\libvcruntime.lib
- onecore\msvcprt.lib
- onecore\msvcrt.lib
- onecore\oldnames.lib
- onecore\vccorlib.lib
- onecore\vcomp.lib
- onecore\vcruntime.lib
Visual C++ ランタイム DLL
- concrt140.dll
- mfc140chs.dll
- mfc140cht.dll
- mfc140deu.dll
- mfc140enu.dll
- mfc140esn.dll
- mfc140fra.dll
- mfc140ita.dll
- mfc140jpn.dll
- mfc140kor.dll
- mfc140rus.dll
- mfc140u.dll
- mfcm140u.dll
- Microsoft.VisualC.STLCLR.dll
- msvcp140.dll
- vcamp140.dll
- vccorlib140.dll
- vcruntime140.dll
- onecore\concrt140.dll
- onecore\msvcp140.dll
- onecore\vccorlib140.dll
- onecore\vcruntime140.dll