• 公告ID (KylinSec-SA-2025-2437)

摘要:

grub2 security update

安全等级: High

公告ID: KylinSec-SA-2025-2437

发布日期: 2025年6月3日

关联CVE: CVE-2024-56737   CVE-2025-0690   CVE-2024-45775   CVE-2024-45774   CVE-2024-45777   CVE-2024-45776   CVE-2025-0624   CVE-2024-45779   CVE-2024-45778   CVE-2025-0622   CVE-2025-1118   CVE-2025-0689   CVE-2025-0686   CVE-2025-0684   CVE-2025-0685   CVE-2025-0677   CVE-2025-1125   CVE-2024-45783   CVE-2024-45780   CVE-2024-45781   CVE-2024-45782   CVE-2025-0678  

  • 详细介绍

1. 漏洞描述

   

GNU GRUB 是一款多重引导加载程序,继承自 Erich Stefan Boleyn 最初设计和实现的 GRand Unified Bootloader(GRUB)。

安全修复:

1.在grub2中发现安全漏洞(CVE-2024-45774):攻击者可通过特制的JPEG文件使grub2的JPEG解析器错误检查内部缓冲区边界,导致越界写入。该漏洞可能被利用来覆盖敏感信息,从而绕过安全启动保护机制。

2.在grub2中发现安全漏洞(CVE-2024-45775):grub_extcmd_dispatcher()函数调用grub_arg_list_alloc()为grub参数列表分配内存时,未能检查内存分配是否失败。当内存分配失败时,parse_option()函数将处理空指针,导致grub崩溃,或在极少数情况下损坏IVT数据。

3.在grub2中发现安全漏洞(CVE-2024-45776):当通过grub_mofile_open()函数读取语言.mo文件时,系统在分配内部缓冲区时未能正确校验整数溢出问题。攻击者可通过精心构造的.mo文件导致缓冲区大小计算溢出,从而引发越界读写操作。该漏洞可能被利用来泄露敏感数据或覆盖关键数据,进而绕过安全启动保护机制。

4. 在grub2中发现一个高危漏洞 (CVE-2024-45777) :当通过grub_gettext_getstr_from_position()函数处理.mo语言翻译文件时,其翻译缓冲区大小计算存在整数溢出缺陷。攻击者可精心构造恶意.mo文件触发缓冲区越界写入,覆盖grub2堆内存中的敏感数据,最终可能导致安全启动(Secure Boot)保护机制被完全绕过。该漏洞影响所有使用受影响版本grub2的系统引导过程。

5.grub2的BFS文件系统驱动存在栈溢出漏洞 (CVE-2024-45778) :当解析特制的BFS文件系统时,由于缺乏必要的循环控制机制,可能导致无限递归或循环,最终耗尽栈空间使grub2崩溃。这将造成系统无法正常启动,属于拒绝服务类漏洞,但需要攻击者能植入恶意BFS文件系统到引导分区。

6.grub2的BFS驱动在处理间接扩展映射(indirect extent map)文件时存在设计缺陷(CVE-2024-45779):该驱动未能正确验证要读取的扩展条目(extent entries)数量,攻击者通过构造畸形BFS文件系统可触发整数溢出,进而导致越界读取。可能后果包括:敏感引导数据泄露、内存信息泄漏,或在多数情况下直接导致grub2崩溃。该漏洞同时影响数据机密性和系统可用性。

7.grub2的tar文件处理模块存在内存分配验证缺陷(CVE-2024-45780):在为tar包内文件名分配缓冲区时,未充分考虑整数溢出可能性。攻击者可构造包含超长文件名的特制tar包,使缓冲区分配计算产生溢出,实际分配空间不足,导致后续发生堆越界写入。该漏洞可被利用破坏grub2关键数据结构,最终可能完全绕过UEFI安全启动保护机制。

8.grub2的UFS文件系统驱动在处理符号链接时存在输入验证缺陷(CVE-2024-45781):读取符号链接名称时未对字符串长度进行有效校验,可能引发堆内存越界写入。这将破坏数据完整性,攻击者可精心构造恶意UFS文件系统,利用该漏洞修改grub2关键内存区域,最终突破安全启动限制。该漏洞需要攻击者能控制文件系统内容。

