CVE-2026-21716CVE-2026-21716 是 Node.js 权限模型中的一个安全绕过漏洞。由于对 CVE-2024-36137 的修复不完整,Promise API 中的 `FileHandle.chmod()` 和 `FileHandle.chown()` 方法缺少必要的权限检查。攻击者可利用此漏洞,在使用受限 `--allow-fs-write` 权限时,通过已打开的文件描述符修改文件权限和所有权,从而绕过预期的写入限制。
该漏洞源于 Node.js 权限模型在修复 CVE-2024-36137 时的逻辑缺陷。虽然基于回调的 `fs.fchmod()` 和 `fs.fchown()` 已正确实施了权限检查,但基于 Promise 的 `FileHandle.chmod()` 和 `FileHandle.chown()` 却遗漏了这些关键的安全校验。当 Node.js 进程使用 `--permission` 模式启动,并配置了受限的 `--allow-fs-write`(例如仅允许写入特定目录)时,攻击者可以利用此缺陷。攻击者首先在允许的范围内打开文件获取 `FileHandle` 对象,随后调用该对象的 `chmod` 或 `chown` 方法。由于系统未拦截这些操作,攻击者可以修改已打开文件的权限或所有者,进而可能导致敏感文件被篡改或权限提升,破坏了系统的完整性约束。