Grub 漏洞集
2016-01-12 10:25:44 阿炯

GRUB(GNU GRUB)是一个来自 GNU 项目的启动引导程序。GRUB 是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB 可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。其前身为 Grand Unified Bootloader,它主要用于类 Unix 系统;同大多 Linux 发行版一样,GNU 系统也采用 GNU GRUB 作为它的启动器。


Grub开机漏洞 连按28下Backspace可入侵系统


2016年1月,据媒体报道,Linux开机管理程序Grub 2出现一项认证旁路(Authentication Bypass)零时攻击漏洞,黑客只要按28次后退键(Backspace)就可以入侵任何一款Linux操作系统。

GRUB(Grand Unified Bootloader)2 是大部分Linux操作系统的开机管理程序,密码防护的重要一环。

瓦伦西亚科技大学网络安全小组研究人员Hector Marco与 Ismael Ripoll在Grub 2中,发现存在一项整数下溢(integer underflow)漏洞,编号CVE-2015-8370。通过该漏洞成功入侵的黑客可进入GRUB的Rescue Shell,进而提升权限、复制磁盘信息、安装RootKit、或是摧毁包括GRUB在内的任何资料,即使磁盘加密也可能遭到覆写,导致系统无法工作。

研究人员发现该漏洞的攻击方法相当简单:只需在GRUB要求输入用户名时,连续按28次倒退键,就可进入Rescue Shell。IT管理员只需按照此方法操作,若看到系统重启,或是进入救援模式,即可判断自己系统有此漏洞。

事实上,从2009年12月发行的1.98版到2015年12月的2.02版,GRUB 2都存在这项漏洞,不过攻击者需要直接接触到机器才能进行攻击。包括Redhat、Ubuntu 及 Debian在内的Linux系统提供商已迅速修补这项漏洞,Marco与Ripoll也提供了紧急修补程序供下载安装。



GRUB2 中被曝新 BootHole 漏洞 影响大量 Linux/Windows 系统

2020年07月31日,安全研究公司 Eclypsium 最近在 GRUB2 中发现了一个新的安全漏洞,称为“BootHole”。GRUB2 是 Linux 发行版中最常用的引导程序之一,通过该漏洞,攻击者可影响大多数的 Linux 发行版和 Windows 设备。

该漏洞可用于在 boot 过程中获得任意代码执行。利用此漏洞的攻击者可以安装具有永久性和隐秘性的恶意引导程序,从而获得对受害者设备近乎完全的控制。


Eclypsium 称,几乎每个 Linux 发行版都会受到该漏洞影响。此外,那些使用了 Secure Boot 与标准的微软第三方 UEFI 证书授权的 Windows 设备也会受到该漏洞影响;范围涵盖了大量的 Windows 台式机、笔记本、工作站、服务器、以及其它相关技术领域。而在公开披露该漏洞之前,Eclypsium 已与包括 OS 供应商、计算机制造商和计算机应急响应小组(CERT)在内的行业实体和机构进行了通报披露。

目前,Canonical 安全团队已针对 Ubuntu 和其他主要 Linux 发行版本发布了 GRUB2 的更新。此外,该团队还发现其他七个漏洞,并在此次更新中进行了修复。Red Hat 的安全团队也已经为其受影响的若干产品发布了安全修复程序,其他产品也正在处理中。

SUSE 安全团队负责人 Marcus Meissner 则表示,SUSE 发布了新的 GRUB2 软件包,该软件包修复了所有 SUSE Linux 产品的 BootHole 漏洞。同时还发布了相应的 Linux 内核软件包、云镜像和安装介质更新。


围绕 GRUB 的多个安全漏洞影响 Secure Boot

在2020年夏天 GRUB Bootloader 受到"BootHole"的影响(见上文),安全问题冲击了其 UEFI Secure Boot 支持,而在2021年3月围绕 GRUB 的新一轮漏洞又被公开了。此次发现 GNU GRUB 存在多个漏洞,这些漏洞有可能会导致绕过 UEFI Secure Boot 限制。拥有管理权限的本地攻击者可以利用这些漏洞来规避 GRUB2 模块的签名检查,从而能够加载未经信任机构签名的任意 GRUB2 模块,并以此绕过 UEFI Secure Boot。以下是为这些不同的漏洞分配的 CVE 及漏洞产生的影响:
CVE-2020-14372 grub2:acpi 命令允许特权用户在 Secure Boot 处于激活状态时,仍然可以加载特制的 ACPI 表
CVE-2021-20233 grub2:菜单渲染中的内存损坏
CVE-2020-25632 grub2:rmmod 命令中的 UAF
CVE-2020-27779 grub2:cutmem 命令允许特权用户禁用某些内存区域,进而禁用 Secure Boot 保护
CVE-2021-20225 grub2:选项解析器包含一个堆缓冲区,允许特权用户在 Secure Boot 激活时执行任意代码
CVE-2020-27749 grub2:处理命令行选项时的堆栈缓冲区溢出,允许特权用户在 Secure Boot 激活时执行任意代码
CVE-2021-3418 grub2:GRUB 2.05 重新引入了 CVE-2020-15705,grub 在没有 shim 的情况下直接启动时无法验证内核签名,使得安全启动被绕过
CVE-2020-25647 grub2:当 Secure Boot 被启用时,来自特制的 USB 设备描述符的内存损坏允许本地用户执行任意代码

这此漏洞是 Secure Boot 的又一次安全危机,对于 GRUB 的声誉而言也是一次打击,主要的 Linux 发行版正在着手发布更新的 GRUB2 签名版本。