9.HFS文件系统驱动在grub_fs_mount()处理卷名时存在经典strcpy缓冲区溢出漏洞(CVE-2024-45782):直接使用用户提供的卷名进行strcpy操作,未实施任何长度限制。攻击者可提供超长卷名触发基于堆的越界写入,破坏grub2内存中的敏感数据,包括安全启动相关验证数据,最终实现保护机制绕过。该漏洞凸显了在引导加载程序中仍存在传统安全漏洞。

10.grub2的hfsplus驱动存在错误处理缺陷(CVE-2024-45783):当HFS+文件系统挂载失败时,未能正确设置ERRNO错误码。在某些特殊情况下,这可能导致后续操作出现空指针解引用,引发系统崩溃。虽然该漏洞本身危害较低,但与其他漏洞组合可能增强攻击效果。该漏洞反映了grub2在错误处理路径上存在的代码质量问题。

11.GRUB2 2.12及更早版本的HFS文件系统驱动(fs/hfs.c)存在堆缓冲区溢出漏洞(CVE-2024-56737):攻击者可通过特制的HFS文件系统sblock数据触发该漏洞,导致内存破坏。该漏洞位于核心文件系统处理逻辑中,可能被利用来破坏安全启动机制。

12.在command/gpg模块中发现释放后使用漏洞(CVE-2025-0622):当加载的模块卸载时,其创建的hook函数未被正确清理。攻击者可精心构造场景使grub2在模块卸载后仍调用这些hook,导致内存违规访问。成功利用可实现任意代码执行,完全绕过安全启动保护。该漏洞反映了grub2模块生命周期管理的缺陷。

13.网络启动过程中存在严重缓冲区溢出漏洞(CVE-2025-0624):当搜索配置文件时,grub2使用grub_strcpy()将用户控制的环境变量复制到内部缓冲区,但未正确考虑变量长度。攻击者可通过同一网段发送特制网络数据,实现远程代码执行,进而突破安全启动限制。这是少数几个可远程触发的grub2漏洞之一。

14. UFS文件系统符号链接查找功能存在内存计算缺陷(CVE-2025-0677):虽然检查了inode数据大小来分配缓冲区,但未验证符号链接数据是否溢出。导致实际分配空间不足,后续读取操作会越界写入堆内存。攻击者通过特制文件系统可利用该漏洞破坏关键数据,执行任意代码并绕过安全启动。

15. squash4文件系统驱动存在整数溢出漏洞(CVE-2025-0678):使用用户控制的文件系统几何参数计算缓冲区大小时校验不足,特制文件系统可使计算溢出,导致分配空间不足。后续direct_read()操作将越界写入,可能破坏安全启动相关数据。该漏洞展示了文件系统驱动中常见的整数溢出模式。

16. ReiserFS文件系统符号链接处理存在类似漏洞(CVE-2025-0684):缓冲区大小计算时未正确处理整数溢出,导致grub_malloc()分配不足。grub_reiserfs_read_symlink()随后使用溢出长度参数调用grub_reiserfs_read_real(),造成堆越界写入。精心构造的文件系统可利用此漏洞执行任意代码,完全绕过安全启动保护机制。

17.GRUB2的JFS文件系统模块存在整数溢出漏洞(CVE-2025-0685):该模块使用用户可控的文件系统几何参数计算内部缓冲区大小时,未正确检查整数溢出情况。攻击者可通过特制的JFS文件系统使缓冲区大小计算溢出,导致grub_malloc()分配的内存空间不足。当grub_jfs_lookup_symlink()函数通过grub_jfs_read_file()读取数据时,将发生堆缓冲区越界写入。该漏洞可被利用破坏GRUB2关键内部数据,最终可能导致任意代码执行并绕过安全启动保护机制。

18.ROMFS文件系统符号链接查找功能存在类似漏洞(CVE-2025-0686):使用用户提供的文件系统参数计算缓冲区大小时整数溢出检查不充分,特制ROMFS文件系统可导致分配空间不足。当调用grub_romfs_read_symlink()和grub_disk_read()时会发生越界写入,可能破坏安全启动相关数据,最终实现任意代码执行。

19.UDF文件系统模块存在缓冲区溢出漏洞(CVE-2025-0689):该模块使用用户控制的数据长度元数据分配缓冲区,但在迭代磁盘扇区时错误假设每次读取的数据量总是小于缓冲区大小。特制的UDF文件系统镜像可触发堆缓冲区溢出,破坏关键数据,可能导致任意代码执行并绕过安全启动。

