Subversion is a version control system intended to eventually replace CVS. Like CVS, it has an optional client-server architecture (where the server can be an Apache server running mod_svn, or an ssh program as in CVS’s :ext: method). In addition to supporting the features found in CVS, Subversion also provides support for moving and copying files and directories.
Specially crafted ‘ssh://...’ URLs may allow the owner of the repository to execute arbitrary commands on client’s machine if those commands are already installed on the client’s system. This is especially dangerous when the third-party repository has one or more submodules with specially crafted ‘ssh://...’ URLs. Each time the repository is recursively cloned or submodules are updated the payload will be triggered.
A remote attacker, by enticing a user to clone a specially crafted repository, could possibly execute arbitrary code with the privileges of the process.
There are several alternative ways to fix this vulnerability. Please refer to Subversion Team Announce for more details.
All Subversion 1.9.x users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose ">=dev-vcs/subversion-1.9.7"
All Subversion 1.8.x users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose ">=dev-vcs/subversion-1.8.18"