找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4430

积分

0

好友

582

主题
发表于 半小时前 | 查看: 4| 回复: 0

又一个 Linux 内核本地提权漏洞曝光。安全研究人员发现了 CVE-2026-68138,这是存在于 Linux 流量控制(traffic-control)子系统中 qdisc rate-table 代码的一个竞态条件漏洞。攻击者只需一个普通用户权限,即可在数秒内获得 root shell。目前公开了可用 POC,影响范围覆盖 Linux 5.1 至 7.1.5 版本。

一、漏洞概述

CVE-2026-68138 是一个存在于 Linux 内核 qdisc rate-table 代码中的竞态条件(Race Condition)本地权限提升漏洞。漏洞发现者为 Aldo Ariel Panzardo,由安全研究员 A. Ramos(@aramosf)于 2026 年 8 月 12 日公开了完整 POC。

该漏洞的核心问题在于:qdisc_get_rtab()qdisc_put_rtab() 函数管理着一个全局单链表 qdisc_rtab_list 和一个普通非原子整数引用计数器 refcnt。在历史版本中,调用者持有 RTNL(Runtime Netlink Lock)互斥锁,这保证了对链表的访问是串行化的。

然而,花分类过滤器(flower classifier)设置了 TCF_PROTO_OPS_DOIT_UNLOCKED 标志。当收到 RTM_NEWTFILTER 请求时,flower 规则可以到达 police 动作,在没有持有 RTNL 锁的情况下调用 qdisc rate-table helpers:

fl_change()
  → tcf_exts_validate_ex()
    → tcf_action_init()
      → tcf_police_init()
        → qdisc_get_rtab() / qdisc_put_rtab()

来自不同网络命名空间的并发请求会竞争同一个对象,导致 struct qdisc_rate_table(在 x86-64 内核上为 1056 字节,从 kmalloc-2k 分配)的 Use-After-Free 或 Double-Free。

CVE-2026-68138竞态条件漏洞原理示意

二、影响版本

该漏洞的引入 commit 为 470502de5bdb,在 Linux 5.1 版本中正式合入。

Linux 版本 状态
Linux 5.1 之前 不受影响
Linux 5.1 ~ 7.1.5 受影响(无 vendor backport 情况下)
Linux 7.1.6 已修复(commit fb29e1b41052)
Linux 7.2-rc1 ~ rc4 受影响
Linux 7.2-rc5 及以上 已修复(commit f43ee0c0730d)

Ubuntu 发行版受影响情况(截至 2026-08-12):

Ubuntu 版本 内核 状态
Ubuntu 22.04 GA 5.15.0-187.197 受影响的代码存在
Ubuntu 22.04 HWE 6.8.0-136.136 受影响的代码存在
Ubuntu 24.04 HWE 7.0.0-28.28 受影响的代码存在(allocator hardening 导致 exploit 链不兼容)
Ubuntu 26.04 7.0.0-28.28 受影响的代码存在(allocator hardening 导致 exploit 链不兼容)

三、漏洞利用条件

