Spectre 和 Meltdown 漏洞修复
问题
补丁程序可用于修复这些 Spectre 和 Meltdown 漏洞
- CVE-2017-5753:边界检查绕过(Spectre 变体 1)
- CVE-2017-5715:分支目标注入(Spectre 变体 2)
- CVE-2017-5754:恶意数据缓存加载 (Meltdown)
环境
- 此问题仅适用于 Cumulus Linux 3.0.0 - 3.7.12 ESR。Cumulus Linux 4.0.0 及更高版本默认启用 Spectre 和 Meltdown 补丁程序。
已验证平台
NVIDIA 已测试并验证补丁程序可用于以下平台;下面列出的解决方案适用于所有受支持的平台
- Dell Z9100-ON
- Dell Z9264F-ON
- Edgecore AS6712-32X
- Edgecore AS5712-54X
- HPE Altoline 6940
- HPE Altoline 6920
- NVIDIA Spectrum
解决方案
NVIDIA 将补丁程序应用于 Cumulus Linux 3.7.4 内核和更高版本,但在 3.7.x 分支中默认禁用它们。NVIDIA 禁用它们的原因是,尽管 NVIDIA 进行了广泛的测试,但此修复程序包含许多内核更改,可能会影响交换机性能。如果您愿意,可以禁用此修复程序。
您可以通过在 GRUB 配置文件中配置一些内核命令行选项、重启交换机,然后更新交换机 BIOS 来启用补丁程序。
命令行选项位于 /etc/default/grub.d/00-spectre-meltdown.cfg
文件中。如果您从二进制安装映像安装了 Cumulus Linux 3.7.4,则命令行选项也会出现在 /etc/default/grub
中。
要应用补丁程序,请执行以下操作
按如下所示编辑
/etc/default/grub.d/00-spectre-meltdown.cfg
文件cumulus@switch:~$ sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT/#GRUB_CMDLINE_LINUX_DEFAULT/" /etc/default/grub.d/00-spectre-meltdown.cfg
如果您对 Cumulus Linux 3.7.4 或更高版本进行了二进制安装,则还必须按如下所示编辑
/etc/default/grub
cumulus@switch:~$ sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet noibrs noibpb nolfence spectre_v2=off nopti"/#GRUB_CMDLINE_LINUX_DEFAULT="quiet noibrs noibpb nolfence spectre_v2=off nopti"\ GRUB_CMDLINE_LINUX_DEFAULT="quiet"/' /etc/default/grub
运行
update-grub
cumulus@switch:~$ update-grub
重启交换机。
更新交换机上的 BIOS。有关如何执行此操作的信息,请联系您的交换机制造商。
验证 GRUB 选项是否已成功启用,检查
/proc/cmdline
以确保以下内容不存在cumulus@switch:~$ grep "noibrs noibpb nolfence spectre_v2=off nopti" /proc/cmdline cumulus@switch:~$
您还可以通过检查来验证 GRUB 选项是否已成功启用
cumulus@switch:~$ rgrep . /sys/devices/system/cpu/vulnerabilities /sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: lfence /sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: IBRS IBPB /sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI cumulus@switch:~$