Apache Subversion(SVN)是一款广受开发者欢迎的版本控制系统,用于维护源代码、网页和文档。最近,Apache Subversion中发现了一个关键的安全漏洞,CVE-2024-45720(CVSS评分8.2)。该漏洞主要影响Windows平台,可能导致命令行参数注入,从而执行非预期的程序。
根据Apache Subversion项目的安全公告,该漏洞源于Windows平台上命令行参数的处理方式。具体来说,当命令行参数传递给svn.exe等Subversion可执行文件时,会发生“最佳匹配”字符编码转换。公告解释道:“攻击者如果能够运行Subversion的一个可执行文件(svn.exe等),并使用特制的命令行参数字符串,可以利用字符编码转换过程导致意外的命令行参数解释,从而导致参数注入和其他程序的执行。”
这个漏洞因为Windows处理命令行参数的方式与UNIX-like平台不同而变得更加严重。在Windows上,命令行参数作为单个字符串传递给程序,然后程序必须将其解析为单独的参数。在这个过程中,特别是当涉及到某些Unicode字符时,会发生“最佳匹配”字符编码转换,可能导致不可预测的结果,包括执行恶意命令。
公告指出:“已知Subversion在Windows 10和11上受到影响;它可能也会影响大多数其他版本的Windows。”
尽管这个问题仅限于Windows平台,但Apache Subversion在开发环境中的广泛使用增加了风险,因为许多团队依赖Subversion来管理跨各种项目的版本控制过程。这个漏洞对UNIX-like平台(如Linux和macOS)没有影响,因为这些平台处理命令行参数的方式不同。
该漏洞由DEVCORE研究团队的安全研究人员Orange Tsai和Splitline报告,该团队以识别关键软件漏洞而闻名。
CVE-2024-45720漏洞已在Subversion 1.14.4中得到修复,强烈建议所有Windows平台的用户升级到这个修复版本。对于那些无法立即升级的用户,公告提供了一个临时缓解措施,即应用Subversion项目提供的补丁。