Linux, OpenBSD, NetBSD, FreeBSD 和 Solaris 系统被爆存在非常严重的内存冲突漏洞,允许攻击者获取 root 权限并全权控制受感染的系统。这个问题最早由安全供应商 Qualys 发现,并根据该漏洞需要和其他的内存区的堆栈进行“碰撞冲突”特性,将其命名为“Stack Clash”(堆栈冲突)。
图片来自于 Hacker News
根据 Qualys 提供的报告,在电脑上执行的每个程序都会使用到内存堆栈,该区域会根据程序的需求自动扩充。但是如果扩充太多以至于太靠近另一个内存堆栈区域,那么程序就会被搞乱,那么黑客就可以趁乱覆盖该内存堆栈区。
这种攻击方式(CVE-2010-2240)在 2005-2010 年期间已经被发现,直到 Linux 系统发展堆栈保护页(stack guard-page)大幅降低了此类攻击,这是一个 4KB 大小的内存页面会映射当前的堆栈。 不过 Qualys 在最新的测试中打造了 7 款攻击程序,证明这种保护形式是完全不够的。
Stack Clash 的主要漏洞为 CVE-2017-1000364,次要漏洞为 VE-2017-1000365,此外还有一个可独立开采的 CVE-2017-1000367。漏洞情报公司 Risk Based Security 的首席研究专家表示:“Qualys 本次发布的这种攻击方式,最主要的原因是内存堆栈分配可以被一些非连续方式进行控制。意味着能够跳过堆栈保护页并操纵相邻的内存区域。”
包括 Red Hat、Debian、Ubuntu 和 SUSE 等很多 Linux 发行机构已经修复了这个漏洞。更多更详细信息可以访问:
SUSE
https://www.novell.com/support/kb/doc.php?id=7020973
Red Hat
https://access.redhat.com/security/vulnerabilities/stackguard
Debian
https://www.debian.org/security/2017/dsa-3886
https://www.debian.org/security/2017/dsa-3887
https://www.debian.org/security/2017/dsa-3888
https://www.debian.org/security/2017/dsa-3889
Ubuntu
OpenBSD
https://ftp.openbsd.org/pub/OpenBSD/patches/6.1/common/008_exec_subr.patch.sig
Oracle Solaris
http://www.oracle.com/technetwork/security-advisory/alert-cve-2017-3629-3757403.html