发现了一个qmail漏洞,该漏洞使它可以被远程利用

Qualys安全研究人员已经证明 剥削的可能性 qmail邮件服务器中的漏洞, 自2005年(CVE-2005-1513)以来已知,但由于自 qmail声称创建有效的利用是不现实的 可以用来攻击默认配置的系统。

但是看来qmail开发者 他们错了,因为Qualys设法准备了漏洞利用程序 这驳斥了这一假设,并允许通过发送特制消息在服务器上启动远程代码执行。

该问题是由stralloc_readyplus()函数中的溢出引起的,该溢出可能在处理非常大的消息时发生。 对于该操作,需要一个虚拟内存容量大于64 GB的4位系统。

在2005年的最初漏洞分析中,Daniel Bernstein认为代码中分配的数组的大小始终适合32位值的假设是基于以下事实:没有人为每个进程提供千兆字节的内存。

在过去的15年中,服务器上的64位系统已替换了32位系统,所提供的内存量和网络带宽都急剧增加。

qmail随附的软件包已考虑到Bernstein的评论和 启动qmail-smtpd进程时,它们限制了可用内存 (例如,在Debian 10上,限制设置为7MB)。

Qualys工程师发现这还不够 除了qmail-smtpd之外,还可以对qmail-local进程进行远程攻击,该攻击在所有经过测试的程序包中都不受限制。

作为证明,准备了一个漏洞利用原型, 这适合在默认配置下使用qmail攻击Debian提供的软件包。 为了在攻击期间组织远程代码执行, 服务器需要4 GB的可用磁盘空间和8 GB的RAM.

该漏洞允许执行任何命令 具有系统上任何用户权限的shell,但root用户和系统用户除外,这些用户在“ / home”目录中没有自己的子目录

攻击是通过发送非常大的电子邮件进行的, 其中标头中包含多行,大小约为4GB和576MB。

在qmail-local中处理所述行时 尝试将消息传递给本地用户时发生整数溢出。 复制数据时,整数溢出会导致缓冲区溢出,并具有使用libc代码覆盖内存页的能力。

另外,在qmail-local中调用qmesearch()的过程中,通过open()函数打开文件“ .qmail-extension”,这导致系统的实际启动(“。Qmail-extension” )。 但是由于“扩展名”文件的一部分是基于收件人的地址形成的(例如,“ localuser-extension @ localdomain”),因此攻击者可以通过指定用户“ localuser-;”来组织命令的开始。 命令; @localdomain»作为邮件的收件人。

对代码的分析还显示了附加补丁程序中的两个漏洞 检查qmail,这是Debian软件包的一部分。

  • 第一个漏洞(CVE-2020-3811)允许绕过电子邮件地址的验证,第二个漏洞(CVE-2020-3812)导致本地信息泄漏。
  • 第二个漏洞可用于通过直接调用本地驱动程序来验证系统上文件和目录的存在,包括仅可用于root用户的文件和目录(qmail-verify以root特权开头)。

已为此软件包准备了一组补丁程序,通过为alloc()函数代码添加硬性内存限制以及qmail中的新问题,消除了2005年以来的旧漏洞。

此外,还单独准备了qmail修补程序的更新版本。 notqmail版本的开发人员准备了补丁程序以阻止旧问题,并且还开始致力于消除代码中所有可能的整数溢出。

数据来源: https://www.openwall.com/


本文内容遵循我们的原则 编辑伦理。 要报告错误,请单击 信息.

成为第一个发表评论

发表您的评论

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

*

*

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