| Intel Sandy Bridge-E/EN/EP CPU models (SNB-EP, family 6, model 45, stepping 7) |
| had issues with MDS-related microcode update that may lead to a system hang |
| after a microcode update[1][2]. In order to address this, microcode update |
| to the MDS-related revision 0x718 had been disabled, and the previously |
| published microcode revision 0x714 is used by default for the OS-driven |
| microcode update. The revision 0x71a of the microcode is intended to fix |
| the aforementioned issue, hence it is enabled by default (but can be disabled |
| explicitly; see below). |
| |
| [1] https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/issues/15 |
| [2] https://access.redhat.com/solutions/4593951 |
| |
| For the reference, SHA1 checksums of 06-2d-07 microcode files containing |
| microcode revisions in question are listed below: |
| * 06-2d-07, revision 0x714: bcf2173cd3dd499c37defbc2533703cfa6ec2430 |
| * 06-2d-07, revision 0x718: 837cfebbfc09b911151dfd179082ad99cf87e85d |
| * 06-2d-07, revision 0x71a: 4512c8149e63e5ed15f45005d7fb5be0041f66f6 |
| |
| Please contact your system vendor for a BIOS/firmware update that contains |
| the latest microcode version. For the information regarding microcode versions |
| required for mitigating specific side-channel cache attacks, please refer |
| to the following knowledge base articles: |
| * CVE-2017-5715 ("Spectre"): |
| https://access.redhat.com/articles/3436091 |
| * CVE-2018-3639 ("Speculative Store Bypass"): |
| https://access.redhat.com/articles/3540901 |
| * CVE-2018-3620, CVE-2018-3646 ("L1 Terminal Fault Attack"): |
| https://access.redhat.com/articles/3562741 |
| * CVE-2018-12130, CVE-2018-12126, CVE-2018-12127, and CVE-2019-11091 |
| ("Microarchitectural Data Sampling"): |
| https://access.redhat.com/articles/4138151 |
| |
| The information regarding disabling microcode update is provided below. |
| |
| To disable usage of the newer microcode revision for a specific kernel |
| version, please create file "disallow-intel-06-2d-07" inside |
| /lib/firmware/<kernel_version> directory, run |
| "/usr/libexec/microcode_ctl/update_ucode" to add it to firmware directory |
| where microcode will be available for late microcode update, and run |
| "dracut -f --kver <kernel_version>", so initramfs for this kernel version |
| is regenerated and the microcode can be loaded early, for example: |
| |
| touch /lib/firmware/3.10.0-862.9.1/disallow-intel-06-2d-07 |
| /usr/libexec/microcode_ctl/update_ucode |
| dracut -f --kver 3.10.0-862.9.1 |
| |
| To avoid addition of the newer microcode revision for all kernels, please create |
| file "/etc/microcode_ctl/ucode_with_caveats/disallow-intel-06-2d-07", run |
| "/usr/libexec/microcode_ctl/update_ucode" for late microcode updates, |
| and "dracut -f --regenerate-all" for early microcode updates: |
| |
| mkdir -p /etc/microcode_ctl/ucode_with_caveats |
| touch /etc/microcode_ctl/ucode_with_caveats/disallow-intel-06-2d-07 |
| /usr/libexec/microcode_ctl/update_ucode |
| dracut -f --regenerate-all |
| |
| Please refer to /usr/share/doc/microcode_ctl/README.caveats for additional |
| information. |