文章总结: 本文分析了Linux内核AF_ALG子系统的提权漏洞CVE-2026-31431。该漏洞利用sendmsg与splice触发内核状态混乱导致越界读写或UAF,影响多个主流发行版。作者用Golang重写利用代码并编译为多架构二进制文件,便于生产环境测试。建议通过升级内核、seccomp限制及异常行为监控进行缓解。 综合评分: 80 文章分类: 漏洞分析,漏洞POC,二进制安全
Linux提权漏洞二进制版CVE-2026-31431
原创
zngeek zngeek
蓝极战队
2026年4月30日 13:52 贵州
在小说阅读器读本章
去阅读
用golang重写该漏洞exp,直接编译成二进制文件,方便在各种生产环境进行直接测试。
编译了amd64和arm64两个二进制文件
#
Copy Fail – CVE-2026-31431
Linux 内核 AF_ALG 加密 Socket 子系统漏洞的概念验证利用代码。
技术分析
受影响的发行版
| 发行版 | 内核版本 | | — | — | | Ubuntu 24.04 LTS | 6.17.0-1007-aws | | Amazon Linux 2023 | 6.18.8-9.213.amzn2023 | | RHEL 10.1 | 6.12.0-124.45.1.el10_1 | | SUSE 16 | 6.12.0-160000.9-default |
漏洞原理
该漏洞位于 Linux 内核加密子系统的 AF_ALG(Algorithm)Socket 接口中。当使用 AEAD(带认证的数据加密)算法时,通过 sendmsg(2) 发送控制消息配合 splice(2) 进行数据传输,内核会错误处理内部加密请求状态,导致越界读/写或使用后释放(UAF)条件。
核心机制
- 创建
AF_ALGSocket 并绑定到authencesn(hmac(sha256),cbc(aes))算法 - 通过
setsockopt设置构造的密钥结构和认证标签大小 - 使用
sendmsg(2)发送包含三条控制消息(IV、关联数据、认证大小)的数据包 - 通过
splice(2)将目标文件数据经管道传入 Socket,触发内核状态混乱 - 分块迭代完成利用后执行提权操作
项目结构
├── copy_fail_exp.go # Go 语言实现(主文件)
├── pybak/
│ ├── copy_fail_exp.py # 原始 Python 实现(10 行压缩版)
│ └── README.md # 原始项目说明
├── build/ # 编译产物
│ ├── CVE-2026-31431_linux_amd64
│ └── CVE-2026-31431_linux_arm64
├── Makefile # 构建脚本
├── go.mod # Go 模块定义
└── README.md # 本文件
构建
环境要求
- Go 1.22+
- Linux 内核(支持
AF_ALGcrypto API)
编译命令
# 编译当前平台
go build -o CVE-2026-31431 .
# 交叉编译所有 Linux 平台(amd64, arm64, 386)
make build-linux
# 直接运行
make run
# 或
go run .
# 清理
make clean
构建产物输出到 build/ 目录,二进制文件经过 strip 裁剪。
技术参考
关键常量
| 常量 | 值 | 说明 |
| — | — | — |
| AF_ALG | 38 | 算法 Socket 族 |
| SOL_ALG | 279 | ALG Socket 选项级别 |
| ALG_SET_KEY | 1 | 设置密钥 |
| ALG_SET_AEAD_AUTHSIZE | 5 | 设置 AEAD 认证大小 |
| MSG_MORE | 32768 | 发送标志:后续还有数据 |
控制消息
每次 sendmsg 发送三条 cmsghdr 控制消息(level 279):
| 类型 | 数据 | 用途 |
| — | — | — |
| 3 | 4 字节零 | IV |
| 2 | 0x10 + 19 字节零 | 关联数据 (AAD) |
| 4 | 0x08 + 3 字节零 | 认证标签大小 |
缓解措施
- 升级到已修复此漏洞的内核版本
- 通过 seccomp 或 LSM 限制
AF_ALGSocket 访问 - 监控加密 Socket 上的异常
splice(2)行为
免责声明
本代码及程序仅供安全研究和教育目的使用,仅应在授权的安全测试环境中运行。作者不对任何滥用行为负责。
下载地址:
关注本公众号回复 CVE-2026-31431 即可下载
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:蓝极战队 zngeek zngeek《Linux提权漏洞二进制版CVE-2026-31431》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。




![[安全工具]CTF-OS一款专为CTF比赛封装的虚拟机系统](/images/random/titlepic/11.jpg)




![[高危漏洞通报]COPYFAIL漏洞(CVE-2026-31431)复现及修复建议](/images/random/titlepic/13.jpg)
评论