CVE-2025-67508CVE-2025-67508是Garden公司gardenctl工具中的一个高危安全漏洞,CVSS评分达到8.4。该漏洞影响gardenctl 2.11.0及以下所有版本,攻击者需要具有Gardener项目的管理权限才能利用此漏洞。漏洞的根本原因在于gardenctl在处理凭证时未对非POSIX shell环境(如Fish和PowerShell)进行充分的安全校验。当使用这些shell时,攻击者可以构造恶意的凭证值,这些凭证值在基础设施Secret对象中被使用时,会在Fish或PowerShell环境中被评估执行,从而突破预期的字符串上下文限制,实现命令注入攻击。Gardener是一个开源的Kubernetes管理平台,广泛应用于云原生环境的自动化管理。该漏洞的利用需要攻击者具备较高的权限(项目管理员),并且需要一定的用户交互(UI:R),但一旦成功,攻击者可以在服务运营商的环境中执行任意命令,造成严重的机密性、完整性和可用性影响。该漏洞已于2025年12月12日披露,并在gardenctl 2.12.0版本中得到修复。
gardenctl是Gardener项目的命令行客户端,用于配置对集群和云提供商CLI工具的访问。该漏洞存在于gardenctl处理凭证值的逻辑中。当用户使用非POSIX兼容的shell(如Fish或PowerShell)时,gardenctl会将凭证值传递给这些shell进行解析和执行。攻击者(具有Gardener项目管理员权限)可以构造包含特殊字符和命令的恶意凭证值,这些值被存储在基础设施Secret对象中。当Gardener服务运营商在Fish或PowerShell环境中操作时,这些恶意凭证值会被shell解释执行,导致命令注入。具体攻击流程包括:1)攻击者创建包含恶意命令的凭证值,利用shell的字符串解析特性;2)这些凭证被存储为Kubernetes Secret;3)服务运营商使用gardenctl在Fish/PowerShell环境中访问集群时触发漏洞;4)恶意命令在服务运营商的上下文中执行,可能导致横向移动或权限提升。攻击成功的关键在于shell对特殊字符(如反引号、$()等)的命令替换处理,以及凭证值在非安全上下文中的直接使用。