Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2026-46331-audit — cve-2026-46331-audit脚本 | Kitploit
工具/GitHubGitHub/quaerendir/cve-2026-46331-audit
权限提升漏洞分析漏洞利用取证分析论文与研究学习与教育事件响应
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

cve-2026-46331-audit脚本

查看仓库
32个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

cve-2026-46331-audit

CVE-2026-46331(又名 pedit COW)的只读审计脚本——Linux 内核 net/sched act_pedit 操作中的部分写时复制(partial copy-on-write)漏洞,允许本地非特权用户破坏页缓存内存并提权至 root。

root@kitploit:~
   ____  _____ ____ ___ _____      ____ _____        __
  |  _ \| ____|  _ \_ _|_   _|    / ___/ _ \ \      / /
  | |_) |  _| | | | | |  | |     | |  | | | \ \ /\ / /
  |  __/| |___| |_| | |  | |     | |__| |_| |\ V  V /
  |_|   |_____|____/___| |_|      \____\___/  \_/\_/
     CVE-2026-46331    net/sched act_pedit 部分写时复制

简介

tcf_pedit_act() 在进入键循环之前,使用 tcfp_off_max_hint 计算 skb_ensure_writable() 的 COW 范围。带类型的键会在运行时增加 hint 未覆盖的首部偏移,导致部分写操作落在 COW 区域之外。结果:共享页缓存页面被篡改,内存中的 setuid 二进制(经典目标:/bin/su)可以被污染。磁盘上的哈希保持不变。文件完整性监控将无法察觉。

与 Dirty COW (CVE-2016-5195)、Dirty Pipe (CVE-2022-0847)、Copy Fail (CVE-2026-31431)、Dirty Frag (CVE-2026-46300) 同属一类漏洞家族。入口点不同,页面所有权失效的机制相同。

此脚本的功能

严格只读的排查工具。从不加载模块、从不触碰 sysctl、从不执行 PoC。设计为可在生产环境中安全运行。

  • 记录运行中的内核、发行版、内核包版本。
  • 通过四种独立信号探测 act_pedit 的可达性:
    • 当前已加载(lsmod)
    • 可按需加载(modinfo)
    • 内置于运行中的内核(/boot/config-$(uname -r)、/proc/config.gz、modules.builtin)
    • 被 blacklist 或 modprobe.d 中的 install ... /bin/true 覆盖所阻止
  • 列出已有的 tc action pedit 规则(仅供信息参考;不做任何更改)。
  • 读取用户命名空间的门控:user.max_user_namespaces、kernel.unprivileged_userns_clone,以及 Ubuntu AppArmor 用户命名空间限制。
  • 根据 /etc/os-release 提供启发式供应商补丁矩阵(RHEL 8/9/10、Debian 11/12/13/14、Ubuntu 18.04→26.04、SUSE、Amazon Linux、Arch 家族滚动版)。

使用方法

root@kitploit:~
sudo ./cve-2026-46331-audit.sh                       # 完整文本报告
sudo ./cve-2026-46331-audit.sh --json                # 机器可读 JSON,无横幅
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # 一行判定,用于大规模扫描
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # 扩大 IoC 搜索时间窗口
sudo ./cve-2026-46331-audit.sh --no-banner           # 文本报告但不显示 ASCII 横幅

退出码

示例输出

参见 examples/sample-output.txt 了解完整运行结果,以及 examples/sample-output.json 查看 JSON 格式。

风险评分模型

分数是以下因素的加权组合:

上限为 100。高于约 70 的分数应在多租户/CI/Kubernetes 节点上视为紧急;低于约 20 通常表明主机状况良好。

大规模部署

Ansible

root@kitploit:~
ansible -i inventory all -m script \
  -a "cve-2026-46331-audit.sh --json --quiet --no-hunt" \
  --become \
  | tee /tmp/audit.jsonl

然后使用 jq 汇总:

root@kitploit:~
grep -v '^[a-z]' /tmp/audit.jsonl | jq -s 'group_by(.verdict) | map({verdict: .[0].verdict, hosts: length})'

在 Playbook 中使用 failed_when

