漏洞总结 漏洞概述 这是一个关于 Nix 构建系统沙箱逃逸(Sandbox Escape)的修复提交。在 Nix 构建过程中,如果构建程序(builder)直接覆盖输出文件,它可能持有指向该文件的陈旧文件描述符(stale file descriptor)。这使得构建程序能够继续向沙箱外的文件写入数据,从而破坏沙箱隔离机制。 影响范围 仓库: 文件: 函数: 修复方案 修改了文件输出的处理逻辑,不再直接覆盖原文件,而是采用“复制后重命名”的方式: 1. 先将构建结果 到一个临时文件 ( )。 2. 再将临时文件 重命名为实际输出路径 ( )。 代码变更 (Diff): 修复目的注释:** "Replace the output by a fresh copy of itself to make sure that there's no stale file descriptor pointing to it"(用自身的副本替换输出,以确保没有指向它的陈旧文件描述符)。