Subversion is vulnerable to a remote Denial of Service that may be exploitable to execute arbitrary code on the server running svnserve.
|Package||dev-util/subversion on all architectures|
|Affected versions||<= 1.0.4|
|Unaffected versions||>= 1.0.4-r1|
Subversion is a revision control system that aims to be a "compelling replacement for CVS". It enjoys wide use in the open source community. svnserve allows access to Subversion repositories using URIs with the svn://, svn+ssh://, and other tunelled svn+*:// protocols.
The svn protocol parser trusts the indicated length of a URI string sent by a client. This allows a client to specify a very long string, thereby causing svnserve to allocate enough memory to hold that string. This may cause a Denial of Service. Alternately, given a string that causes an integer overflow in the variable holding the string length, the server might allocate less memory than required, allowing a heap overflow. This heap overflow may then be exploitable, allowing remote code execution. The attacker does not need read or write access to the Subversion repository being served, since even un-authenticated users can send svn protocol requests.
Ranges from remote Denial of Service to potential arbitrary code execution with privileges of the svnserve process.
Servers without svnserve running are not vulnerable. Disable svnserve and use DAV for access instead.
All users should upgrade to the latest version of Subversion.
# emerge sync # emerge -pv ">=dev-util/subversion-1.0.4-r1" # emerge ">=dev-util/subversion-1.0.4-r1"
June 10, 2004
June 10, 2004: 01