首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【PoC 已公开】Linux Kernel CIFSwitch 提权漏洞,本地用户可直取 root

【PoC 已公开】Linux Kernel CIFSwitch 提权漏洞,本地用户可直取 root

作者头像
云鼎实验室
发布2026-05-29 09:39:09
发布2026-05-29 09:39:09
1370
举报

概述

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 本地权限提升漏洞

漏洞代号

CIFSwitch

漏洞编号

暂无 CVE

危害等级

高风险

漏洞类型

本地权限提升(Local Privilege Escalation)

影响范围

Linux Kernel CIFS 组件(自 2007 年起)+ cifs-utils ≥ 6.14

披露状态

漏洞细节、PoC 已公开

影响版本

受影响内核(按上游 commit 判定)

  • Linux Kernel commit < 3da1fdf4efbc490041eb4f836bf596201203f8f2,即本次漏洞补丁合入前的所有 Linux 内核版本。

已知受影响的发行版

  • Linux Mint 21.3 / 22.3(Cinnamon)
  • CentOS Stream 9(GNOME)
  • 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

已知不受影响的环境

  • Amazon Linux 2(KVM)
  • Kali Linux 2019.4 / 2020.4
  • 默认通过 SELinux/AppArmor 阻断未授权用户命名空间的系统
  • 未安装 cifs-utils 软件包的系统

排查方法

1. 检查 SELinux / AppArmor 防护状态

代码语言:javascript
复制
# 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 是否安装及版本

代码语言:javascript
复制
# RHEL/CentOS/Fedora/Rocky/Alma
rpm -qa | grep cifs-utils

# Ubuntu/Debian/Pop!_OS
dpkg -l | grep cifs-utils

# 查看版本号
cifs.upcall --version

判断标准:

  • cifs-utils 版本 < 6.14 — 不受影响(版本过旧,无命名空间切换功能)。
  • cifs-utils 版本 ≥ 6.14 — 可能受影响(需结合 SELinux/AppArmor 状态综合判断)。
  • cifs-utils 未安装 — 不受影响。

处置建议

1. 官方修复方案

官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,升级至安全版本:

  • 上游 commit:https://github.com/torvalds/linux/commit/3da1fdf4efbc490041eb4f836bf596201203f8f2

各发行版的内核更新可关注其安全公告频道,按官方节奏跟进发布的修复内核包。

2. 缓解措施(任选其一可立即降低风险)

(1)卸载 cifs-utils 软件包(业务不需要时优先选择)
代码语言:javascript
复制
sudo apt remove cifs-utils    # Debian/Ubuntu
sudo yum remove cifs-utils    # RHEL/CentOS
(2)覆盖默认的 cifs.spnego request-key 规则(不需要 Kerberos 认证的 CIFS 挂载场景)
代码语言:javascript
复制
echo 'create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S' | \
  sudo tee /etc/request-key.d/cifs.spnego.conf
(3)禁止非特权用户创建用户命名空间
代码语言:javascript
复制
sudo sysctl -w kernel.unprivileged_userns_clone=0    # 部分发行版
# 或
sudo sysctl -w user.max_user_namespaces=0
(4)禁止加载 CIFS 内核模块(业务不需要 CIFS 功能时)
代码语言:javascript
复制
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
图片
图片

END 更多精彩内容点击下方扫码关注哦~

关注云鼎实验室,获取更多安全情报

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 漏洞描述
  • 漏洞详情
  • 影响版本
    • 受影响内核(按上游 commit 判定)
    • 已知受影响的发行版
    • 官方修复后的安全版本
    • 已知不受影响的环境
  • 排查方法
    • 1. 检查 SELinux / AppArmor 防护状态
    • 2. 检查 cifs-utils 是否安装及版本
  • 处置建议
    • 1. 官方修复方案
    • 2. 缓解措施(任选其一可立即降低风险)
      • (1)卸载 cifs-utils 软件包(业务不需要时优先选择)
      • (2)覆盖默认的 cifs.spnego request-key 规则(不需要 Kerberos 认证的 CIFS 挂载场景)
      • (3)禁止非特权用户创建用户命名空间
      • (4)禁止加载 CIFS 内核模块(业务不需要 CIFS 功能时)
      • (5)应用上游内核补丁,并更新至包含修复的发行版内核版本
  • 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档