一段Bash脚本、一个周末,挖出了Linux蛰伏23年的内核漏洞

Can Artuc 2026-05-19 09:53:13

 
 

Linux 7.0于4月12日正式发布,Rust成为内核官方支持语言。随着这一版本发布,AI也正式成为内核协作伙伴,Linus Torvalds表示,这已成为新常态。

 
 

 

一、二十三年,一个晚上

 

在Nicholas Carlini的笔记本电脑上,一段Bash脚本在后台循环运行。它运行的逻辑很简单:逐个打开内核源码文件,把代码喂给Claude Opus 4.6,让AI假装自己在打CTF夺旗赛,找出里面能被攻破、利用的漏洞。跑完一个文件,自动切到下一个,一直循环。Carlini并没有盯着它跑,这类脚本他已经跑了好几个月。但他得到的所有回应,不过是一片噪音。

 

但紧接着,一条结果突然弹了出来……瞬间让他停下了手里的打字动作。

 

该模型在Linux的网络文件共享代码中发现了一个漏洞。这段代码同样广泛运行于很多公司的文件服务器、医院的存储设备、学校的共享驱动器,以及AWS、谷歌云、Azure等平台的大量文件共享后端中。利用这个漏洞,一个刚入职第一天的实习生,只要连上办公室的访客Wi-Fi,就可以运行一段简短的脚本,从而完全控制文件服务器。所谓“控制”指的是:读取HR团队的薪资表、删除payroll归档、复制CEO的邮件备份、安装一个能扛过三次重启的持久后门。无需管理员密码,无需窃取任何凭据,也无需串联第二个漏洞。从2003年3月到2026年4月期间出货的每一台基于Linux的文件服务器,都存在这个漏洞。

 

Carlini查阅了内核提交记录,这个漏洞早在2003年3月就被引入内核代码中。也就是说,它甚至比Git出现得还早(Git于2005年4月才正式推出)。过去二十年间上市的所有Linux架构存储设备,无一例外都带有这个漏洞。他盯着屏幕静坐良久。后来,在人工智能安全大会上,他面向听众坦言:“我这辈子从没找到过这种级别的漏洞,这件事非常、非常、非常难做到。”

 

我从2004年起就一直在交付部署Linux系统,覆盖电信、数字医疗、深度科技影像等领域。我曾无数次在深夜的生产环境的文件系统上紧急执行xfs_repair修复命令,次数多到数不清,也经历过NFS服务突然卡死失联,直接导致整个团队一整天的工作全部停滞。

 

Carlini写的这段脚本谈不上多高明,但胜在成本极低。

 

只需单人运维、一周的算力消耗,背后是简单直白的成本逻辑……

 

三周后,Linus Torvalds正式标注发布Linux 7.0版本。他在发布邮件里轻描淡写地写道:“我认为,未来很长一段时间里,各类AI工具会持续帮我们挖出各种边界漏洞,这恐怕会成为短期内的新常态。”

 

2026年4月12日周日,Linux 7.0正式发布。

 

本文就来讲述,伴随这次版本更新一同到来的重大变化,以及背后的推手。

 

而这一版本,也正式宣告:行业新常态已然降临。

 

二、二月早晨,漏洞乱象戛然而止

 

Greg Kroah-Hartman 负责维护Linux稳定版内核,是Carlini的核心副手。同时他还掌管内核安全问题专属收件邮箱,这也意味着多年以来,他每天打开邮箱,看到的基本都是垃圾内容。他将这类东西称作AI劣质垃圾产出:全是AI自动生成的报告,没有真实漏洞,文件不对、代码行不对,通篇错漏百出。他甚至专门建了一个文件夹,用来收纳这类无效的报告。

 

