CAP_SYS_ADMIN导致Kubernetes容器逃逸(CVE-2022-0185)
(1) 漏洞说明
Linux kernel 中发现一个新的安全漏洞CVE-2022-0185。由于Linux内核"File System Context"组件中的一个堆缓存溢出漏洞,攻击者利用该漏洞可以实现越界写、权限提升、DoS 和任意代码执行。使用非特权的命名空间或使用 unshare进入含有 CAP_SYS_ADMIN 权限的命名空间。Docker seccomp 默认拦截unshare命令,所以运行该命令一般是不允许的。
(2) 漏洞影响
大于5.1-rc1 以来的所有 Linux kernel 版本,包括最新5.4.173、5.10.93、5.15.1。也影响 Ubuntu 20/21、Debian 11 和部分 Red Hat Centos 8包。
(3) 危害等级
高危(CVSS 评分7.8)
(4) 修复和缓解建议
升级 Linux kernel 到 5.16.2 版本来修复该漏洞。对于这些暂时没有可用补丁的系统,建议用户禁用非特权用户命名空间。在 Ubuntu 系统中,可以使用以下命令来禁用非特权命名空间:
sysctl -w kernel.unprivileged_userns_clone=0
红帽用户可以使用以下命令来禁用用户命名空间:
echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf
TIPC远程堆栈溢出(CVE-2022-0435)
安全研究者在Linux内核用于进程间透明网络模块通信 (TIPC) 协议中发现了本地和远程可访问的堆栈溢出。该模块存在于大多数主要发行版中找到该模块,在该模块加载的情况下就可被利用。此外,对于远程利用目标需要已经设置TIPC承载,即漏洞扩展到使用TIPC系统。漏洞利用非常容易,并且可能导致通过内核拒绝服务崩溃。在没有或绕过堆栈KASLR的情况下,漏洞可能导致任意控制流劫持有效载荷该模块是Linux 4.8版本中的监控框架中引入,并且此后该漏洞一直存在。
(1) 漏洞说明
漏洞在于`member_cnt在最初的期间检查,函数不检查是否低于MAX_MON_DOMAIN 定义了 `members` 数组的最大长度。通过伪装成对等节点并与目标建立链接,在本地或远程,能够首先提交恶意域包含任意有效载荷的记录;发送一个更新域记录,将导致之前的恶意记录被 memcpy到一个272字节的本地`struct tipc_mon_domain` &dom_bef[6] 触发堆栈溢出。这样可以通过覆盖以下堆栈的内容&dom_bef 与来自恶意域的任意成员缓冲区首先提交的记录;其大小受媒体限制 MTU(以太网、UDP、Inifiband),目前该漏洞已经出现可以利用Poc并可被直接利用:
(2) 影响范围
Linux Kernel版本 >= 4.8。
CentOS 8默认内核版本受该漏洞影响。
(3) 危害等级
高危(CVSS 评分7.1)
(4) 修复建议
将Linux最新内核升级版本。红帽官方已经发布升级补丁,Centos 8.4可以用过:
yum update kernel
升级。
cgroups漏洞容器逃逸和任意命令漏洞(CVE-2022-0492)
漏洞存在于Linux内核control groups组件的cgroups的v1版本,该组件用来实现将进程划分成组,并进行CPU、内存、磁盘IO、网络等资源限制。现代容器(docker)广泛依赖cgroups的特性实现。
(1) 漏洞说明
CVE-2022-0492的主要是因为对release_agent文件的进程是否具有管理权限(即 CAP_SYS_ADMIN 功能)未进行检查导致。攻击者可以通过release_agent强制内核以提升的权限调用选择的二进制文件并接管机器。由于release_agent 文件的所有者设置为root,该漏洞的利用需要具有“root”权限的进程才能写入文件,因此, 该漏洞仅允许root进程提升权限。运行 AppArmor或SELinux安全系统的容器不受影响。
(2) 危害等级
高危(CVSS 评分7.0)
(3) 影响范围
所有运行Root权限运行docker容器的宿主机都受漏洞影响。包括CentOS 8,centOS7和centOS 6。
(4) 修复和缓解建议
将Linux最新内核升级版本。
排查以root权限启动的容器,以非权限账号启动。
- 启用 AppArmor 或 SELinux。
- 启用 Seccomp。
DirtyPipe本地权限提升漏洞 (CVE-2022-0847)
日Linux内核中的一个权限提升漏洞(CVE-2022-0847,简称“Dirty Pipe”),利用该漏洞普通允用户可以通过注入和覆盖任意只读文件中的数据进行权限提升并获得root权限。漏洞存在于Linux Kernel 5.8及更高版本的内核。目前该漏洞的PoC/EXP已经发布,可以被直接利用。
(1) 漏洞说明
CVE-2022-0847存在于Linux内核5.8及之后版本中的本地提权漏洞。攻击者通过利用此漏洞,可覆盖重写任意可读文件中的数据,从而可将普通权限的用户提升到特权root。由于其利用原理类似于脏牛漏洞(Dirty Cow,CVE-2016-5195),但更容易被利用,该漏洞被命名为“Dirty Pipe”。
(2) 危害等级
高危(CVSS 评分7.8)
(3) 影响范围
- Linux Kernel版本 >= 5.8
- Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102
- CentOS 8默认内核版本受该漏洞影响
- CentOS 7及以下版本不受CentOS 8
可以具体通过以下命令排查范围:
uname -a
查看当前使用的内核版本,如果该版本在大于5.8则需要更新内核版本到对应的 5.16.11/5.15.25/5.10.102。
(4) 修复建议
需要将Linux内核升级至以下安全版本:
- Linux 内核 >= 5.16.11
- Linux 内核 >= 5.15.25
- Linux 内核 >= 5.10.102