[!WARNING] 本 PoC 仅用于帮助防御者、维护者和经授权的安全团队验证其拥有或明确获授权测试的系统上的补丁、缓解措施、检测规则和暴露情况。
您需自行负责确保对本材料的使用是合法、经授权、受控的,并在隔离的测试环境中进行。
[!WARNING] 本 PoC 具有破坏性。 它会覆写约 8 MiB 的内核内存,并使
diagspill_hold牺牲内存持有者所持有的已损坏页表一直保留到重启。终止该进程可能导致内核不稳定。无关内存可能被破坏,机器可能发生 panic。请仅在一次性虚拟机/一次性主机上运行。
该 PoC:
sudo 打开一个 root shell,并分离持有已损坏映射的进程。为简单起见,该 PoC 假设并针对 x86-64。理论上,该漏洞不应是特定于架构的。
为完整起见,详尽列举如下:
6.17.0-35-generic,或 Fedora 44 搭配
6.19.10-300.fc44.x86_64(您可以尝试移除这些检查,但其他发行版/内核版本可能需要针对目标进行定制/布置)MemTotal 介于 3,700,000 到 4,200,000 KiB 之间_ 或 -/root 的读取权限,也没有免密码 sudosctp_diag,支持透明大页分配,具有足够的进程/文件限制以容纳 2,048 个工作进程和诊断套接字墙,以及足够的 x86-64 地址空间和内存以在 Ubuntu 上保留约 2,343 MiB 的页表,或在 Fedora 上保留 3,125 MiB/etc/sudoers.d include 和一个可执行的 /usr/bin/sudo/usr/bin/env、带有 libc 和 Linux UAPI 开发头文件的 cc、id、sudo、true、sh 和 rm该 PoC 对 vCPU 数量和 RAM 非常敏感,因此它强制要求 4 个 vCPU 和 4 GB RAM。对于其他 vCPU/内存组合,您很可能需要针对目标进行定制/布置。
请以具有 passwd 条目的非特权用户身份运行它;该 PoC 构建大型 SCTP 关联可能需要一些时间。
python3 diagspill_root_repro.py
运行后(无论成功与否),请重启机器以释放 diagspill_hold,以确保安全。如果您直接终止它,几乎肯定会导致内核不稳定。