二月底的一天早上,这个文件夹再也没有新增垃圾内容。取而代之的,是一条条实打实的漏洞上报:精准标注代码行号、可稳定复现的利用脚本、经得起推敲的根因分析。今年三月,他在接受《The Register》采访时表示:“就在几个月前,我们每天收到的全是所谓的AI垃圾产出。但一个月前风向突变,整个行业彻底变了。现在送来的,全是货真价实的有效漏洞报告。”他还坦言:“我们毫无头绪,没人能解释背后的原因。”要么是一众前沿大模型在同一个月内,C语言代码解析能力集体大幅跃升;要么是大批安全研究员不约而同在同一周集中用大模型扫描老旧历史代码;又或者,两种情况同时发生。

 

Greg恪守内核维护者的本职工作,负责编写各类文档。在Linux 7.0第七个候选版本发布前夕,他提交了一条合并请求,更新了security-bugs.rst文档。该文件用于规范安全研究员提交漏洞的标准流程。这次更新专门针对大语言模型优化说明内容:明确划分各子系统对应的维护负责人、规范合格漏洞报告的撰写格式,同时列明自动化扫描流程必须包含的关键字段。现在,Linux内核的安全漏洞接收通道正式改为双适配模式:人工研究员与AI智能代理,将通过同一套流程统一提交漏洞。

 

另有一支团队长期监控内核代码提交记录,而非通用漏洞披露编号(CVE)。 Google的Roman Gushchin推出了一款名为Sashiko的检测工具,采用Rust语言开发,名称源自日本传统刺绣工艺。(这其中藏着一个小巧的伏笔,后文便会揭晓。)Sashiko会逐行读取发布在Linux内核邮件列表(LKML)上的所有补丁。研究人员抽取一千条真实开发环境下的补丁作为基准测试集,该工具成功检出了后续被确认漏洞中的53%。而这部分被测出的问题,全部都被人工审核人员遗漏。被问及该检测指标时,Gushchin表示:“有人可能觉得53%的检出率并不算亮眼。但要清楚一点:这些安全问题,当初没有任何一位人工审核人员发现。”

 

就在当前的Linux内核邮件列表归档中,藏着这么一个补丁:如果放任上线,下周二半夜,值班的SRE必然会被紧急叫醒处理故障。而这款Sashiko工具,早在上个月就已经将该问题标记告警。你永远不会知道,究竟是哪一段代码、哪一个补丁化解了这场潜在事故。这,就是行业新常态下,从业者最真实的切身感受。

 

三、Rust大获全胜,双方就此罢手

 

Linux 7.0正式发布当天,Miguel Ojeda提交了他为该版本适配的最后一则Linux内核Rust支持合并请求,即 7.0。

 

“实验已经完成,Rust从此常驻内核。”

 

四年前,这句话可能招来一片指责。2022年末,Rust首次随Linux 6.1版本合入内核,当时只是一项可选启用的实验性特性。即便遭到多位内核维护者反对,该功能仍被合并。他们认为Rust只是一时风潮、形式化工程,甚至弊大于利。历经六个版本迭代后,Rust正式摘掉实验标签,成为内核中与C语言平起平坐的一等开发语言。各个子系统仍可自主决定是否接纳Rust代码,内核主体绝大部分依旧由C语言编写,但这场持续多年的技术争论,已然尘埃落定。Nova驱动(NVIDIA面向图灵架构的开源驱动,用于替代nouveau,适配目前工作站主流的GeForce RTX 20系列与GTX 1600 系列显卡)已在Linux 7.0中内置Rust实现。过去两年由Danilo Krummrich持续开发的Rust版DRM直接渲染管理框架,也正式并入内核主线。

 

但那些耗费四年时间推动Rust落地内核的人,并未身处这场成果揭晓的现场。

 

Wedson Almeida Filho曾主导微软的Linux内核Rust适配工作。过去四年里,他不断和保守的C语言模块维护者拉锯,对方坚决抵制Rust代码接入自家子系统。最终,他发布离职说明,直言缘由是“非技术层面的无端拉扯”,选择抽身离开。而与他一同牵头该项目的Alex Gaynor,也在Rust正式转正的同一周宣布卸任。这份胜利的荣光,与他们毫无干系。

 

