Resumen
Spectre es una nueva clase de vulnerabilidades de hardware que implican canales de ejecución especulativa que pueden usarse para divulgar información sobre el programa que se está atacando. Para obtener más información, consulte este artículo del Blog del equipo de Visual C++ y aviso de seguridad 180002.
Si es un desarrollador cuyo código funciona con datos que cruzan un límite de confianza, considere la posibilidad de instalar estas actualizaciones y volver a compilar el código al tener habilitado el modificador /Qspectre y vincular a las bibliotecas mitigadas por Spectre que se proporcionan. /Qspectre y las bibliotecas proporcionan asistencia de mitigación para Spectre Variant 1 - CVE-2017-5753.
Cómo obtener esta actualización
Actualización del conjunto de herramientas
| Para todas las arquitecturas | VC14-KB4338871.exe |
|---|
Bibliotecas de VC++ mitigadas por espectro
| Para todos los sistemas compatibles basados en x86 | VS2015U3_vcpp_spectre_libs_x86.exe |
|---|---|
| Para todos los sistemas compatibles basados en x64 | VS2015U3_vcpp_spectre_libs_x64.exe |
| Para todos los sistemas basados en ARM compatibles | VS2015U3_vcpp_spectre_libs_arm.exe |
Requisitos previos
Para aplicar esta actualización, debes tener instalada la actualización 3 para Visual Studio 2015 .
Información de reinicio
Quizás tenga que reiniciar el equipo una vez aplicada esta actualización.
Información de reemplazo
Esta actualización no sustituye a ninguna otra publicada anteriormente.
Información adicional sobre esta actualización
Al instalar la actualización del conjunto de herramientas, puedes habilitar /Qspectre manualmente desde las opciones de la línea de comandos de C/C++.
También debes instalar las bibliotecas de VC++ mitigadas por Spectre (una actualización por arquitectura) y vincularlas manualmente a ellas.
Las rutas son las siguientes:
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
ARM: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\arm
Solo proporcionamos compatibilidad con vinculación estática e implementación local de aplicaciones . El contenido de las bibliotecas redistribuibles de Visual C++ 2015 Runtime no se ha modificado. La implementación local de aplicaciones significa que se vincula a las nuevas bibliotecas de Spectre mediante la opción DLL multiproceso (/MD o /MDd) y, después, al implementar el nuevo programa, se incluyen los tiempos de ejecución mitigados en el mismo directorio que el archivo .exe que los carga. La versión implementada de forma centralizada del tiempo de ejecución (la de C:\Windows\System32 o C:\Windows\SysWOW64) es la versión no mitgated. Si el archivo ejecutable no está en el mismo directorio, selecciona la versión implementada de forma centralizada del tiempo de ejecución.
Para facilitar el uso, también proporcionamos copias de la mayoría de las bibliotecas en los directorios de la biblioteca spectre. Sin embargo, no todos están mitigados por Spectre. La tabla siguiente especifica qué bibliotecas se mitigan. Tenga en cuenta también que los archivos que tienen mitigaciones spectre deben ser coherentes en todas las arquitecturas, si la tecnología es compatible con esa arquitectura.
Bibliotecas estáticas e importadas en tiempo de ejecución de 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
DLL en tiempo de ejecución de Visual C++
- 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