概述
Linux Kernel 是全球最广泛使用的开源操作系统内核,是 Linux 系统的核心组件,负责管理硬件资源、进程调度、内存管理、文件系统和网络功能等底层任务。其中的 CIFS(通用互联网文件系统)模块负责对接 SMB/CIFS 协议,提供 Windows 共享目录的访问能力,并通过 cifs.spnego 密钥机制完成 Kerberos 认证。
近期,研究者披露了一个潜伏在 Linux Kernel CIFS 组件中、自 2007 年起就一直存在的本地权限提升漏洞,公开代号为"CIFSwitch",目前暂无 CVE 编号。该漏洞利用条件相对宽松,本地无特权用户即可借此提权至 root,且漏洞细节与 PoC 已公开。
漏洞描述
漏洞根因在于内核中的 cifs.spnego 密钥类型定义缺少 vet_description 验证钩子,无法区分密钥描述是来自内核 CIFS 模块,还是来自不可信的用户态进程。
攻击者可通过request_key()系统调用直接提交伪造的密钥描述(其中包含攻击者控制的 pid 和 upcall_target=app 字段),触发/sbin/request-key以 root 权限启动 cifs.upcall 辅助程序。该辅助程序在解析攻击者控制的 pid 后,会切换到攻击者指定的命名空间,随后在调用getpwuid()进行账户查找时,通过 NSS(Name Service Switch)机制加载攻击者预先放置在挂载命名空间中的恶意libnss_*.so.2共享库,最终在 root 辅助进程上下文中执行任意代码,实现本地权限提升至 root。
鉴于漏洞利用条件相对宽松(仅需本地无特权用户身份)且利用代码已公开,建议受影响用户立即采取修复措施,尽快升级内核版本或应用缓解措施,以避免被外部攻击者利用。
漏洞详情
| Linux Kernel CIFSwitch 本地权限提升漏洞 |
| |
| |
| 高风险 |
| 本地权限提升(Local Privilege Escalation) |
| Linux Kernel CIFS 组件(自 2007 年起)+ cifs-utils ≥ 6.14 |
| |
影响版本
受影响内核(按上游 commit 判定)
- Linux Kernel commit <
3da1fdf4efbc490041eb4f836bf596201203f8f2,即本次漏洞补丁合入前的所有 Linux 内核版本。
已知受影响的发行版
- Linux Mint 21.3 / 22.3(Cinnamon)
- Rocky Linux 9(Workstation)
- Kali Linux 2021.4 / 2022.4 / 2023.4 / 2024.4 / 2025.4 / 2026.1(headless)
- AlmaLinux 9.7(Workstation / Azure cloud image)
- SUSE Linux Enterprise Server 15 SP7、SLES SAP 15 SP7、SLES SAP 16
官方修复后的安全版本
- Linux Kernel commit ≥
3da1fdf4efbc490041eb4f836bf596201203f8f2
已知不受影响的环境
- Kali Linux 2019.4 / 2020.4
- 默认通过 SELinux/AppArmor 阻断未授权用户命名空间的系统
排查方法
1. 检查 SELinux / AppArmor 防护状态
# RHEL/CentOS/Fedora/Rocky/Alma 系(SELinux)getenforce# 输出 Enforcing → 默认阻断;Permissive 或 Disabled → 可能受影响# Ubuntu/Debian/SUSE 系(AppArmor)sudo aa-status# 或检查未授权用户命名空间限制sysctl kernel.apparmor_restrict_unprivileged_userns# 返回 1 → 默认阻断;返回 0 → 可能受影响
2. 检查 cifs-utils 是否安装及版本
# RHEL/CentOS/Fedora/Rocky/Almarpm -qa | grep cifs-utils# Ubuntu/Debian/Pop!_OSdpkg -l | grep cifs-utils# 查看版本号cifs.upcall --version
判断标准:
- cifs-utils 版本 < 6.14 — 不受影响(版本过旧,无命名空间切换功能)。
- cifs-utils 版本 ≥ 6.14 — 可能受影响(需结合 SELinux/AppArmor 状态综合判断)。
处置建议
1. 官方修复方案
官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,升级至安全版本:
- 上游 commit:https://github.com/torvalds/linux/commit/3da1fdf4efbc490041eb4f836bf596201203f8f2
各发行版的内核更新可关注其安全公告频道,按官方节奏跟进发布的修复内核包。
2. 缓解措施(任选其一可立即降低风险)
(1)卸载 cifs-utils 软件包(业务不需要时优先选择)
sudo apt remove cifs-utils # Debian/Ubuntusudo yum remove cifs-utils # RHEL/CentOS
(2)覆盖默认的 cifs.spnego request-key 规则(不需要 Kerberos 认证的 CIFS 挂载场景)
echo 'create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S' | \ sudo tee /etc/request-key.d/cifs.spnego.conf
(3)禁止非特权用户创建用户命名空间
sudo sysctl -w kernel.unprivileged_userns_clone=0 # 部分发行版# 或sudo sysctl -w user.max_user_namespaces=0
(4)禁止加载 CIFS 内核模块(业务不需要 CIFS 功能时)
echo 'install cifs /bin/false' | sudo tee /etc/modprobe.d/disable-cifs.conf
(5)应用上游内核补丁,并更新至包含修复的发行版内核版本
本质是引入 vet_description 验证,从根本上消除内核 CIFS 与不可信用户态密钥描述的混淆。
注:建议在升级或调整系统配置前做好数据备份工作,避免出现意外影响业务连续性。
参考链接
- 腾讯云安全公告:https://cloud.tencent.com/announce/detail/2306
- 漏洞披露原文:https://heyitsas.im/posts/cifswitch/
- 上游修复 commit:https://github.com/torvalds/linux/commit/3da1fdf4efbc490041eb4f836bf596201203f8f2