[!WARNING] 本 PoC 仅用于帮助防御者、维护者和经授权的安全团队,在他们拥有或明确获授权测试的系统上验证补丁、缓解措施、检测规则和暴露面。
您需自行负责确保对本材料的使用是合法、经授权、受控的,并在隔离的测试环境中进行。
[!WARNING] 本 PoC 具有破坏性。 它会修改
/etc/pam.d/su,且没有任何回滚机制。 一次位置错误的覆写可能会破坏无关的内核内存,导致机器挂起或崩溃。仅在一次性 VM/可丢弃主机上运行。
该 PoC:
/etc/pam.d/su 的单字节文件后备缓冲区pipe_buffer 中设置 PIPE_BUF_FLAG_CAN_MERGE,并且pam_permit.so,最后以 su - root 收尾。为简单起见,该 PoC 假定并针对 x86-64。理论上,该漏洞不应与架构相关。
为完整起见,穷举如下:
6.19.10-300.fc44.x86_64,或 Ubuntu 24.04.4,内核为 6.17.0-40-generic(您可以尝试移除这些检查,但其他发行版/内核版本可能需要针对目标进行定制/布置)pam_rootok.so 的 /etc/pam.d/su,以及 pam_rootok.so 和 pam_permit.so PAM 模块CAP_NET_ADMIN/dev/net/tun,以及 TUN、Open vSwitch datapath、netkit 和 VXLAN 内核支持ip、unshare、true 和 su,以及在 Ubuntu 上如果直接 unshare -Urn 被拒绝时所需的 aa-exec 和已加载的 trinity 配置文件两个目标均在 29 个 vCPU、4 GB 和 32 GB RAM 下测试过,后者更可靠。其他 CPU/内存组合可能需要更多布置,并可能将覆写重定向到无关内存。
以具有 passwd 条目的非特权用户身份运行。
python3 tunderflow_root_repro.py