本周,开源邮件服务器 OpenSMTPD 发布更新,解决了一个界外读取漏洞,导致任意代码执行后果。OpenSMTPD 是 OpenBSD 中简单邮件传输协议 (SMTP) 的开源实现,其可移植版本能够在多种 Linux 发行版本以及苹果 Mac OS X 平台上运行。该漏洞的编号是 CVE-2020-8794,存在于自2015年12月发布的版本中。该缺陷可遭远程利用也可被滥用于执行任意 shell 命令。在2018年5月之后发布的版本中,这些命令可以 root 身份执行。发现该漏洞的安全公司 Qualys 指出,它存在于 OpenSMTPD 的客户端代码中(负责向远程 SMTP 服务器传输邮件),可在客户端或服务器端遭利用。使用 OpenSMTPD 的默认配置可实施客户端利用。OpenSMTPD 仅监听本地主机,不过可以将邮件从本地用户传递给远程服务器。如该远程服务器遭攻击者控制,则也可利用该漏洞。服务器端的利用要求攻击者连接至 OpenSMTPD 服务器并发送创建退回的邮件。当 OpenSMTPD 连接到攻击者的邮件服务器传递该退回邮件时,攻击者利用该服务器端漏洞。要执行 shell 命令,攻击者要使OpenSMTPD崩溃并等待重启。Qualys 提出了一种简单的利用方式,已在 OpenBSD 6.6、OpenBSD 5.9(易受攻击的首个版本)、Debian 10、Debian 11(测试)和 Fedora 31 上成功测试,但该公司在本周晚些时候才会发布相关技术详情和 exploit。OpenBSD 的开发人员在 GitHub 上表示,“smtpd 中的界外读取漏洞可导致攻击者将任意命令注入到信封文件中,然后以 root 身份执行。另外,smtpctl 中缺少特权撤销,导致可以 _smtpq 组权限运行任意命令。”OpenSMTPD 中的第二个漏洞可导致低权限本地攻击者读取任意文件中的第一行(如 /etc/master.passwd 中 root 的密码哈希)或另外一个用户文件的整个内容(如该文件和 /var/spool/smtpd/ 位于同一个文件系统中)。该漏洞的编号是 CVE-2020-8793,通常无法在 Linux 上利用,因为在大多数发行版本中,/proc/sys/fs/protected_hardlinks 默认为1。然而该漏洞可在 Fedora 31 上遭利用并使攻击者获取完整的 root 权限。
https://www.securityweek.com/opensmtpd-vulnerability-leads-command-injection
题图:Pixabay License
转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。