Linux内核本地提权四重奏曝光:四个致命漏洞与公开PoC"

admin 2026-10-16 03:00:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

Linux内核本地提权四重奏曝光:四个致命漏洞与公开PoC

原创

Dr. Clay
Dr. Clay

黑白之道

2026年10月9日 08:40
韩国

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

导语:2026年9月18日,安全研究员Asim Manizada在个人博客发布了一篇重磅研究文章,公开了四个Linux内核本地提权(LPE)漏洞的完整漏洞分析与工作PoC。这四个漏洞被命名为\"本地提权四重奏\"(LPE Quartet),分别对应IPv6 AH6、TUN/TAP、PPPoE和SCTP诊断子系统,影响所有未及时更新的Linux系统。从PoC发布那一刻起,任何本地非特权用户都能在受影响主机上拿到root shell——这场静默的提权风暴正在蔓延。


一、事件概述

背景介绍

Linux内核是全球数百万服务器和云主机的底层基石。2026年9月,研究员Asim Manizada在完成与内核团队和发行版厂商的协调 embargo 后,按约定时间公开了四枚\"雷弹\"的完整利用代码。这四个漏洞分别是:

漏洞代号 CVE编号 涉及子系统 CVSS 攻击前提
DirtyAH6 CVE-2026-80844 IPsec / AH6 (IPv6认证头) 7.8+ 需开启IPv6 + AH6/XFRM支持
TUNderflow CVE-2026-81000 TUN/TAP 虚拟网卡 7.8+ 需unprivileged user namespaces + TUN支持
PPPoEject CVE-2026-68121 PPPoE (点对点协议 over Ethernet) 7.8+ 需unprivileged user namespaces + PPPoE支持
DiagSpill CVE-2026-74469 SCTP诊断接口 9.8 需SCTP协议支持

CISA于同月将这批漏洞中的部分纳入已知被利用漏洞(KEV)目录,并要求联邦机构在规定时间内完成修复。


二、技术分析

2.1 DirtyAH6(CVE-2026-80844)——IPsec AH6元数据破坏

Root Cause: 漏洞位于Linux内核的IPv6认证头(Authentication Header, AH6)处理路径。当系统处理经过IPsec隧道、带有AH6扩展头的IPv6数据包时,内核在 xfrm_input() 回调中对 socket buffer(skb)的元数据进行了不当操作。攻击者构造一个畸形的AH6数据包,可导致skb元数据破坏,随后通过覆写 /etc/pam.d/su 文件实现本地提权。

利用条件:

  • 内核编译时启用 CONFIG_INET6_AH 和 CONFIG_XFRM(IPsec)
  • 非特权用户命名空间可用(sysctl kernel.unprivileged_userns_clone=1)

验证(PoC结构):

// poc.c 核心片段(来源:github.com/manizada/DirtyAH6)
inttrigger_ah6_uaf(int fd) {
    structipv6hdr *ip6h;
    structauth_hdr  *ah;
    char pkt[256] = {0};

    ip6h = (void *)pkt;
    ah   = (void *)(pkt + sizeof(*ip6h));

    ip6h->version = 6;
    ip6h->nexthdr = IPPROTO_AH;
    ah->nexthdr   = IPPROTO_TCP;
    ah->hdrlen    = 0;   // 畸形值,触发元数据破坏

    send(fd, pkt, sizeof(pkt), 0);
    return0;
}

影响范围:Fedora 43、Ubuntu(具体版本见各发行版安全公告)、启用了IPsec AH6支持的所有主流Linux发行版内核 < 6.12.109。


2.2 TUNderflow(CVE-2026-81000)——TUN/TAP接收超限破坏

Root Cause: TUN/TAP是Linux虚拟网卡驱动,允许用户空间程序接收/发送网络数据包。该漏洞源于TUN/TAP驱动的 tun_get_user() 函数在处理来自用户空间的超长数据包时,未正确校验 skb(socket buffer)的 truesize。攻击者通过发送一个 oversize 的数据包,使 skb->truesize 与实际数据大小产生不匹配,进而在接收路径触发内存覆写,最终控制内核执行流。

利用条件:

  • CONFIG_TUN 编译进内核
  • 非特权用户命名空间已开启(默认多数发行版开启)
  • 存在可访问的TUN/TAP设备路径(如 /dev/net/tun)

攻击链:

