CVE-2025-59829CVE-2025-59829是Anthropic公司开发的智能体编程工具Claude Code中存在的一个权限绕过漏洞。该漏洞影响Claude Code 1.0.120之前的所有版本。Claude Code是一款agentic coding工具,能够在用户授权下访问和修改本地文件系统中的文件。该工具设计了一套权限管理系统,允许用户通过配置拒绝规则(deny rules)来限制Claude Code对特定文件或目录的访问权限。然而,在1.0.120之前的版本中,Claude Code的权限检查逻辑未能正确处理符号链接(symlink)的情况。当用户明确拒绝了Claude Code对某个文件的访问权限时,如果存在一个指向该文件的符号链接,并且Claude Code能够访问该符号链接,那么它可以通过符号链接间接访问被拒绝的文件,从而绕过权限限制。该漏洞的CVSS 3.1评分为6.5分,属于中危级别。其攻击向量为网络(AV:N),无需认证(PR:N),但需要用户交互(UI:R),对机密性影响为高(C:H),对完整性和可用性无影响。该漏洞由GitHub安全顾问团队发现并报告,Anthropic公司已在1.0.120版本中修复了此问题。使用标准自动更新功能的用户将自动获得修复,而手动更新的用户需要主动升级到最新版本。
Claude Code的权限管理系统通过解析用户配置的拒绝规则列表(如.deny规则)来判断是否允许对特定路径进行文件操作。在正常情况下,当Claude Code尝试访问一个文件时,系统会检查目标路径是否匹配任何拒绝规则,如果匹配则拒绝访问。然而,该漏洞的根本原因在于权限检查逻辑没有正确处理符号链接。
具体技术原理如下:
1. 符号链接(symlink)是一种特殊的文件类型,它指向另一个文件或目录的路径。当操作系统或应用程序通过符号链接访问目标时,通常会解析(resolve)符号链接以获取实际的目标路径。
2. Claude Code的权限检查在1.0.120之前的版本中,仅对符号链接本身的路径进行了权限检查,而没有解析符号链接指向的实际目标路径。这意味着如果用户拒绝了访问/path/to/secret.txt,但创建了一个符号链接/path/to/link.txt -> /path/to/secret.txt,Claude Code检查的是link.txt的路径权限,而非secret.txt的权限。
3. 由于符号链接本身的路径不在拒绝列表中,权限检查通过,Claude Code便可以通过符号链接访问到被保护的文件内容。
4. 这种攻击需要攻击者能够在目标系统上创建符号链接,并且需要用户交互(如运行Claude Code并授权某些操作),因此攻击复杂度相对较低但需要特定条件。
修复方案是在权限检查时使用realpath()或类似函数解析符号链接,获取实际的目标路径后再进行权限比对,确保拒绝规则能够覆盖通过符号链接间接访问的情况。