重要/漏洞:Linux CIFS/SPNEGO key description 存在本地提权漏洞
漏洞编号:暂无公开 CVE / PoC 名称:CIFSwitch
重要等级:需要关注的(本地提权风险)
CVSS 分数:无
影响范围:
受影响功能:
主要受影响配置:
注意:仅安装 Linux 内核但未安装 cifs-utils,或系统不存在可用 cifs.spnego request-key 规则,通常无法通过公开 PoC 触发该链路;禁用了非特权 user namespace、LSM 策略有效阻断、或已升级到包含上游修复的内核,也会显著降低或消除当前 PoC 风险。该漏洞不需要实际连接 CIFS/SMB 服务器,关键条件是本地 cifs.spnego upcall 链路可被触发。
漏洞原理:
该漏洞链出现在 Linux CIFS/SPNEGO upcall 的内核与用户态辅助程序协作边界中。正常情况下,CIFS 内核客户端在需要 Kerberos/SPNEGO 认证材料时,会构造 cifs.spnego key description,并通过 request_key() 触发用户态 helper cifs.upcall。该 description 中包含 pid、uid、creduid、upcall_target 等具有安全语义的字段,cifs.upcall 会将其视为来自内核的可信输入。
漏洞链由三个核心缺陷组成:
受影响组件:
受影响对象:
处置建议:
1. 优先升级内核
2. 如果业务不需要 CIFS/SMB 挂载,建议卸载 cifs-utils / keyutils,或阻止 cifs 模块加载。
3. 如果业务需要 CIFS 但不需要 Kerberos/SPNEGO CIFS 认证,可临时禁用或覆盖 cifs.spnego upcall 规则。注意该操作会影响依赖 Kerberos/SPNEGO 的 CIFS 挂载。
参考链接:Github
漏洞编号:暂无公开 CVE / PoC 名称:CIFSwitch
重要等级:需要关注的(本地提权风险)
CVSS 分数:无
影响范围:
受影响组件:Linux kernel CIFS client、cifs-utils、request-key / keyutils、cifs.upcall
受影响代码路径:
Linux kernel:fs/smb/client/cifs_spnego.c
cifs-utils:cifs.upcall.c
受影响功能:
CIFS Kerberos/SPNEGO upcall;
cifs.spnego key description 处理;
request-key 触发 cifs.upcall 的逻辑;
cifs.upcall namespace 切换与 NSS 查询逻辑。
主要受影响配置:
系统安装了 cifs-utils / keyutils,并存在 active cifs.spnego request-key 规则;
CIFS 模块可加载或已编译进内核;
允许非特权用户创建 user namespace / mount namespace;
AppArmor、SELinux 或其他 LSM 策略未阻断该 namespace / NSS 触发链;
本地低权限用户可在目标主机上执行程序。
注意:仅安装 Linux 内核但未安装 cifs-utils,或系统不存在可用 cifs.spnego request-key 规则,通常无法通过公开 PoC 触发该链路;禁用了非特权 user namespace、LSM 策略有效阻断、或已升级到包含上游修复的内核,也会显著降低或消除当前 PoC 风险。该漏洞不需要实际连接 CIFS/SMB 服务器,关键条件是本地 cifs.spnego upcall 链路可被触发。
漏洞原理:
该漏洞链出现在 Linux CIFS/SPNEGO upcall 的内核与用户态辅助程序协作边界中。正常情况下,CIFS 内核客户端在需要 Kerberos/SPNEGO 认证材料时,会构造 cifs.spnego key description,并通过 request_key() 触发用户态 helper cifs.upcall。该 description 中包含 pid、uid、creduid、upcall_target 等具有安全语义的字段,cifs.upcall 会将其视为来自内核的可信输入。
漏洞链由三个核心缺陷组成:
受影响组件:
Linux kernel CIFS client
cifs-utils / cifs.upcall
keyutils / request-key
系统 request-key 配置
受影响对象:
安装 cifs-utils 并启用默认 cifs.spnego request-key 规则的 Linux 主机;
允许本地低权限用户登录或执行代码的多用户服务器;
CI runner、构建机、容器宿主机、云主机、研发测试环境;
启用了非特权 user namespace / mount namespace 且未被 LSM 策略阻断的系统;
处置建议:
1. 优先升级内核
2. 如果业务不需要 CIFS/SMB 挂载,建议卸载 cifs-utils / keyutils,或阻止 cifs 模块加载。
3. 如果业务需要 CIFS 但不需要 Kerberos/SPNEGO CIFS 认证,可临时禁用或覆盖 cifs.spnego upcall 规则。注意该操作会影响依赖 Kerberos/SPNEGO 的 CIFS 挂载。
参考链接:Github