漏洞关键信息 标题 Incorrect argument escaping under MSYS2/Git Bash on Windows can lead to destructive file operations 严重性 Moderate CVSS v3 Score: 6.3/10 影响的包和版本 symfony/process (Composer) - Affected versions: =6.4, =7.3, =7.4, =8.0, =6.4, =7.3, =7.4, =8.0, <8.0.5 - Patched versions: 5.4.51, 6.4.33, 7.3.11, 7.4.5, 8.0.5 漏洞描述 Symfony Process组件在Windows环境下未正确处理某些特殊字符(如 ),导致逸出参数时出现问题。 当PHP从MSYS2环境执行且Symfony Process调用原生Windows可执行文件时,MSYS2的参数/路径转换可能会错误处理包含这些字符的未加引号参数。 这可能导致生成的进程接收到与Symfony预期不同的损坏/截断参数。 影响 应用程序或工具(如Composer脚本)如果使用Symfony Process调用文件管理命令(如 , ),且路径参数包含 ,MSYS2转换层可能在运行时修改参数。 在受影响的设置中,可能导致操作在意外路径下执行,包括删除整个目录或驱动器的内容。 解决方案 升级到包含#63164修复的Symfony版本(更新Windows参数逸出以确保包含 和其他MSYS2敏感字符的参数被正确引用/逸出)。 5.4分支的补丁可在 ec154f6 获取。 缓解措施/替代方案 避免在Windows中从MSYS2环境运行PHP/工具,建议使用cmd.exe或PowerShell进行生成原生可执行文件的工作流程。 避免在Git Bash/MSYS2下将包含 的路径传递给Symfony Process。 如适用,配置MSYS2禁用或限制参数转换,理解这可能影响其他工具行为(例如通过 )。