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