Mercurial > public > mercurial-scm > hg
diff mercurial/util.py @ 33641:173ecccb9ee7 stable
subrepo: add tests for svn rogue ssh urls (SEC)
'ssh://' has an exploit that will pass the url blindly to the ssh
command, allowing a malicious person to have a subrepo with
'-oProxyCommand' which could run arbitrary code on a user's machine. In
addition, at least on Windows, a pipe '|' is able to execute arbitrary
commands.
When this happens, let's throw a big abort into the user's face so that
they can inspect what's going on.
author | Sean Farley <sean@farley.io> |
---|---|
date | Mon, 31 Jul 2017 16:44:17 -0700 |
parents | 53224b1ffbc2 |
children | 943c91326b23 |
line wrap: on
line diff
--- a/mercurial/util.py Mon Jul 31 16:04:44 2017 -0700 +++ b/mercurial/util.py Mon Jul 31 16:44:17 2017 -0700 @@ -2890,7 +2890,8 @@ Raises an error.Abort when the url is unsafe. """ path = urlreq.unquote(path) - if path.startswith('ssh://-') or '|' in path: + if (path.startswith('ssh://-') or path.startswith('svn+ssh://-') + or '|' in path): raise error.Abort(_('potentially unsafe url: %r') % (path,))