open(\"/dev/net/tun\") → create TUN device →
  write oversized pkt → skb truesize mismatch →
    heap out-of-bounds write → overwrite cred struct → root

2.3 PPPoEject(CVE-2026-68121)——PPPoE处理内存溢出

Root Cause: PPPoE(Point-to-Point Protocol over Ethernet)在内核的 pppoe 模块处理阶段存在一个类型混淆漏洞。当PPPoE帧的 tag 字段被精心构造时,内核错误地将某个指针解引用为整数进行偏移计算,产生任意内核地址写。攻击者利用这个原语覆写 modprobe_path 或 acct 指针,下次触发特权程序执行时即获得root shell。

利用条件:

  • CONFIG_PPPOE 或 CONFIG_PPPOATM 加载
  • 非特权用户命名空间可用

2.4 DiagSpill(CVE-2026-74469)——SCTP诊断子系统Use-After-Free

Root Cause: 这是四重奏中危险系数最高的漏洞,涉及SCTP(Stream Control Transmission Protocol)的诊断接口。SCTP在内核中维护 assoc(关联)结构,当处理 SIOCSCTPIOCTL 等诊断ioctl时,如果一个已释放(stale cookie)的 assoc 被再次引用,就会触发 Use-After-Free(UAF)。攻击者可利用UAF释放后重分配(free-hook→code-pointer劫持)获得内核态代码执行。

该漏洞与早些时候披露的 CVE-2026-52924(SCTP outqueue purge UAF)有相似之处,但DiagSpill专注于诊断路径,影响面更直接。

关键代码路径:

sctp_diag_ioctl() → sctp_assoc_lookup() →
  stale cookie check bypassed → use-after-free →
    kmem_cache_alloc (realloc) → overwrite with ROP chain

三、PoC获取方式

研究员Asim Manizada已在GitHub上公开了所有四个漏洞的完整PoC代码仓库,以下为直接下载链接:

漏洞 GitHub仓库 关键文件
DirtyAH6 https://github.com/manizada/DirtyAH6 exploit/poc.c + Makefile
TUNderflow https://github.com/manizada/TUNderflow exploit/*.c + Makefile
PPPoEject https://github.com/manizada/PPPoEject exploit/*.c + Makefile
DiagSpill https://github.com/manizada/DiagSpill exploit/*.c + Makefile

快速验证方法(以DirtyAH6为例):

# 克隆仓库
git clone https://github.com/manizada/DirtyAH6
cd DirtyAH6

# 编译PoC(需要 kernel-headers 和 gcc)
make

# 以普通用户运行(目标系统需满足利用条件)
./exploit/dirtyah6_poc

# 验证提权
id    # 确认 uid=0
cat /etc/shadow  # 读取shadow文件证明root权限

四、影响范围与修复方案

影响范围

以下Linux发行版默认内核配置会受到影响:

  • Ubuntu 22.04/24.04 LTS(内核 < 6.12.109)
  • Fedora 43(内核 < 6.12.109)
  • Debian(部分内核分支)
  • CentOS / Rocky Linux / AlmaLinux 8.x 和 9.x(见各发行版SA)
  • 所有使用容器共享宿主机内核的多租户环境(K8s、VM共宿等场景风险极高)

修复方案

方案一(首选):升级内核

# Ubuntu/Debian
sudo apt update && sudo apt install linux-image-$(uname -r)

# Fedora
sudo dnf update kernel

# 检查当前内核版本
uname -r

方案二(缓解):禁用非特权用户命名空间 如果暂无法升级内核,可通过以下方式切断 DirtyAH6、TUNderflow、PPPoEject 的利用路径:

# 临时缓解(重启失效)
sysctl -w kernel.unprivileged_userns_clone=0
sysctl -w net.ipv6.conf.all.disable_ipv6=1   # 禁用IPv6(阻断DirtyAH6)

# 永久缓解
echo 'kernel.unprivileged_userns_clone=0' >> /etc/sysctl.d/99-lpe-quartet.conf

方案三(针对DiagSpill):禁用SCTP(若无业务需求)

# 确认是否加载sctp模块
lsmod | grep sctp

# 如无业务需求,列入黑名单
echo \"blacklist sctp\" | sudo tee /etc/modprobe.d/sctp-blacklist.conf
sudo modprobe -r sctp 2>/dev/null || true

五、漏洞验证与排查

管理员可通过以下命令确认系统是否受影响:

# 1. 检查内核版本是否低于 6.12.109
uname -r

# 2. 检查是否启用了非特权用户命名空间
cat /proc/sys/kernel/unprivileged_userns_clone

# 3. 检查IPv6和IPsec/AH6是否启用
ip6tables -L -n 2>/dev/null || echo \"IPv6 not active\"

# 4. 检查SCTP是否加载
lsmod | grep sctp

# 5. 检查TUN设备是否可用
ls -la /dev/net/tun

六、总结与趋势预测

为什么这四个漏洞同时爆发? 表面上是独立漏洞,背后是Linux内核在网络子系统长期积累的技术债务。IPsec AH6、TUN/TAP、PPPoE、SCTP都是相对\"老旧\"的组件,代码维护不活跃,边界情况容易被忽视。本次四重奏同时公开PoC,标志着漏洞武器化门槛已降至\"下载-编译-运行\"的三步。

未来趋势:

  1. 容器逃逸+本地提权组合将成为云环境横向移动的标准路径。本地root≈宿主机root,配合容器逃逸漏洞(如runC CVE)可实现一键控制整个节点。
  2. 内核安全研究方向转向。随着内核直接漏洞披露频率加快,研究者注意力正在向eBPF supervisor调用、io\_uring等新型子系统转移。
  3. 发行版内核碎片化加剧。Ubuntu、Fedora等维护各自内核分支,补丁推送时间差将产生大量\"灰色地带\"主机——这是攻击者的狩猎场。

给管理员的一句话:不要等,重启之前先拿shell。


版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。


👇 点击阅读原文,访问我的网站



    把18类常见威胁做成可复用脚本库" 网络安全文章

    把18类常见威胁做成可复用脚本库"

    本文介绍开源项目CybersecurityThreats&VulnerabilitiesGuide,将18类常见网络安全威胁整理为可复用脚本库,含45+个Python脚本与Next.js前端。项目按网络、Web应用、恶意软件、社工、密码学、应急响应六大分类组织,每主题遵循README加检测加防御三段式结构,适合蓝队基线建设与红队内训,并支持二次开发为内部威胁门户。
    【开源报告】以色列内战、崩溃与解体风险研判" 网络安全文章

    【开源报告】以色列内战、崩溃与解体风险研判"

    该报告基于21份公开文档,采用OSINT方法研判以色列内部不稳定因素。核心结论是以色列面临内战或国家崩溃风险,主要风险因素包括哈雷迪征兵危机、军事过度扩张、经济财政压力和国际孤立等。报告提出八项核心判断,指出以色列短期内国家崩溃概率低,但社会极化、制度失灵等结构性趋势显著,存在被单一事件点燃内部冲突的风险。
    评论:0   参与:  0