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

Linux内核潜伏九年提权漏洞曝光:732字节脚本直取root权限,多发行版集体中招

摘要:韩国网络安全公司Theori披露了一项编号为CVE-2026-31431的高危Linux内核漏洞,代号Copy Fail。该缺陷根植于Linux加密子系统的algif_aead模块,自2017年引入后已潜伏近九年。攻击者仅需执行一个不足1KB的Python脚本,即可篡改页缓存中的系统文件映像,从普通用户权限一跃获取root shell。目前该漏洞已确认影响Ubuntu 24.04 LTS、Amazon Linux 2023、RHEL 10.1及SUSE 16等主流发行版,Linux官方已发布内核补丁。


一、九年潜伏:加密子系统里的"老熟人"

Theori旗下的Xint Code研究团队最初接到研究员Taeyang Lee提供的一条模糊线索。团队随后动用了AI驱动的代码审计平台,对内核数百万行代码进行逐层扫描,最终在algif_aead这个看似不起眼的加密接口模块里锁定了问题。

这个模块负责处理AEAD类算法的认证加密任务,常见于TLS、IPsec等场景。2017年某次性能优化提交中,内核开发者为了加速数据处理,采用了一种"原地操作"的内存策略——也就是直接在输入缓冲区上改写数据,而非复制到独立的安全区域。当时没人意识到,这个改动给页缓存埋下了一颗延时九年的雷。


二、页缓存的"暗门":四字节错位如何撕开防线

要理解Copy Fail的杀伤力,得先摸清页缓存(Page Cache)的工作方式。

页缓存是内核在内存中开辟的一片高速缓冲区域,用来临时存放最近读写的文件片段。下次访问相同内容时,系统直接从内存返回,无需再碰磁盘。这种设计大幅提升了I/O效率,但也意味着:如果内存中的页缓存被污染,所有依赖该缓存的进程都会读到脏数据——而磁盘上的原始文件却纹丝不动。

漏洞的触发路径相当精巧。authencesn工具在调用algif_aead进行数据封装时,由于边界检查疏漏,会有4字节数据被写到错误偏移位置。这4字节恰好落入页缓存的某个页面,进而污染了目标文件的内存映像。研究人员在演示中选择了/usr/bin/su作为目标,这个高权限程序在内存中被悄无声息地替换后,攻击者再次调用它时,拿到的已经是被篡改过的版本,root shell随之到手。

整个过程中,磁盘上的su二进制文件哈希值没有任何变化,常规的文件完整性校验完全失效。这也是该漏洞能长期躲避检测的核心原因——它只动内存,不动硬盘,几乎不留下可供溯源的物理痕迹。


三、732字节的"万能钥匙":攻击有多简单?

Xint Code团队放出的PoC脚本只有732字节,用Python写成。把它丢进终端执行,不需要竞争条件,不用碰运气刷时机,更不用堆喷射之类的高端技巧。每次运行都能稳定触发,属于典型的线性逻辑缺陷。

这种"必中"特性让它与大多数内核漏洞区分开来。通常内核利用需要精确掐时间窗口,或者反复尝试才能成功,Copy Fail却像一把万能钥匙——插进去,转一下,门就开了。研究人员把同一脚本扔到不同环境测试,结果令人脊背发凉:

  • Ubuntu 24.04 LTS

  • Amazon Linux 2023

  • Red Hat Enterprise Linux 10.1

  • SUSE Linux Enterprise 16

全部沦陷。发行版之间的差异——无论是内核配置、编译器版本还是系统调用封装——都没能挡住这个脚本。对于运行共享主机或容器平台的管理员来说,这消息尤其刺耳:页缓存是全局共享的,一个容器内的写入会直接影响宿主机的页缓存,进而波及同一台物理机上的所有租户。


四、从"房子价"到成本重构:安全界的震动

Bugcrowd首席AI与科学官David Brumley在跟Hackread.com交流时,用了个很直白的比喻:如果你把Copy Fail的细节讲给顶尖内核研究员听,他们会告诉你,这类漏洞在黑市上的价格"堪比一栋房子"。

Brumley强调了两点让人无法掉以轻心的现实:

第一,评级陷阱。官方给这个漏洞标的是"高危"而非"严重",但千万别被标签骗了。它的利用门槛低到近乎荒谬,可靠性又是百分之百,实际危害远超纸面评级。

