一、漏洞详情
Snap是Ubuntu母公司Canonical于2016年4月发布Ubuntu16.04时候引入的一种安全的、易于管理的、沙盒化的软件包格式,解决了linux依赖性的问题,并拥有更加稳定和安全的特性。Snap-confine 是 snapd 内部使用的一个程序,用于构建snap应用程序的执行环境。
安全研究人员公开披露了在snap-confine 中发现的一个本地权限提升漏洞 (CVE-2021-44731),成功利用此漏洞允许任何非特权用户在易受攻击的主机上获得root权限。
snapd 2.54.2 snap-confine二进制文件在为snap准备私有挂载命名空间时存在竞争条件,可能允许本地攻击者通过在snap的私有挂载命名空间内绑定挂载自己的内容来获得root权限,并导致snap-confine执行任意代码,从而实现权限提升。
发现存在的7个漏洞如下:
CVE-2021-44731:snap-confine的setup_private_mount()中的竞争条件
CVE-2021-44730:snap-confine的sc_open_snapd_tool()中的硬链接攻击
CVE-2021-3996:util-linux的libmount中未经授权的卸载
CVE-2021-3995:util-linux的libmount中未经授权的卸载
CVE-2021-3998:来自glibc的realpath()的意外返回值
CVE-2021-3999:glibc的getcwd()中的缓冲区溢出
CVE-2021-3997:systemd的systemd-tmpfiles中不受控制的递归
二、影响范围
Snapd:2.54.2版本
glibc:2021年1月提交的c6e0b0b("stdlib: Sync canonicalize with gnulib")之后的版本
util-linux:2018年11月提交的5fea669("libmount: Support unmount FUSE mounts")之后的版本
Systemd:2019年2月提交的e535840("tmpfiles: let's bumpRLIMIT_NOFILE for tmpfiles")之后的版本
三、修复建议
目前这些漏洞已经修复,建议受影响用户及时升级更新。
Snapd:在snapd 2.54.3+18.04、2.54.3+20.04或2.54.3+21.10.1版本中修复。
下载链接:https://launchpad.net/ubuntu/+source/snapd/
util-linux、glibc和systemd的补丁已于2022年1月发布,链接如下:
https://www.openwall.com/lists/oss-security/2022/01/10/2
https://www.openwall.com/lists/oss-security/2022/01/24/2
https://www.openwall.com/lists/oss-security/2022/01/24/4