当前位置: 首页 > news >正文

Linux CIFSwitch 内核新漏洞允许攻击者获得 root 权限

Linux内核安全圈最近被一枚名为CIFSwitch的本地权限提升漏洞搅动了神经。这个由安全研究员Asim Manizada发现并命名的缺陷,潜藏在CIFS客户端与用户态工具cifs-utils的交互缝隙中,能够让一个普通本地用户直接拿到root权限,威胁面远比想象中更广。

问题的根源可以追溯到将近二十年前。早在2007年,Linux内核引入CIFS SPNEGO密钥处理机制时,就埋下了一颗定时炸弹。CIFS作为Linux上连接Windows网络文件共享的主流协议,其内核客户端在处理Kerberos认证时需要向用户态求助。具体来说,内核会调用request_key()系统调用,请求一个类型为cifs.spnego的密钥,同时附上一段描述字符串,里面包含目标服务器地址、用户ID、凭证ID、进程ID等关键参数。随后,/sbin/request-key策略会触发以root身份运行的cifs.upcall工具来处理这个请求。

这个设计本身没有问题,但致命的是,内核从未验证过这段密钥描述是否真正来自CIFS子系统内部。换句话说,任何非特权进程都可以直接调用request_key("cifs.spnego", 伪造的描述字符串),而内核会照单全收。由于cifs.spnego的默认请求密钥规则存在,cifs.upcall依然会以root权限启动,并且全盘信任攻击者精心构造的描述内容。

攻击链的精妙之处在于对命名空间的操控。Manizada在技术分析中指出,当伪造的描述中设置upcall_target=app并提供一个恶意pid时,cifs.upcall会在执行NSS账户查找之前,先切换到攻击者控制的进程命名空间。此时,这个root权限运行的工具会在一个完全由攻击者掌控的环境中执行getpwuid()等操作。

在这个私有的挂载命名空间里,攻击者可以植入伪造的/etc/nsswitch.conf和恶意的libnss_*.so.2库文件。当cifs.upcall加载这些NSS模块时,实际上是以root身份执行了攻击者的任意代码。Manizada公开的PoC中,恶意NSS模块直接向/etc/sudoers.d写入了一条NOPASSWD配置,随后攻击者只需运行sudo即可获得不受限制的root shell。

整个利用过程不需要竞争条件,稳定性极高,属于典型的"Copy Fail"类漏洞变种。更令人担忧的是,SELinux或AppArmor这类Linux安全模块在默认策略下并不能完全阻断这条攻击路径。测试表明,Linux Mint Cinnamon、CentOS Stream 9、Rocky Linux 9 Workstation、Kali Linux等多个发行版在默认安装状态下即可被直接利用。Ubuntu、Debian等发行版虽然默认不预装cifs-utils,但一旦用户手动安装该工具包,系统立刻暴露在风险之下。

这个漏洞的影响跨度极其惊人。从2007年引入相关代码算起,几乎每一代Linux内核都携带了这段有缺陷的逻辑。虽然漏洞利用需要同时满足三个条件:存在缺陷的内核、兼容的cifs-utils版本(尤其是6.14及以上版本,或带有向后移植补丁的旧版本)、以及允许非特权用户创建命名空间,但在现代Linux发行版中,后两项往往是默认开启的。

好消息是修复来得相当及时。上游内核维护者在接到报告后迅速提交了补丁,commit号为3da1fdf4efbc,标题很直白:"smb: client: reject userspace cifs.spnego descriptions"。修复的核心思路是为cifs_spnego_key_type添加vet_description钩子,确保只有来自CIFS客户端内部spnego_cred上下文发出的请求才会被接受,从根本上杜绝了用户态伪装内核请求的可能性。

对于暂时无法重启打补丁的系统管理员,业界也提供了几条可行的临时缓解路径。如果服务器并不使用CIFS挂载,最直接的办法是卸载cifs-utils包,或者通过modprobe配置阻止CIFS内核模块加载。另一种思路是重写/etc/request-key.d/cifs.spnego.conf,将默认的cifs.upcall调用指向/bin/false,直接切断攻击链路。当然,这些手段都会破坏正常的CIFS Kerberos认证功能,只适用于不依赖SMB共享的场景。

