]> source.dussan.org Git - redmine.git/commit
Merged r17060 from trunk to 3.4-stable (#27516)
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 7 Dec 2017 12:15:45 +0000 (12:15 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 7 Dec 2017 12:15:45 +0000 (12:15 +0000)
commit76dd10bd78bd43a458a9e72f6cc492e7e109f7c1
tree412ccd12ebc2fd7dbf269b397b3db964b944ade9
parent2e8d269c057c1a78499d6b60f313a39f6ac0b570
Merged r17060 from trunk to 3.4-stable (#27516)

mercurial: reject malicious command argument

We've got a security report from the Phabricator team, which basically says
--config and --debugger arguments can be injected anywhere to lead to an
arbitrary command execution.

https://secure.phabricator.com/rPa7921a4448093d00defa8bd18f35b8c8f8bf3314

This is a fundamental issue of the argument parsing rules in Mercurial, which
allows extensions to populate their parsing rules and such extensions can be
loaded by "--config extensions.<name>=". There's a chicken and egg problem.
We're working on hardening the parsing rules, but which won't come in by
default as it would be a behavior change.

This patch adds a verification to reject malicious command arguments as a
last ditch. The subsequent patches will fix the problem in more appropriate
way.

Contributed by Yuya Nishihara.

git-svn-id: http://svn.redmine.org/redmine/branches/3.4-stable@17066 e93f8b46-1217-0410-a6f0-8f06a7374b81
lib/redmine/scm/adapters/mercurial_adapter.rb
test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb