How is this any different than a SQL-injection attack?
Seems to me like git shouldn't be using the shell in order to invoke ssh at all.
Seems to me like git shouldn't be using the shell in order to invoke ssh at all.
The issue isn't one of shell quoting, but one of ssh treating the argument list ["ssh", "-oProxyCommand=something", "remote-cmd"] not as ["ssh", hostname, command] but as ["ssh", option, hostname].
Seems to me the the use of "=" notation for CLI args would be rife with situations like this.
Yikes...
[also, still going through the code, but it looks like they are setting up for a call to exec*()]