Manizada已经将完整的技术文档和可复现的PoC代码托管在GitHub上,目的是帮助防御者、发行版维护者和应急响应团队快速验证自己的系统是否受影响,以及测试补丁是否真正生效。考虑到利用代码已完全公开,且攻击门槛低、成功率高,建议Linux管理员尽快评估自身环境,优先在 multi-tenant 主机、CI/CD 构建节点、容器农场等存在本地用户交互的场景下部署修复。

这场风波再次提醒我们,内核与用户态工具之间的信任边界必须经得起推敲。一个看似简单的描述字符串验证缺失,经过巧妙的逻辑串联,最终演变成影响近二十年内核版本的高危提权漏洞。在AI辅助漏洞挖掘技术日益成熟的今天,这类深埋已久的逻辑缺陷正被更快地发掘出来,防御侧的反应速度也需要与之匹配。

http://www.cnnetsun.cn/news/2696363.html

相关文章:

  • 企业内训效率提升300%?Sora 2批量生成培训视频的12个已验证生产参数,限内部技术白皮书流出
  • 抖音无水印下载终极指南:3个超简单步骤搞定视频批量保存
  • OBS多路推流插件完整指南:如何实现高效多平台直播推流
  • 3分钟掌握B站视频下载:免费获取4K大会员内容的终极解决方案
  • 92.手机系统故障深度修复:软砖/硬砖/分区损坏一站式刷机解决方案
  • 别再手动拖UI了!用Unity的Scroll Rect+Layout Group,5分钟搞定动态任务列表
  • 如何快速构建低成本超声波定向音频系统:完整实现方案
  • 独立站SEO优化怎么做?2026保姆级教程
  • 【Redis从入门到精通】第26篇:Redis过期键机制——TTL的生死时钟是怎么走的
  • 【Redis从入门到精通】第28篇:数据库通知——Redis的事件订阅机制
  • 终极指南:3个秘诀让你成为虚幻引擎游戏修改大师
  • GetQzonehistory:3分钟永久备份QQ空间说说的免费高效方案
  • 超越官方Demo:如何微调YOLOv8模型让BotSORT在体育视频中跟踪得更准更稳?
  • 别再微调CLIP了!Sora 2原生支持“战术意图编码器”,3步接入教练战术板(含英超某队真实部署案例+JSON Schema模板)
  • ExtractorSharp:一站式游戏资源编辑解决方案,让NPK和IMG文件处理变得简单高效
  • Pearcleaner:macOS应用清理革命,告别数字垃圾的一站式解决方案
  • OBS StreamFX完整指南:免费打造专业级直播特效的终极教程
  • CCS12.2配置避坑:手把手教你为DSP28335生成可烧录的.bin文件(解决‘C:’报错)
  • 全球仅12家机构掌握的Sora 2物理锚定技术:如何让虚拟物体在真实视频中承受真实反作用力?
  • Oni-Duplicity深度解析:基于TypeScript与Redux的《缺氧》存档编辑器架构设计与实现原理
  • 51单片机四则运算计算器完整Keil工程:矩阵键盘输入+数码管显示(含源码与HEX)
  • 终极解决方案:如何一键安装所有Visual C++运行库,告别“缺少dll文件“错误
  • 如何5分钟掌握FF14智能钓鱼:渔人的直感终极指南
  • Arduino与3D打印打造万圣节互动糖果机:从硬件到软件的完整DIY指南
  • 基于Django搭建的药房库存后台系统(含MySQL建库脚本与一键部署指南)
  • 基于STM32F103的T12焊台温控主板方案:含多版原理图、Arduino源码与OLED图形化菜单
  • 如何快速掌握LaTeX公式转Word:面向学术工作者的终极解决方案
  • MATLAB版NSGA-II多目标优化工具包:含完整源码、逐函数文档与可运行示例
  • SteamShutdown终极指南:如何让电脑在Steam下载完成后自动关机
  • 打造智能电视专属媒体中心:Jellyfin Android TV客户端完整指南