CVE-2025-55130CVE-2025-55130是Node.js权限模型中的一个高危安全漏洞,CVSS评分达到9.1分(严重级别)。该漏洞存在于Node.js的权限控制系统,当使用--allow-fs-read和--allow-fs-write标志限制文件系统访问时,攻击者可以通过精心构造的相对符号链接路径绕过这些安全限制。漏洞的核心问题在于权限检查机制未能正确解析和验证符号链接所指向的真实路径,允许攻击者通过链接链和目录遍历的方式逃脱允许访问范围的约束。对于仅被授予当前目录访问权限的脚本,攻击者可以利用此漏洞读取系统中的敏感文件,如/etc/passwd、SSH密钥、配置文件等,从而可能导致完整的系统 compromise。该漏洞影响Node.js v20、v22、v24和v25版本,破坏了权限模型提供的预期隔离保证,使得本应受限制的文件操作变得毫无约束。
Node.js权限模型旨在通过--allow-fs-read和--allow-fs-write标志限制脚本的文件系统访问能力,防止恶意代码读取敏感文件或写入关键系统资源。然而,该模型在处理符号链接时存在缺陷:权限检查逻辑仅验证路径的表面形式,而未递归解析符号链接指向的真实绝对路径。攻击者可以创建一系列目录和符号链接的链式结构,利用相对路径(如../../)和符号链接的组合,构造出指向受限区域的路径。当脚本使用fs.readFile()等API访问这些精心构造的路径时,权限检查会错误地认为该路径在允许范围内,从而放行操作。例如,一个被限制在/tmp目录的脚本,可以通过创建指向/etc的符号链接,成功读取/etc/passwd等敏感文件。这种攻击方式完全绕过了权限模型的安全边界,使得攻击者能够访问任何文件,包括系统配置文件、密钥文件、用户数据等高价值目标。