20.read命令处理用户键盘输入时存在整数溢出漏洞(CVE-2025-0690):该命令使用32位整数存储输入长度并据此重新分配行缓冲区,超长输入可导致整数溢出,进而引发堆缓冲区越界写入。攻击者可利用此漏洞破坏GRUB2内部关键数据,可能绕过安全启动保护。

21.锁定模式下未禁用dump命令的安全漏洞(CVE-2025-1118):在安全启动锁定模式下,攻击者仍可使用dump命令读取内存信息,提取签名、盐值等敏感数据,削弱系统安全防护能力。

22.HFS文件系统模块存在整数溢出漏洞(CVE-2025-1125):该模块使用文件系统元数据中的用户可控参数计算内部缓冲区大小时,未正确检查整数溢出情况。特制的HFS文件系统可导致缓冲区大小计算溢出,使hfsplus_open_compressed_real()函数发生越界写入,可能破坏安全启动相关数据并实现任意代码执行。

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2024-56737 V6 grub2 Fixed
CVE-2025-0690 V6 grub2 Fixed
CVE-2024-45775 V6 grub2 Fixed
CVE-2024-45774 V6 grub2 Fixed
CVE-2024-45777 V6 grub2 Fixed
CVE-2024-45776 V6 grub2 Fixed
CVE-2025-0624 V6 grub2 Fixed
CVE-2024-45779 V6 grub2 Fixed
CVE-2024-45778 V6 grub2 Fixed
CVE-2025-0622 V6 grub2 Fixed
CVE-2025-1118 V6 grub2 Fixed
CVE-2025-0689 V6 grub2 Fixed
CVE-2025-0686 V6 grub2 Fixed
CVE-2025-0684 V6 grub2 Fixed
CVE-2025-0685 V6 grub2 Fixed
CVE-2025-0677 V6 grub2 Fixed
CVE-2025-1125 V6 grub2 Fixed
CVE-2024-45783 V6 grub2 Fixed
CVE-2024-45780 V6 grub2 Fixed
CVE-2024-45781 V6 grub2 Fixed
CVE-2024-45782 V6 grub2 Fixed
CVE-2025-0678 V6 grub2 Fixed

3. 影响组件

    grub2

4. 修复版本

   

V6

软件名称 架构 版本号
grub2-common noarch 2.12-33.ks6
grub2-efi-aa64-modules noarch 2.12-33.ks6
grub2-efi-ia32-modules noarch 2.12-33.ks6
grub2-efi-x64-modules noarch 2.12-33.ks6
grub2-help noarch 2.12-33.ks6
grub2-pc-modules noarch 2.12-33.ks6
grub2-efi-ia32 x86_64 2.12-33.ks6
grub2-efi-ia32-cdboot x86_64 2.12-33.ks6
grub2-efi-x64 x86_64 2.12-33.ks6
grub2-efi-x64-cdboot x86_64 2.12-33.ks6
grub2-pc x86_64 2.12-33.ks6
grub2-tools x86_64 2.12-33.ks6
grub2-tools-efi x86_64 2.12-33.ks6
grub2-tools-extra x86_64 2.12-33.ks6
grub2-tools-minimal x86_64 2.12-33.ks6
grub2-efi-aa64 aarch64 2.12-33.ks6
grub2-efi-aa64-cdboot aarch64 2.12-33.ks6
grub2-tools aarch64 2.12-33.ks6
grub2-tools-extra aarch64 2.12-33.ks6
grub2-tools-minimal aarch64 2.12-33.ks6

5. 修复方法


方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm

方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名

6. 下载链接

   

V6:

x86_64:

     grub2-common   

     grub2-efi-aa64-modules   

     grub2-efi-ia32-modules   

     grub2-efi-x64-modules   

     grub2-help   

     grub2-pc-modules   

     grub2-efi-ia32   

     grub2-efi-ia32-cdboot   

     grub2-efi-x64   

     grub2-efi-x64-cdboot   

     grub2-pc   

     grub2-tools   

     grub2-tools-efi   

     grub2-tools-extra   

     grub2-tools-minimal   

aarch64:

     grub2-common   

     grub2-efi-aa64-modules   

     grub2-efi-ia32-modules   

     grub2-efi-x64-modules   

     grub2-help   

     grub2-pc-modules   

     grub2-efi-aa64   

     grub2-efi-aa64-cdboot   

     grub2-tools   

     grub2-tools-extra   

     grub2-tools-minimal   

上一篇:KylinSec-SA-2025-2410 下一篇:KylinSec-SA-2025-2438