CVE-2025-61985CVE-2025-61985是OpenSSH在10.1版本之前存在的一个安全漏洞。该漏洞存在于SSH客户端处理ssh:// URI的过程中,允许在URI中包含空字符('\0')。当用户配置了ProxyCommand选项时,攻击者可以通过精心构造包含空字节的ssh:// URI来注入额外的命令参数,从而可能导致任意代码执行。
OpenSSH作为最广泛使用的SSH协议开源实现,广泛应用于各类服务器和客户端系统中,用于提供安全的远程登录和文件传输服务。该漏洞由本地攻击者触发,需要低权限用户身份,但无需用户交互即可利用。漏洞的CVSS评分为3.6分,虽然评分较低,但由于其可能导致代码执行的后果,仍然需要引起足够重视。
该漏洞已于2025年10月6日公开披露,OpenSSH团队在10.1p1版本中修复了此问题。建议所有使用受影响版本OpenSSH的用户尽快升级到最新版本,以消除安全风险。
该漏洞的根本原因在于OpenSSH SSH客户端在解析ssh:// URI时,未对URI中的空字符('\0',即NULL字节)进行充分的过滤和验证。在C语言中,字符串以空字符作为终止符,当攻击者在ssh:// URI中嵌入空字节时,可以截断后续的字符串处理逻辑。
具体利用方式如下:当用户配置了ProxyCommand选项(用于通过代理服务器建立SSH连接)时,OpenSSH会将ssh:// URI中的主机名等信息传递给ProxyCommand进行执行。如果URI中包含空字节,攻击者可以在空字节之后注入额外的shell命令。由于ProxyCommand是通过shell(如/bin/sh -c)执行的,注入的命令将以SSH客户端进程的权限运行。
例如,攻击者可以构造类似如下的URI:ssh://user@legitimate-host\0;malicious_command 的形式,当ProxyCommand处理该URI时,空字节截断了正常的命令字符串,而分号后的恶意命令将被shell解释执行。
利用条件包括:1)目标系统配置了ProxyCommand选项;2)攻击者能够控制传递给SSH客户端的URI参数;3)攻击者拥有本地低权限账户。由于需要本地访问和低权限认证,该漏洞的严重程度被评定为低危,但其代码执行潜力使其仍然是一个值得关注的安全问题。