PoC 在以下测试环境中成功验证:

  • 架构:x86-64 Linux,4 个虚拟 CPU
  • 命名空间:启用非特权用户命名空间和网络命名空间(CONFIG_USER_NS=yCONFIG_NET_NS=y
  • 流量控制模块:需启用 CONFIG_NET_CLS=yCONFIG_NET_CLS_FLOWER=yCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=y
  • BPF 支持:需要经典 BPF socket 过滤器和 BPF JIT 支持
  • 文件系统CONFIG_TMPFS_XATTR=y(用于 simple_xattr 堆喷洒)
  • 模块支持CONFIG_MODULES=y,可用的 /sbin/modprobe
  • 内存:建议至少 5 GiB RAM 的隔离 disposable VM
  • 文件描述符限制:至少 4096

关键约束

  • 启用了 memory-cgroup accounting 的内核需要不同的回收策略,当前 PoC 不适用
  • Ubuntu 24.04/26.04 HWE 版本因 allocator hardening,当前 exploit 链不兼容

四、PoC 分析

4.1 攻击原理

该漏洞的利用依赖于精心设计的多线程竞态攻击。PoC 创建 4 个工作线程,每个线程进入不同的网络命名空间,创建带有 police 动作的 flower 过滤器。

攻击流程

  1. 三个 worker 走成功路径:创建 flower 过滤器并获取 rate-table 引用
  2. 一个 worker(worker 0)走错误路径:在获取 R_tab 和 P_tab 后,提供一个故意无效的 estimator,触发错误路径,释放两个表
  3. 竞态触发:在表被释放但指针仍被持有期间,其他 worker 的 BPF 分配可以喷射到同一内存槽
  4. Use-After-Free 利用:通过 SO_GET_FILTER 检测 socket 的 orig_prog->filter 指针是否被重定向到另一个 live BPF 分配
  5. 权限提升:关闭一个 owner 会通过 sk_filter_release_rcu() 延迟释放,grace period 后 PoC 接管该内存,完成提权

4.2 核心代码片段

// 构建filter请求,关键在于故意提供无效estimator触发错误路径
if (slow_holder) {
// interval=5 是故意无效的(有效最大值是3)
struct tc_estimator estimator = {.interval = 5, .ewma_log = 1};
    addattr(nh, cap, TCA_RATE, &estimator, sizeof(estimator));
}

// 关键:act_police在验证estimator失败后,已经获取了R_tab和P_tab
// 然后在错误路径中释放它们,此时其他worker仍持有对同一对象的引用

4.3 关键数据结构

struct leaked_pipe_buffer {
uint64_t page;
uint32_t offset;
uint32_t len;
uint64_t ops;
uint32_t flags;
uint32_t padding;
uint64_t private;
};

通过管道 buffer 泄露内核指针,获取绕过 KASLR 所需的 page 和 ops 指针。

五、修复方案

上游官方修复

  • Mainline 修复 commit:f43ee0c0730d(7.2-rc5)
  • Stable 修复 commit:fb29e1b41052(7.1.6)

修复方案为在 qdisc_rtab_listrefcnt 访问处增加 qdisc_rtab_lock 自旋锁保护。

临时缓解措施

  • 如果内核支持,禁用非特权用户命名空间:sysctl -w kernel.unprivileged_user_ns=0
  • 禁用网络命名空间:如果不需要,可以考虑限制 CONFIG_NET_NS
  • 在容器环境中,限制 CAP_NET_ADMIN 能力

六、检测与响应

IoC 指标

  • 内核版本为 Linux 5.1 ~ 7.1.5 或对应 Ubuntu 版本
  • 系统存在大量 RTM_NEWTFILTER 网络链接消息
  • 进程尝试访问 /proc/self/ns/net

检测脚本(检查是否在受影响范围内):

# 检查内核版本
uname -r

# 检查是否应用了修复
grep -q "qdisc_rtab_lock" /proc/kallsyms && echo "已修复" || echo "可能受影响"

七、总结

CVE-2026-68138 再次证明了 Linux 内核网络子系统的并发安全性问题。竞态条件漏洞虽然利用难度较高,但一旦成功即可获得系统最高权限,危害极大。

本次漏洞的特殊之处在于:

  1. 攻击面广:qdisc rate-table 是内核流量控制的核心组件
  2. 影响周期长:自 Linux 5.1 引入,长达 6 年才修复
  3. 跨命名空间攻击:即使在不同的网络命名空间中也能竞争同一个全局对象
  4. 公开 POC:已发布完整可用的 exploit 代码

建议所有使用 Linux 5.1~7.1.5 版本的用户尽快升级内核,或采取临时缓解措施。云栈社区也会持续关注此类内核安全动态,欢迎前往 知识库 交流讨论。




上一篇:GeoServer WFS jsonArrayContains 未授权SQL注入0day(附PoC)
下一篇:折射手机壳偷拍原理曝光:熄屏仍可录像,产销用均涉嫌违法
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-17 04:18 , Processed in 1.568404 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表