找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3581

积分

0

好友

474

主题
发表于 3 小时前 | 查看: 4| 回复: 0

威胁简报
恶意软件
漏洞攻击

CVE-2026-31431 是 Linux内核 加密子系统(crypto)中 algif_aead 模块的一个逻辑漏洞,CVSS v3 基础评分 7.8(High)。漏洞成因在于内核在 AEAD 套接字接口处理 in‑place 操作时引入了不必要的复杂性——攻击者可通过 AF_ALG 接口结合 splice(),对页面缓存(page cache)发起受控写入,从而在本地未授权的情况下完成 权限提升

受影响范围覆盖 2017 年以来大多数主流 Linux 发行版(包括 Ubuntu、RHEL、Amazon Linux、SUSE 等)中未打补丁的内核版本。利用门槛极低,已有短小精悍的公开 PoC,可在数秒内从普通用户提权到 root。

漏洞概况与影响

  • 漏洞类型:逻辑错误(Logic Bug),页面缓存写原语  
  • 触发路径:AF_ALG 套接字(algif_aead) + authencesn 模板 + splice() 操作  
  • 核心成因:早期为优化引入的 in‑place 操作(commit 72548b093ee3)在源与目的映射不同时并无实质收益,反而增加了 scatterlist 处理的边界复杂度,最终导致可控的 4 字节页面缓存写入  
  • 影响:本地普通用户可对任意可读文件(如 setuid‑root 二进制)的页面缓存进行精确篡改,实现后门植入或权限劫持

该漏洞被社区称为“Copy Fail”,最显著的特点是利用代码极度精简(部分 PoC 仅十余行 Python),且跨发行版通用。

漏洞成因简要分析

内核 crypto 子系统的 algif_aead 接口原本试图支持 in‑place 操作以提升性能。但实际上,AF_ALG 套接字的源数据和目的数据通常来自不同映射,in‑place 路径并没有带来明显优化,反而在 scatterlist 处理中引入了边界条件错误。

攻击者通过精心构造的 sendmsg()splice() 调用,利用 authencesn 模板的 scratch write 行为,即可将自己控制的数据写入目标文件的页面缓存。这种写入具备确定性和可控性,能精准修改目标二进制文件的特定偏移位置。

公开利用过程(中性技术描述)

公开的利用路径大致如下(基于公开分析,非完整攻击代码):

  • 初始化 AF_ALG 套接字:创建 AF_ALG 套接字并绑定到 “aead” 类型及特定加密模板(例如 authencesn(hmac(sha256),cbc(aes)))  
  • 构造关联数据(AAD):将要写入的受控字节填入 AAD 字段  
  • 结合 splice() 操作:通过 splice() 将数据映射到目标文件的页面缓存,完成从用户态到内核页面缓存的定向写入  
  • 针对 setuid 二进制修改:常见目标是 /usr/bin/su 等 setuid‑root 文件,修改其页面缓存中的关键指令或数据,进而在执行时获取 root 权限

整个过程完全依赖内核页面缓存机制,无需传统内存破坏或 ROP 链,属于纯逻辑利用。公开 PoC 多以 Python 脚本呈现,能快速修改目标二进制并返回 root shell。

本文不提供可直接编译运行的完整 EXP。公开仓库已有简短示例,研究人员可在隔离测试环境中自行分析其原理。

受影响产品与版本

  • 受影响内核:包含漏洞引入 commit 且未应用修复补丁的版本(大致为 2017 年后的内核)  
  • 主流发行版:Ubuntu、Debian、RHEL、CentOS、Amazon Linux、SUSE 等多数长期支持版本  
  • 检测建议:检查内核是否加载 algif_aead 模块,或通过 uname -r 确认内核版本并对比上游修复状态

检测规则参考(YARA/Sigma 思路)

可关注以下行为模式:

  • 对 AF_ALG 套接字的异常创建与 bind 操作(尤其是 aead 类型配合 authencesn 模板)  
  • 高频 splice()sendmsg() 组合调用  
  • 对 setuid 二进制文件的页面缓存修改痕迹(可通过文件完整性监控或内存异常写检测发现)

修复建议与缓解措施(按优先级排列)

  1. 立即升级内核:应用上游修复补丁——已将 in‑place 操作回滚为 out‑of‑place 方式,移除了不必要的复杂逻辑。  
  2. 临时禁用模块(缓解措施)
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true

此配置可阻止 algif_aead 模块加载,有效阻断利用路径。

总结

CVE-2026-31431 再次提醒我们,内核中一个不起眼的“优化”变更也可能埋下高危逻辑漏洞。其近乎零门槛的利用特性,使共享主机、多租户环境面临突出风险。建议所有运行受影响内核的系统尽快部署补丁或启用缓解配置。

本文基于公开情报与技术分析整理,仅供学习与研究交流。实际环境中请以官方补丁为准,严格遵循合规要求进行安全加固。

EXP:
https://github.com/rootsecdev/cve_2026_31431




上一篇:人工智能场外衍生品风险应对:模型可靠性、策略趋同与治理实践
下一篇:ProFTPD mod_sql 预认证 SQL 注入漏洞 CVE-2026-42167 深入分析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-1 22:38 , Processed in 0.748970 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表