另一边,Christoph Hellwig执掌内核DMA(直接内存访问)子系统长达二十年。该模块属于底层核心基础组件,绝大多数工程师日常无需接触,甚至不清楚归属维护者。一年前,他曾在公开邮件中直言,Rust与C语言混合开发是“难以根除的顽疾”。当内核维护团队达成共识,允许Rust驱动通过轻量化抽象层调用C语言DMA接口时,Hellwig选择直接卸任,该模块后续由Marek Szyprowski接手维护。

 

二十年来,他一直维护着核心底层代码,支撑内核所有驱动与硬件的交互通信。这不仅是职业生涯的一段履历,而是他毕生的事业。最后的争论,仅仅围绕一件小事:新语言能否通过一层封装接口,调用他编写的底层函数。他输掉了这场博弈,随后选择转身离场。

 

Safe Rust从代码结构层面直接杜绝了一整类经典漏洞:缓冲区溢出、释放后复用、空指针解引用。Carlini脚本挖出的这处长达23年的NFSv4溢出漏洞,从语言机制设计上,绝无可能出现在Safe Rust代码中。如今内核正式纳入全新开发语言,从根源上杜绝了本文开篇这类高危漏洞的产生。可为之奔走争取的人已然离场,激烈反对的人也选择离去,但Linux 7.0依旧如期发布,尘埃落定。

 

文章配图-1

图片来源:作者,跨子系统的Linux 7.0版本组合

 

全新的配套规范随版本一同正式落地。今后,所有借助AI辅助编写的补丁,必须添加Assisted-by: 尾注,标明所用大模型与工具。AI代理不得签署 Signed-off-by 合规签名,因为开发者原产地声明具备法律效力,仅可由自然人出具。漏洞责任最终仍由提交代码的开发者全权承担。这项规则的诞生,并非社区冷静研讨、从容制定的结果。起因是NVIDIA的工程师Sasha Levin向内核6.15提交了一则补丁:全篇代码连同更新日志,几乎完全由大模型生成,且全程未提前告知任何人。这段代码能够正常编译,顺利通过初步审核,却暗藏性能退化问题。该缺陷一路流入稳定版内核,直接毁掉了不少人的一周工作。此事引发强烈舆论反弹。向来不愿为流程规范开会扯皮的Linus,直接终结了这场争论:他表示,一刀切禁止AI编码只是毫无意义的姿态作秀。AI只是一种开发工具,责任必须绑定到人,相关规范即刻落地生效。

 

红帽,这家商业化Linux发行厂商的从业资历,远比本文中多数开发者的编程生涯还要久远,他们提出了一个至今尚无答案的严峻问题。基于GPL开源代码训练的大模型,会从根源上导致代码提交的版权溯源难以保障。AI生成代码的版权究竟归属何方?这个难题并未随着Linux 7.0的发布得到解决,且会长期持续存在。

 

四、当下的日常,手中的资产,未来的2035年

 

数据中心内的RAID磁盘阵列控制器,会在夜间执行磁盘巡检(SCRUB)周期,对阵列内所有磁盘开展常规完整性校验。过程中,文件系统的记账元数据里,恰好有一个比特位发生翻转。在内核最不容出错的位置,一个0被意外改成了1。如果你的环境使用XFS文件系统(RHEL、Rocky Linux、AlmaLinux、Oracle Linux 的默认文件系统),以往只会通过两种方式察觉故障:要么业务服务异常报错,要么次日一早卸载磁盘,从xfs_repair修复日志中发现问题。无论哪种,都会迎来糟糕透顶的周一。

 

