针对 snapd 中本地权限提升漏洞(CVE-2026-3888)的概念验证。该漏洞允许本地非特权攻击者在受影响的 Ubuntu 系统上,通过在 systemd-tmpfiles 删除私有目录 /tmp/.snap 后重新创建该目录,将权限提升至 root。
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H该漏洞源于两个特权工具之间的非预期交互:
攻击者可以通过操纵 systemd-tmpfiles 的清理周期来利用此竞态条件。一旦 /tmp/.snap 目录被删除,攻击者便用恶意载荷重新创建它。在下一次沙箱初始化期间,snap-confine 会以 root 身份挂载这些文件,从而允许在特权上下文中执行任意代码。
root 访问权限。警告: 此漏洞利用程序仅用于教育和授权安全研究目的。使用风险自负。
gcc 编译器(sudo apt install build-essential)。/tmp/.snap 目录必须已被 systemd-tmpfiles 删除。这在 Ubuntu 24.04 中发生在 30 天后,在更高版本中发生在 10 天后。你可以使用 sudo rm -rf /tmp/.snap 手动模拟清理。克隆此仓库:
git clone https://github.com/tu-usuario/cve-2026-3888-poc.git
cd cve-2026-3888-poc
安装依赖项:
pip install -r requirements.txt
运行 PoC: 该脚本将验证漏洞、创建恶意库并触发漏洞利用。
python3 cve_2026_3888_poc.py
验证结果:
如果漏洞利用成功,将创建一个 /tmp/pwn.txt 文件,其中包含以 root 身份执行的 id 命令的输出。
清理系统: 要删除漏洞利用程序创建的工件,请运行:
python3 cve_2026_3888_poc.py --cleanup