☠
🐛
CIFSwitch 漏洞笔记
影响范围 · 利用代码 · 修复方案
1. 受影响的发行版
受影响的发行版不少:
Linux Mint CentOS Stream 9 Rocky Linux 9 Kali AlmaLinux SUSE
只要装了 cifs-utils 并且允许非特权 user namespace,就在射程内。
两个条件缺一不可!
2. 容器场景
容器场景同样要注意,如果一个容器里能触发 cifs.upcall,就可能从容器内拿到宿主机 root。
容器逃逸!
3. 默认安全的系统
好消息是前置条件相对苛刻,没装 cifs-utils 或者禁用了 user namespace 的系统默认不受影响。
✓ Ubuntu 默认不装 cifs-utils
✓ Debian 默认禁用非特权 user namespace
这些系统默认是安全的。
Ubuntu & Debian 用户松口气
4. 利用代码
来,看看利用代码:
python3 exploit/exp.py && sudo -n /bin/bash -p
一条命令,root 到手
5. 官方修复
补丁已经出了。上游在 5 月底合入了修复,给 cifs.spnego key type 加上了 vet_description 校验。
🔧 从此内核能区分真正的 CIFS 请求和用户伪造的请求
终于补上 vet_description 了!
6. 临时缓解
临时缓解也有一条命令的办法,那就是直接禁掉非特权用户创建 namespace 的能力:
sysctl user.max_user_namespaces=0
或者卸载 cifs-utils、禁用 cifs 模块,都能断掉利用链。
这个漏洞已经被公开,PoC 在网络上随手可得,要抓紧时间了哦!