第二,成本拐点。Copy Fail的出现打破了行业内一条默认假设——发现深层内核逻辑漏洞需要极高的人力与资金成本。AI辅助审计工具能在海量代码里精准揪出这类缺陷,意味着"挖洞"的经济门槛可能已经被砍掉一个数量级。未来,类似的逻辑漏洞或许会以更密集的频次浮出水面。


五、怎么修?现在能做些什么

Linux内核主线已在提交记录a664bf3d603d中合入修复。补丁的思路很直接:algif_aead模块不再允许原地修改输入缓冲区,而是强制把数据拷贝到独立的内存区域后再处理,彻底切断污染页缓存的路径。

对于暂时无法重启或升级内核的用户,专家建议立即禁用algif_aead内核模块:

bash

复制

sudo modprobe -r algif_aead echo "blacklist algif_aead" | sudo tee -a /etc/modprobe.d/blacklist.conf

这个模块主要服务于需要内核态加密加速的特定应用,日常上网、SSH登录、浏览器访问基本不会受到影响。但如果你的业务依赖IPsec VPN或某些特定的加密卸载场景,禁用前最好先做一次功能测试。


六、结语

Copy Fail像一面镜子,照出了内核代码审计中长期存在的盲区:那些为了性能而妥协的安全边界,那些"看起来没问题"的内存复用策略,在足够长的时间尺度上几乎总会被证明是脆弱的。

九年时间,足够一个漏洞从"新鲜缺陷"熬成"经典老洞"。当AI驱动的代码分析开始规模化扫描内核遗产时,我们或许该重新评估一下:Linux内核里还有多少类似的" sleeper ",正在等待被唤醒。对于运维人员和系统管理员而言,及时跟进内核更新、建立模块白名单机制,已经不再是可选项,而是底线要求

http://www.jsqmd.com/news/759586/

相关文章:

  • ncmdumpGUI:解锁网易云音乐NCM格式的便捷转换方案
  • Web(六)
  • 对比 Ubuntu 本地调用与通过 Taotoken 聚合调用的稳定性体验
  • 蓝桥杯嵌入式国赛复盘:我是如何用CubeMX搞定串口变长数据接收与LCD翻转显示的
  • Vue后台管理系统二选一:Fantastic-admin vs vue-element-plus-admin,新手该抄哪个作业?
  • SquareLine Studio布局与组件实战:像搭乐高一样设计LVGUI(附弹性布局详解)
  • 3D高斯泼溅技术:高效渲染与压缩方案解析
  • 保姆级教程:手把手教你修改RK3568开发板的串口波特率(从Uboot到DDR Bin)
  • 2026春季下学期第十周
  • 用STM32的TIM2和TIM3搞定JGB37-520电机:PWM调速与编码器测速保姆级代码解析
  • AntiDupl:如何用免费开源工具彻底清理电脑中的重复图片?
  • cpp-httplib实战:手把手教你用C++写一个支持文件上传的简易网盘后端
  • MIT 6.1810: Lab util: Unix utilities
  • 别再为VTK+Qt编译报错头疼了!手把手教你解决‘VTKCOMMONEXECUTIONMODEL_EXPORT’等常见库引用问题
  • 创业团队如何借助Taotoken多模型聚合能力低成本验证产品创意
  • WindowResizer实战秘籍:三步解决Windows窗口尺寸困扰
  • ADXL372数据手册没细说的那些事:手把手教你配置高通/低通滤波器与ODR(附避坑指南)
  • win11拒绝弹出广告设置和后台运行
  • 告别开机龟速!详解/etc/fstab配置:为什么我推荐你用UUID而不是/dev/sdb来挂载磁盘
  • 如何让经典游戏在现代Windows重获新生:IPXWrapper终极指南
  • 【2026年最新600套毕设项目分享】基于微信小程序的社区门诊管理系统(30227)
  • 电机械制动系统振动故障检测与减振分析试验研究【附代码】
  • 隐藏ip进网站,隐藏ip进网站的作用
  • 别再手动备份数据湖了!用LakeFS+MinIO搭建你的第一个Git式数据仓库(保姆级教程)
  • Taotoken 审计日志功能在满足企业合规与安全审计要求中的应用价值
  • 为什么你的.NET 9项目无法启用低代码调试?7个被忽略的.csproj配置陷阱与修复清单
  • claw.events:为AI智能体设计的实时消息总线,简化分布式通信
  • 基于数字孪生的掘进机截割头故障诊断深度学习【附代码】
  • FigmaCN:3分钟让英文Figma变中文,设计师的终极翻译神器
  • flv.js:在Web浏览器中实现高性能FLV播放的技术解析与实践指南