2026年1月15日,Darrick J. Wong提交了第六版XFS自愈补丁集,该功能现已随Linux 7.0正式上线。在此版本之前,如果一家中型公司的文件服务器在周末丢失了单字节的文件系统元数据,值班工程师就会接到告警,并赶往机房停机维护,执行xfs_repair修复后再重新上线,全程赶在周一上班前完成。情况好的话,也要停机四小时;一旦修复耗时超出维护窗口,周一例会的开场,便只能以故障致歉收场。Linux7.0彻底终结了这种周末紧急抢修的旧模式。全新后台守护进程xfs_healer可自动识别此类损坏,在业务不间断提供文件服务的同时完成在线修复,并留存系统日志。终端用户毫无感知,告警设备保持静默,周一的工作也能照常开启。

 

再放眼整个云计算领域,影响将成倍放大。亚马逊云、谷歌云、微软Azure上的RHEL系列镜像,均默认采用XFS文件系统。全球绝大多数企业级Linux服务器集群,自此不再频发这类突发故障告警,运行愈发平稳安静。

 

在法兰克福某家银行,一台SPARC M7服务器正在处理一笔交易结算。其上运行的软件开发于1998年,且与甲骨文签订的合约明确要求,整套环境禁止迁移改造。就在4月12日,这台老旧服务器依旧迎来了内核补丁更新。SPARC(Sun Microsystems,20 世纪 90 年代初的版本),迎来了fork/clone漏洞修复、全新clone3系统调用支持与接口优化整理。早已淡出主流的DEC Alpha架构,如今大多留存于科研实验室,运行着我高中时代编写的仿真程序,本次也修复了内存整理过程中引发的用户态内存损坏问题。Motorola 68000架构同样获得了补丁维护。使用这些老旧平台的人,不会为此撰写技术博客大肆宣扬。他们只会默默升级内核,在心底悄然感受到:自己小众老旧的业务环境,依然有被关注到。

 

4月7日,内核开发主线分支正式敲定,将在Linux 7.1中移除对Intel i486的支持。i486处理器于1989年问世。32位x86架构如今仍被广泛使用,而舍弃i486兼容适配后,现有所有x86设备的运行效率都将得到提升。SPARC架构得以保留,是因为仍有专人持续维护、愿意为之负责;而486架构惨遭淘汰,原因也恰恰相同:早已无人关注、无人维护。

 

图片来源:作者,Linux 7.0可衡量的性能改进

 

AMD最新一代服务器芯片EPYC 9005,也是当下各大云厂商正在大批量上架部署的主力机型,在Linux 7.0优化后的KVM虚拟化架构下,加密虚拟机的运行效率大幅提升。加密虚拟机是银行、医疗机构愿意额外付费采购的核心能力,可杜绝云厂商私自读取内部敏感数据。基于新一代EPYC 9005“Turin”平台的实测数据显示:在高内存负载场景下,SEV-SNP机密虚拟化的性能损耗已压缩至个位数至百分之十几的低位。AMD正在推进的RMPOPT优化已纳入后续内核迭代计划,旨在进一步抹平剩余性能开销。对云厂商而言,这组性能差距,直接决定机密计算服务能否盈利,而非只停留在PPT宣传层面。对入驻的银行客户来说,这意味着可以安心选购付费隐私云服务,不必无奈退守自建机房,走回运维老路。

 

ML-DSA(基于模块格的数字签名算法,美国国家标准与技术研究院认证的后量子密码标准)正式并入内核,提供44、65、87三档安全等级。Linux设备每次加载驱动时,都会校验加密签名,确保驱动来自合法授权方。目前通用的签名算法,一旦遭遇规模化量子计算机即可被破解。这类设备当下虽未问世,但情报敌对势力早已开始全网采集留存各类加密签名,提前布局、长线蛰伏。等2035年量子计算机落地,攻击者便可伪造合法内核更新,定向推送至目标终端,将设备改造成长期监听节点。2026年落地的ML-DSA,趁漏洞窗口期尚短,提前彻底堵死这条攻击路径。同一版本中,面对未来量子设备会在数分钟内被暴力破解的SHA-1模块签名机制,也已正式移除。

 

五、Copilot曾是微软专属;而现在这三个属于所有人

 

