CVE-2025-55132CVE-2025-55132是Node.js权限模型中的一个安全漏洞。该漏洞允许攻击者在仅具有读权限的情况下,通过Node.js的`futimes()`函数修改文件的访问时间(atime)和修改时间(mtime)时间戳。问题在于`futimes()`函数不像`utimes()`那样执行预期的写权限检查,这导致即使文件或目录被设置为只读权限,攻击者仍然可以修改文件元数据。此漏洞影响使用Node.js权限模型的用户,包括v20、v22、v24和v25版本。攻击者可能利用此漏洞修改文件时间戳以掩盖恶意活动痕迹,降低日志和审计系统的可靠性。此外,该漏洞可能被用于破坏数字取证调查,因为文件访问和修改的时间信息对于事件重建至关重要。企业环境中,时间戳篡改可能导致合规性问题,因为许多安全策略依赖于准确的文件时间审计。
Node.js的权限模型旨在通过--allow-frozen-readable-path和--experimental-security-mode等标志限制文件系统访问。然而,该模型在处理`futimes()`系统调用时存在缺陷。`futimes()`是用于修改文件时间戳的POSIX函数,它接收文件描述符而非文件路径作为参数。在Node.js的权限检查实现中,当使用`fs.utimes()`时,系统会正确验证写权限;但当通过文件描述符调用`futimes()`时,权限检查被绕过。攻击者首先需要获得目标文件的文件描述符(可通过只读文件操作获得),然后使用底层API(如`fsync`模块或原生addon)调用`futimes()`,即可在不具有写权限的情况下修改时间戳。这种绕过方式特别危险,因为它允许修改只读目录中的文件时间戳,可能导致文件系统审计机制失效。漏洞的根本原因在于Node.js的权限模型未正确隔离文件系统元数据修改操作与文件内容访问操作。