Snapd漏洞允许攻击者在Linux系统上获得根访问权限

被称为“脏袜子“并确认为CVE-2019-7304,该漏洞是由安全研究员克里斯·莫伯利发现的,他在上个月底私下向Ubuntu制造商Canonical透露了该漏洞。
该漏洞位于的REST API中快照服务,这是一个通用的Linux打包系统,可以使应用程序与各种Linux发行版兼容,而无需任何修改。
snapd由Canonical构建,默认安装在所有版本的Ubuntu上,也被其他Linux发行版使用,包括Debian、OpenSUSE、Arch Linux、Solus和Fedora。
Snap软件包基本上是压缩在一起的应用程序及其依赖项,其中还包括关于如何在各种Linux系统上运行其他软件以及如何与其他软件进行交互的说明,用于桌面、云和物联网。
Snap在本地托管一个web服务器(UNIX_AF socket),以提供RESTful API列表,帮助服务在操作系统上执行各种操作。这些REST API带有访问控制,用于定义特定任务的用户级权限。一些强大的API只对root用户可用,而其他API则可以由低权限用户访问。
根据Moberly的说法,访问控制机制检查与向服务器发出的任何请求相关联的UID的方式存在缺陷,使得攻击者能够覆盖UID变量并访问任何API函数,包括那些限制根用户使用的函数。
“Snapd版本2.28到2.37在UNIX套接字上执行访问控制时,错误地验证和解析了远程套接字地址,”Ubuntu在其建议中解释道。“本地攻击者可以利用此功能访问特权套接字API并获得管理员权限”。
然而,应该注意的是,由于脏袜子攻击利用了本地权限提升漏洞,因此黑客无法远程入侵易受攻击的Linux系统。
Moberly今天还在GitHub上发布了两个概念验证(PoC)漏洞,其中一个需要SSH连接,而另一个则能够通过滥用此API来旁路恶意快照。
Canonical本周发布了snapd版本snapd 2.37.1以解决该漏洞,Ubuntu和其他主要Linux发行版已经推出了固定版本的软件包。
强烈建议Linux用户尽快升级易受攻击的安装。