黑鸟略略略 26-04-30 10:27

Linux Kernel 作为全球应用最广泛的开源操作系统内核,承载着服务器、云主机、容器及嵌入式设备等各类场景的运行基础,其安全性直接决定了下游各类系统的安全态势。其中,Crypto API 提供了统一的用户态加密调用接口(AF_ALG),支持应用程序通过套接字方式调用内核加密原语,广泛应用于对性能要求较高的加解密场景,是系统加密功能的核心组件之一。
本次预警的漏洞(漏洞代号“Copy Fail”,CVE编号:CVE-2026-31431),存在于 Linux Kernel Crypto API 的 algif_aead 模块中。该模块的核心功能是将用户态通过 AF_ALG 套接字发送的数据,转发至内核 AEAD(认证加密与解密)算法进行处理。为提升运行性能,AF_ALG 的 AEAD 解密路径在 2017 年的一次优化更新中(对应提交编号 72548b093ee3),引入了就地(in-place)操作机制,允许将 splice() 系统调用传递的目标文件页缓存页面,直接链入可写的输出散列表(scatterlist),以此减少数据拷贝开销。
漏洞的核心成因的在于算法实现与优化逻辑的冲突:authencesn 算法在实现 IPsec 扩展序列号(ESN)支持时,为对认证数据中的序列号字节进行重排,会在解密过程中,向接收缓冲区偏移为 assoclen + cryptlen 的位置写入 4 字节数据。当用户通过 recvmsg() 系统调用触发 AEAD 解密操作时,该写入行为会跨越接收缓冲区的边界,直接覆盖此前链入散列表的页缓存页面——这一漏洞可被利用实现对系统中任意已打开的可读文件页缓存的受控 4 字节篡改。
该漏洞的危害极具危险性:本地攻击者无需依赖竞争条件,也无需进行重试操作,仅需利用此漏洞篡改系统中关键可读文件(如 /usr/bin/su 等 setuid 程序)的页缓存内容,即可直接提升至 root 权限。值得注意的是,该篡改操作不会触发磁盘脏页回写,攻击者可通过该特性实现持久化提权,即便系统重启后,提权效果仍可保留,进一步扩大危害范围。
目前,该漏洞的技术细节及 PoC(概念验证)代码已公开,意味着攻击者可快速利用漏洞发起攻击,无明显利用门槛。在此紧急提醒所有受影响用户,立即采取安全防护措施:优先升级至对应Linux内核官方最新版本,彻底修复漏洞;若暂时无法完成升级,需及时采用官方发布的缓解方案,限制非授权用户的操作权限,降低漏洞被利用的风险。

发布于 广东