谷歌向Linux 7.0的HID修复合并请求提交补丁,在输入子系统中新增三组按键键码,同时牵头制定了配套的USB-IF HID 行业规范 HUTRR119。

 

  • KEY_ACTION_ON_SELECTION(0x254):针对选中内容触发AI操作,包括解读、总结、检索。

  • KEY_CONTEXTUAL_INSERT(0x255):唤起悬浮窗口,在当前输入框内生成或调取文字内容。

  • KEY_CONTEXTUAL_QUERY(0x256):基于选中内容,推送关联智能建议。

 

不同于微软2024年推出的Copilot按键(按键改造旧式功能键、强行绑定自家专属助手),这三组全新键码属于标准原生HID定义,不绑定任何AI服务商。

 

笔记本厂商可自由将其映射至Claude、Gemini、本地 llama.cpp模型,或是自定义Shell脚本。未来的ThinkPad、戴尔 XPS、Framework等机型,都将标配这类通用AI功能按键。

 

图片来源:作者,人工智能在整个Linux 7.0发布生命周期中的参与

 

仅此一个版本迭代,四大变革悄然落地,全都沉淀在同一份代码提交记录中。

 

  • AI现已参与内核邮件列表的补丁审核,问题检出率达53%;

  • AI挖出了隐匿长达23年的内核底层漏洞;

  • 依照全新规范与标签机制,AI 正式被列为署名贡献者;

  • 系统输入子系统新增三颗实体键盘按键,专门用于唤起各类AI助手。

 

就在这短短一周之内,既有为AI而生的全新底层架构,也有借AI加固升级的安全体系,新旧变革,同步发生。

 

六、下一个二十三年的Bug

 

如果仅凭一人、一段Bash脚本,就能在一个周末内挖出5个内核漏洞,那么谷歌内部团队究竟掌握了多少?你的硬件厂商自研团队又发现了多少?又有多少漏洞,早已被国家级势力发现、封存,秘而不宣?

 

Linus将这种现状称作新常态。OpenSSL、GCC、Python、Postgres、Chromium,还有代码仓库里那些开发者离职后十年无人维护的微服务,皆是如此。各处代码中,随处可见一类隐患:112字节的缓冲区,却要写入1056字节的数据,这类细节以前无人留意。它们静静潜伏,等待某段尚未被编写出来的脚本,将漏洞引爆。

 

如果你在用NFS服务,想必已经修复了CVE-2026–31402漏洞。如果使用基于RHEL的衍生系统并搭载XFS文件系统,建议先在测试环境试运行自愈守护进程。如果你在KVM虚拟化中部署AMD EPYC 9005处理器并开启SEV‑SNP 机密计算,在向业务方承诺节约成本之前,务必针对自身业务负载完成基准性能测试。但凡你环境中还跑着2010年前开发、至今仍在线上运行的老旧系统,这周就该咨询安全负责人:一旦有人用 Claude Code 扫描这批代码,该如何应对。“我们有代码审核流程” 早已不再是有效说辞。要知道,当年那处内核漏洞,靠人工代码审查足足遗漏了二十三年。

 

当一段Bash脚本就能让你的代码库爆出高危CVE漏洞,那事后的复盘报告又该如何落笔?

 

作者丨Can Artuc      编译丨dbaplus社群
来源丨网址:https://canartuc.medium.com/linux-7-0-one-bash-script-one-weekend-23-years-of-kernel-bugs-8aab1c9671e1
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

活动推荐

5月22日,2026 XCOPS 智能运维管理人年会「广州站」重磅来袭!聚焦大模型迭代、AI Agent 深度应用等技术热点,邀请一众行业领军人物、技术大咖,从技术架构、实战案例到科研成果,与大家一起探索AI应用于智能运维与数据库的最佳方式,共同破解垂类智能体落地、多Agent协同、数据库自治技术工程化、核心系统信创与智能化平衡等现实难题。扫描下方二维码可了解大会详情及报名↓

 

最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告