GRUB2 引导加载程序中的严重漏洞可让您绕过 UEFI 安全引导

在 GRUB2 引导加载程序中 显露 8个漏洞。 最危险 问题 (CVE-2020-10713),其代号为 BootHole, 给一个机会 绕过 UEFI 安全启动机制并安装未经验证的恶意软件。 此漏洞的特殊性在于,要消除该漏洞,仅更新 GRUB2 是不够的,因为攻击者可以使用带有经过数字签名认证的旧易受攻击版本的可启动媒体。 攻击者不仅可以破坏 Linux 的验证过程,还可以破坏其他操作系统的验证过程,包括 Windows.

该问题只能通过更新系统来解决 证书吊销列表 (dbx,UEFI 撤销列表),但在这种情况下,在 Linux 上使用旧安装介质的能力将丢失。 一些设备制造商已经在其固件中包含了更新的吊销证书列表;在此类系统上,只能在 UEFI 安全启动模式下加载 Linux 发行版的更新版本。

为了消除发行版中的漏洞,您还需要更新安装程序、引导加载程序、内核包、fwupd 固件和 shim 层,为它们生成新的数字签名。 用户将需要更新安装映像和其他可启动媒体,并将证书吊销列表 (dbx) 加载到 UEFI 固件中。 在将 dbx 更新到 UEFI 之前,无论操作系统中是否安装了更新,系统仍然容易受到攻击。

漏洞 造成的 缓冲区溢出,可被利用在引导过程中执行任意代码。
该漏洞在解析 grub.cfg 配置文件的内容时发生,该文件通常位于 ESP(EFI 系统分区)中,具有管理员权限的攻击者可以对其进行编辑,而不会破坏签名 shim 和 GRUB2 可执行文件的完整性。 因为 错误 在配置解析器代码中,致命解析错误YY_FATAL_ERROR的处理程序仅显示警告,但并未终止程序。 由于需要对系统进行特权访问,因此可以降低漏洞风险;但是,如果您可以物理访问设备(如果可以从您自己的介质启动),则可能需要引入隐藏的 Rootkit。

大多数 Linux 发行版都使用小型 垫片层,由 Microsoft 进行数字签名。 该层使用自己的证书验证 GRUB2,这使得发行版开发人员不必让每个内核和 GRUB 更新都经过 Microsoft 认证。 该漏洞允许通过更改 grub.cfg 的内容,在成功验证 shim 后、加载操作系统之前的阶段执行代码,在安全启动模式处于活动状态时嵌入信任链并获得完全控制进一步的启动过程,包括加载另一个操作系统、修改操作系统组件和绕过保护 锁定.

GRUB2 引导加载程序中的严重漏洞可让您绕过 UEFI 安全引导

GRUB2 中的其他漏洞:

  • CVE-2020-14308 — 由于没有检查 grub_malloc 中分配的内存区域的大小而导致缓冲区溢出;
  • CVE-2020-14309 - grub_squash_read_symlink 中的整数溢出,这可能导致数据写入超出分配的缓冲区;
  • CVE-2020-14310 - read_section_from_string 中的整数溢出,这可能导致写入数据超出分配的缓冲区;
  • CVE-2020-14311 - grub_ext2_read_link 中的整数溢出,这可能导致数据写入超出分配的缓冲区;
  • CVE-2020-15705 — 允许您在安全启动模式下直接启动期间加载未签名的内核,无需填充层;
  • CVE-2020-15706 — 在运行时重新定义函数时访问已释放的内存区域(释放后使用);
  • CVE-2020-15707 — initrd 大小处理程序中的整数溢出。

修补程序包更新已发布 Debian, Ubuntu, RHEL и SUSE。 对于 GRUB2 建议的 补丁集。

来源: opennet.ru

添加评论