root@kitploit:~
- name: audit CVE-2026-46331
  ansible.builtin.script: cve-2026-46331-audit.sh --quiet --no-hunt
  register: audit
  failed_when: audit.rc == 2
  changed_when: false

缓解措施(如需要推迟打补丁)

按优先顺序排列。脚本会根据检测结果推荐合适的措施。

root@kitploit:~
# 选项 1:如果不使用 act_pedit,则阻止它。
tc actions list action pedit                  # 执行前必须为空
echo 'install act_pedit /bin/true' | sudo tee /etc/modprobe.d/disable-act_pedit.conf
lsmod | grep -q act_pedit && sudo rmmod act_pedit
root@kitploit:~
# 选项 2:限制无特权用户命名空间。
# 这将破坏 Rootless Podman/Docker、浏览器沙箱、Flatpak、无特权的 unshare、部分 CI 沙箱。
sudo sysctl -w user.max_user_namespaces=0           # EL 系列
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu

真正的修复方案是安装供应商提供的内核更新并重启。重启后的 uname -r 是唯一有效的证明。

漏洞家族背景

这是同一架构缺陷的第五次出现。每一次都修复了直接原因,但没有修复根本原因:零拷贝快速路径在所有权边界之间共享页面,每个写入者在修改字节之前都必须证明页面的专有性,而这类调用点有数百个。

Rust 在内核中的实现正是通过所有权类型解决了此类问题。但这不会很快出现在 net/sched 中。

参考资料

  • NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-46331
  • Red Hat:https://access.redhat.com/security/vulnerabilities/RHSB-2026-008
  • Ubuntu:https://ubuntu.com/security/CVE-2026-46331
  • Debian:https://security-tracker.debian.org/tracker/CVE-2026-46331
  • 上游提交及描述:参见 NVD 记录中的引用。

许可证

MIT。参见 LICENSE。

免责声明

仅供在您拥有或明确获准审计的系统上作为授权防御用途使用。该脚本从不执行公开的 PoC、从不修改系统状态、从不加载模块。请将判定结果视为初步排查,而非已被入侵或安全的证明。

下载工具
CVECVE-2026-46331
组件Linux 内核 net/sched / act_pedit
分类部分 COW → 页缓存破坏 → LPE
攻击向量本地(CAP_NET_ADMIN,通常通过无特权用户命名空间获取)
上游受影响版本5.18 .. 7.1-rc6
上游修复版本7.1-rc7
公开 PoCpacket_edit_meme(已验证 RHEL 10、Debian 13、Ubuntu 24.04.4)
Red Hat 严重性重要
SUSE CVSS 3.17.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
  • 可选的行为 IoC 搜索,通过 auditd 和 journalctl(可通过 --since 配置时间窗口)。
  • 风险评分 0-100 以及最终判定:PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN。
  • 退出码专为批量编排设计。
  • 退出码含义
    0PATCHED 或 NOT_APPLICABLE(内核版本早于该漏洞)
    1MITIGATED(缓解措施已生效,但内核仍有漏洞,建议打补丁)
    2VULNERABLE(满足一个或多个必要前置条件,且未安装修复内核)
    3UNKNOWN(在多租户/CI/Kubernetes 环境中视为可疑)
    4ERROR(脚本无法运行;缺少工具或环境错误)
    信号权重
    供应商判定为 VULNERABLE+50
    供应商判定为 UNKNOWN+30
    act_pedit 内置于内核+25
    act_pedit 可加载且无覆盖+20
    act_pedit 可加载但有覆盖生效+5
    act_pedit 当前已加载+5
    无特权用户命名空间可达且无 AppArmor 门控+15
    无特权用户命名空间可达但有 AppArmor 门控生效+8
    在搜索窗口中发现 IoC+10
    CVE年份子系统原语
    CVE-2016-51952016mm只读映射上的 COW 竞争
    CVE-2022-08472022pipe / splicepipe_buffer 标志泄漏至页缓存
    CVE-2026-314312026crypto AF_ALG/AEAD对只读文件缓存的原地加密
    CVE-2026-463002026XFRM ESP-in-TCPskbuff 共享分片标志丢失
    CVE-2026-463312026net/sched act_pedit由运行时解析的类型化键偏移导致的部分 COW