壹 漏洞概念
linux kernel一般指Linux内核。Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux 内核中 overlayfs 文件系统是 Ubuntu 的特定问题,由于没有正确的验证文件系统功能在用户名称空间中的应用,从而导致攻击者可以安装一个允许未授权挂载的 overlayfs 修补程序来提升权限。
贰 漏洞原理及利用条件
Linux支持存储在扩展文件属性中的文件功能,它们的工作方式类似于setuid-bit,但粒度更细。
在伪代码中设置文件功能的简化过程,重要的调用是cap_convert_nscap,它检查与名称空间相关的权限。
如果我们从自己的名称空间和挂载上设置文件功能,就不会有问题,而且我们有权限这样做。但当OverlayFS将此操作转发给底层文件系统时,它只调用vfs_setxattr,并跳过cap_convert_nscap中的检查。这允许在外部命名空间/mount中的文件上设置任意功能,并且在执行过程中应用。
在Linux 5.11中,对cap_convert_nscap的调用被移到了vfs_setxattr中,攻击很难实现。
叁 适用版本
uname -a

范围为在以下版本,可能存在漏洞:
Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
说实话这个不好判断!
肆 复现环境说明
使用了阿里云开源镜像站:传送门
伍 复现
# 查看版本
uname -a
# 建议重新编译,可能现成的工具用不了
gcc exploit.c -o exploit
# 添加执行权限
chmod +x exploit
# 运行
./exploit
# 查看权限
whoami

陆 利用Poc|Exp以及工具
EXP地址:传送门
CVE-2021-3493-main.zip
柒 危害
提权到root权限!
捌 修复建议
更新Linux内核至5.11版本,补丁:链接。