sgkdev/packet_edit_meme

GitHub: sgkdev/packet_edit_meme

利用 Linux 内核 `act_pedit` 页缓存损坏漏洞(CVE-2026-46331)实现非特权本地提权至 root 的 PoC 代码。

Stars: 21 | Forks: 2

# PACKET_EDIT_MEME - 又称 CVE-2026-46331 net/sched `act_pedit` 部分页缓存COW损坏(罪魁祸首 899ee91156e5, 存在于 v5.18 .. 修复于 v7.1-rc7)。`packet_edit_meme.c` 将其转化为非特权 本地 root:一个 userns CAP_NET_ADMIN 子进程使用 `setgid(0)+setuid(0)+execve("/bin/sh")` shellcode 覆盖了 setuid-root `/bin/su` 的缓存 ELF entry。 ``` make ./packet_edit_meme ./packet_edit_meme --ubuntu # AppArmor-gated Ubuntu: aa-exec bypass first ``` ## 目标(2026年6月验证,非特权用户 -> root) | 发行版 | 内核 | 标志 | 结果 | |------------------|------------------|----------|--------| | RHEL 10.0 | 6.12.0-228.el10 | (无) | ROOT | | Debian 13 trixie | 6.12.90+deb13.1 | (无) | ROOT | | Ubuntu 24.04.4 | 6.17.0-22 | --ubuntu | ROOT | | Ubuntu 26.04 | 7.0.0-14-generic | --ubuntu | FAIL | RHEL / Debian:默认开启非特权 userns,无需标志。RHEL 不自带 `cls_basic` / `em_meta`,因此 primitive 会自动回退到 `matchall`。 ## Ubuntu AppArmor 门控 Ubuntu 通过两个 sysctl 拒绝不受限制的非特权 userns: ``` kernel.apparmor_restrict_unprivileged_userns # denies unconfined userns creation kernel.apparmor_restrict_unprivileged_unconfined # forces unconfined change_profile to STACK, # so an aa-exec permissive profile cannot # shed the userns restriction ``` `--ubuntu` 通过 `aa-exec -p {trinity,chrome,flatpak}` 重新执行(这些配置文件带有 `userns,` 规则)。 ``` 24.04.4 : userns=1, unconfined=0 -> aa-exec bypass WORKS 26.04 : userns=1, unconfined=1 -> aa-exec bypass CLOSED ```
标签:CSV导出, Linux内核, Web报告查看器, 内核漏洞, 协议分析, 安全渗透, 客户端加密, 本地提权, 权限提升, 网络安全, 隐私保护