CVE-2025-64135Jenkins Eggplant Runner Plugin 0.0.1.301.v963cffe8ddb_8及之前版本存在安全配置错误漏洞。该插件将Java系统属性`jdk.http.auth.tunneling.disabledSchemes`设置为空值,从而禁用了Java运行时的安全保护机制。`jdk.http.auth.tunneling.disabledSchemes`属性用于控制HTTP代理认证中允许的隧道认证方案,默认情况下Java会禁用某些不安全的认证方案以防止潜在的安全风险。当该属性被设置为空值时,所有认证方案都被允许,可能导致代理认证凭据被窃取或中间人攻击。虽然CVSS评分为5.9(中等),但此漏洞可能与其他安全缺陷结合造成更严重的影响。 Jenkins是一个广泛使用的开源自动化服务器,其插件生态系统中存在此类配置错误可能影响大量使用该插件的Jenkins实例。
该漏洞源于Jenkins Eggplant Runner Plugin在初始化时错误地配置了Java系统属性`jdk.http.auth.tunneling.disabledSchemes`。在Java网络编程中,HTTP代理认证通过隧道(tunneling)机制实现,该机制使用CONNECT方法建立到目标服务器的隧道连接。`jdk.http.auth.tunneling.disabledSchemes`属性控制哪些认证方案被允许用于代理隧道认证。
默认情况下,Java运行时环境会禁用不安全的认证方案(如Basic认证),因为这些方案在非加密通道上传输凭据时存在风险。然而,当`jdk.http.auth.tunneling.disabledSchemes`被设置为空字符串时,Java运行时不再限制任何认证方案,导致所有方案都被允许。
攻击者可能利用此漏洞:1)通过中间人攻击拦截使用该插件的HTTP请求;2)窃取通过代理传输的认证凭据;3)在特定网络环境下劫持代理连接。由于该插件影响Jenkins构建流程中与外部系统的通信,攻击者可能获取构建凭据、源代码或敏感部署信息。