处理特制目录时,在e2fsck中发现一个漏洞

漏洞

e2fsck是属于e2fsprogs软件包的fsck工具 它维护了一组用于维护ext2,ext3和ext4文件系统的实用程序。 由于这些通常是Linux发行版上的默认文件系统,因此e2fsprogs软件包通常被视为必不可少的软件。

e2fsck 负责搜索和纠正文件系统中的不一致之处 在Linux上。 最近在此实用程序中发现了一个漏洞 哪一个 它已经在CVE-2019-5188中进行了分类 来自思科Talos的研究员Lilith发现了代码执行漏洞。

发现此漏洞 允许攻击者执行设计的代码 为了这 当e2fsck实用程序扫描文件系统时 它包含特制目录。

CVE-2019-518漏洞在e8fsprogs版本中确认了2个 1.43.3,1.43.4,1.43.5,1.43.6,1.43.7,1.43.8,1.43.9,1.44.0,1.44.1,1.44.2,1.44.3,1.44.4,1.44.5,1.44.6,1.45.0,1.45.1,1.45.2,1.45.3,1.45.4.

该漏洞是由功能中的错误引起的 mutate_name() 从rehash.c文件中, 在重建与目录相关的哈希表时使用,这些哈希表为其包含的所有文件提供目录映射。

关于漏洞CVE-2019-5188

在调查员的报告中,它说:

在ext2,3,4、XNUMX、XNUMX中的目录实现中,有许多数据结构可用来优化磁盘上文件的大小...

E2fsprogs e2fsck 1.45.4的目录更改功能中存在一个代码执行漏洞。 特制的ext4目录可能导致越界写入堆栈,从而导致代码执行。 攻击者可以损坏分区才能激活此漏洞。

与目录相关的结构损坏 哈希条目 它可能导致攻击者写入分配的缓冲区之外的区域。

如果在目录链接的哈希表中找到多个具有相同名称的文件,则e2fsck实用程序将重命名的重复文件重命名为〜0,〜1等。 为了临时存储具有类似名称更改的新名称,将在堆栈上分配一个256字节的缓冲区。

复制数据的大小由表达式确定 «entry-> name_len&0xff»,但值entry-> name_len 它是从磁盘上的结构加载的,不是根据名称的实际大小来计算的。

如果大小为零,则数组索引的值为-1 并创建溢出条件 整数通过缓冲区的下限(整数溢出)并用“〜0”值重写堆栈中的其他数据。

对于64位系统,利用该漏洞的可能性很小,并且不需要堆栈大小限制(ulimit -s unlimited)。

对于32位系统,该操作被认为是可能的,但是结果在很大程度上取决于编译器如何执行可执行文件。

为了发动进攻 攻击者需要破坏系统分区上的数据 ext2,ext3或ext4文件以某种方式。

考虑到 此操作需要超级用户权限,当e2fsck实用程序检查从外部接收的外部驱动器或FS映像时,此漏洞构成威胁。

重要的是要提到 不能远程利用此漏洞,因此它仅限于本地使用攻击者必须具有身份验证凭据并成功向系统进行身份验证。

该漏洞的发现已于今年第一天发布,并且已与社区共享该建议。 发现此漏洞的研究人员尚未公开共享技术细节或漏洞利用。 因此,此漏洞已在e2fsck更新1.45.5中修复。

目前在以下发行版中 (Debian,Ubuntu,Arch Linux,SUSE / openSUSE,RHEL) 问题仍然没有得到纠正 尽管该报告是在一个多星期前提出的。

如果您想了解有关发现的漏洞的更多信息,可以通过与以下人员联系来了解有关该漏洞的信息和详细信息: 到以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。