| Subversion versions up to and including 1.0.4 have a potential |
| Denial of Service and Heap Overflow issue related to the parsing of |
| strings in the 'svn://' family of access protocols. |
| |
| This affects only sites running svnserve. It does not affect |
| 'http://' access -- repositories served only by Apache/mod_dav_svn |
| do not have this vulnerability. |
| |
| Details: |
| ======== |
| |
| The svn protocol sends strings as a length followed by the string. The |
| parser would trust that the sender was providing an accurate length of |
| the string and would allocate sufficent memory to store the entire |
| string. This would allow the sender of a string to Denial of Service |
| the other side by suggesting that the string is very large. |
| Additionally, if the size given is large enough it may cause the integer |
| holding the size to wrap, thus allocating less memory than the string |
| length and resulting in a heap overflow. |
| |
| The parsing code with the flaw is shared by both the svnserve server and |
| clients using the svn://, svn+ssh:// and other tunneled svn+*:// |
| methods. |
| |
| Severity: |
| ========= |
| |
| Severity ranges from "Denial of Service" to, potentially, "Arbitrary |
| Code Execution", depending upon how skilled the attacker is and the |
| ABI specifics of your platform. |
| |
| Since the error is in the parsing of the protocol, including the parsing |
| of authentication, the server vulnerabilities can be triggered without |
| read or write access to the repository. So any svnserve process that an |
| attacker can connect to is vulnerable even if they do not have read or |
| write access. |
| |
| The Denial of Service attack is reasonably easy to carry out, while |
| exploiting the heap overflow is more difficult. There are no known |
| exploits in the wild at the time of this advisory. |
| |
| Workarounds: |
| ============ |
| |
| Disable svnserve and use DAV (http://) instead. |
| |
| Recommendations: |
| ================ |
| |
| We recommend all users upgrade to 1.0.5. |
| |
| References: |
| =========== |
| |
| CAN-2004-0413: Subversion svn:// protocol string parsing error. |