
安全研究界最近又挖出一个狠角色——一个潜伏在Linux内核深处长达19年的漏洞,代号CIFSwitch。你没看错,19年,从2007年至今,这个漏洞一直悄无声息地躺在那里,等着有人发现。
这件事的冲击力不在于漏洞本身有多复杂,而在于一个简单的事实:核心基础设施的信任链,可能比我们想象的要脆弱得多。
一、这个漏洞到底什么来头
安全研究人员Asim Manizada发现的CIFSwitch漏洞,问题出在Linux内核的CIFS模块与用户空间辅助工具cifs-utils之间的交互上。具体来说,内核的"cifs.spnego"密钥类型在验证密钥描述来源时存在缺陷——它不会检查这个描述是不是来自合法来源。
攻击者可以伪造密钥描述,然后通过request_key()系统调用,把一段恶意描述塞给系统。系统拿到这个伪造的描述后,会触发一个具有Root权限的辅助工具,在攻击者指定的命名空间内执行代码。更狠的是,攻击者还能通过NSS模块加载恶意代码完成提权。
换句话说,只要攻击者拿到了普通用户权限,就能通过这个漏洞直接拿到Root权限——从"普通玩家"变身"管理员",为所欲为。
二、19年跨度意味着什么
这个漏洞主要影响Linux内核6.14及以上版本,但因为近期漏洞修补的"向前回溯"机制,许多旧版本也跟着遭殃。受波及的系统最远可追溯到2007年发布的版本,前后跨度整整19年。
不过话说回来,并非所有发行版都在坑里。Ubuntu 26.04、Fedora 40+、CentOS Stream 10以及openSUSE Leap 16这些发行版,由于默认安全策略比较到位,目前不受CIFSwitch威胁。
但这恰恰暴露了一个深层问题:Linux的安全性在很大程度上依赖"发行版厂商的良心"。同样的内核漏洞,不同发行版的处理方式天差地别,有些重视安全配了防护层,有些就靠内核自己扛——这中间的巨大差距,才是真正让人不安的地方。
三、补丁来了,但问题没完
修复补丁已于5月底正式解禁,改动的核心很直接——加入检查机制,直接拒绝任何来自用户空间伪造的cifs.spnego密钥描述。简单、粗暴、有效。
如果你是Linux用户,尽快更新内核版本并重启系统:
RHEL/Rocky/AlmaLinux:sudo dnf update kernel
Ubuntu/Debian/Mint:sudo apt update && sudo apt upgrade
但比起打补丁,更值得思考的是:Dirty Frag、Fragnesia、CIFSwitch——最近Linux内核漏洞一个接一个被曝光,这绝不是巧合。随着Linux在服务器、云基础设施、乃至桌面端的渗透率越来越高,针对它的安全研究也在快速升温。过去"没人关注所以安全"的时代已经过去了。
Linux内核的复杂度已经大到任何一个人甚至一个团队都无法完全掌握的程度。一个模块里的一个小缺陷,就能让整个系统的安全性形同虚设——这就是现代软件工程的残酷现实。
编辑点评
一个漏洞藏了19年才被发现,这事本身就说明了问题——不是安全研究员不给力,而是Linux内核的复杂性已经超出了人类的管理能力。开源社区引以为傲的"众人之眼"在百万行级别的代码面前就是个美好愿望。真正的安全感来自什么?来自知道自己的系统打了补丁,并且随时关注安全动态。除此之外,别给任何系统100%的信任。
—— END ——