【复现】Linux内核通用误差 Copy Fail(CVE-2026-31431)

宣布时间 2026-04-30

误差形貌


Copy Fail(CVE-2026-31431)是 Linux内核authencesn加密模板中的一处逻辑误差 。该误差允许低权限外地用户,向系统恣意可读文件的页缓存提倡确定性、可受控的 4 字节写入 。攻击者仅需一段 732 字节的 Python 剧本,就能改动 setuid 特权二进制文件,即可在 2017 年之后宣布的绝大大都 Linux 刊行版上实现外地提权,直接获取root 最高权限 。该误差CVSS评分为7.8,品级为高危 。

与Dirty Cow、Dirty Pipe等经典Linux外地提权误差相比,Copy Fail的最大优势在于无需依赖竞争条件,误差使用乐成率和稳固性更高 。别的,该误差笼罩的系统规模更广,险些影响所有Linux刊行版 。


影响规模


? Linux Kernel 4.14及以上版本,直至补丁宣布前的所有版本(4.14 - 6.x系列)

? Ubuntu、Amazon Linux、RHEL、SUSE等主流刊行版

? 容器情形(官方披露可能实现容器逃逸)


误差原理


2017年提交的commit 72548b093ee3为algif_aead.c引入了AEAD(带关联数据的认证加密)操作的原位优化 。在解密流程中,内核将AAD和密文数据从TX SGL拷贝至RX缓冲区,并通过sg_chain()将标签页以引用方法链接 。随后设置req->src = req->dst,使得原原来自文件页缓存的页(经由splice传入)进入了可写的目的散列列表(Destination SGL) 。


在authencesn模板的解密函数crypto_authenc_esn_decrypt()中,当src与dst被视为统一原位缓冲区时,该函数会向标签区域写入4个字节 。然而,此写入操作爆发在标签检查之前——纵然后续因认证标签校验失败返回-EBADMSG过失,文件缓存页中的4个字节已被改动 。该误差允许外地低权限用户向恣意可读文件的页缓存中写入可控数据,每次请求可笼罩4个字节,通过多次请求可改动只读或setuid程序内容,进而实现外地提权或代码执行 。


误差复现


图片.png


清静建议


    (1)正式防护计划

    将内核更新至包括commit a664bf3d603d 的版本 。

    https://github.com/torvalds/linux/commit/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5


    (2)暂时防护步伐

    使用seccomp阻止AF_ALG套接字建设,或将algif_aead�?榱腥牒诿ィ�

    Plain Text

    echo   "install algif_aead /bin/false" >   /etc/modprobe.d/disable-algif-aead.conf

    rmmod algif_aead 2>/dev/null


    参考链接:

    [1]https://xint.io/blog/copy-fail-linux-distributions

    [2]https://copy.fail/



    尊龙凯官网入口起劲防御实验室(ADLab)


    ADLab建设于1999年,是中国清静行业最早建设的攻防手艺研究实验室之一,微软MAPP妄想焦点成员,“黑雀攻击”看法首推者 。阻止现在,ADLab已通过 CNVD/CNNVD/NVDB/CVE累计宣布清静误差7000余个,一连坚持国际网络清静领域一流水准 。实验室研究偏向涵盖基础清静研究、电信运营商基础设施清静研究、移动终端清静研究、云清静研究、信创清静研究、物联网清静研究、车联网清静研究、工控清静研究、数据清静研究、5G清静研究、AI清静研究、卫星清静研究、低空清静研究、高级威胁研究、攻防系统建设 。研究效果应用于产品焦点手艺研究、国家重点科技项目攻关、专业清静服务等 。


    adlab.jpg