基本
GitHub 安全通报: GHSA-g3g9-5vj6-r3gj
CVE ID: CVE-2026-39860
本次的漏洞是一个沙箱逃逸漏洞, 直接原因是 derivation-builder.cc 中 copyFile 后跟路径可因为符号链接重定向到沙箱外的路径, 同时又因为 nix-daemon 以 root 权限运行, 因此达成了一个任意文件读写
但还有一层间接原因是 —— nix 中对于 nix-daemon 的 allowed-users 默认为所有用户, 因此大大提升了该漏洞的风险, 变成了任意用户可触发的高危漏洞
该漏洞仅对于多用户部署生效, 而单用户部署和个人电脑上使用的用户则没什么严重影响, 因为一般只有一个实际操作用户并且具有管理员权限
但漏洞对于服务器用户的影响极大, 有很大的供应链攻击风险
修复
修复补丁为 NixOS/nix@a760af8
修复版本: 2.34.5, 2.33.4, 2.32.7, 2.31.4, 2.30.4, 2.29.3, 2.28.6
补丁中将拷贝的目标目录限定在了 store 中的无法被其他用户访问的一个临时目录而不是 chroot 以避免了对沙箱的逃逸风险
虽然这个补丁确实是没问题的, 但是本次漏洞修复的实施有点问题
修复补丁采用比较明显的单个 commit 直接修补而不是在多个补丁中隐蔽的修复。同时在补丁发布前就直接披露了该漏洞, 我认为这样反而提高了用户侧的风险