CVE-2026-34962Barebox是一个广泛使用的开源引导加载程序。在2026.04.0版本之前的Barebox中,发现了一个存在于ext4文件系统目录解析模块中的拒绝服务漏洞。该漏洞源于fs/ext4/ext4_common.c文件中的ext4fs_iterate_dir()函数未能正确验证目录项的长度值。攻击者可以构建一个特制的恶意ext4文件系统镜像,其中包含长度为0的目录项。当Barebox在启动过程中尝试遍历或解析该目录时,由于缺少对非零长度的校验,系统将陷入无限循环,导致引导过程无限期挂起,从而造成拒绝服务。
该漏洞的技术原理涉及ext4文件系统目录项的解析逻辑。在ext4文件系统中,目录由一系列线性的目录项组成,每个目录项都有一个'rec_len'(记录长度)字段,用于指示当前项的大小,以便解析器能够定位到下一个目录项。Barebox中的ext4fs_iterate_dir()函数负责遍历这些目录项。在受影响的版本中,该函数直接使用从文件系统镜像中读取的rec_len值来偏移读取指针,而未检查该值是否有效(即是否大于0)。攻击者可以利用此逻辑缺陷,制作一个恶意的ext4镜像,将某个目录项的rec_len设置为0。当ext4fs_iterate_dir()处理到该恶意目录项时,指针偏移量为0,导致指针停留在原地。由于循环终止条件依赖于指针到达目录块的末尾,指针无法前进将导致死循环。这种死循环发生在关键的启动阶段,完全占用了CPU资源,导致系统无法完成启动并进入操作系统。CVSS向量为AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H,表明攻击需要本地访问权限(如能够挂载恶意文件系统),无需用户交互,主要影响系统的可用性。