Back to Advisories

Advisories

Apache HTTP Server mod_proxy_ftp Wildcard Characters Cross-Site Scripting

CVE: CVE-2008-2939

Summary

August 5, 2008 - The mod_proxy_ftp module of the Apache HTTP Server is vulnerable to a cross-site scripting vulnerability when handling requests with wildcard characters (aka globbing characters).

Affected system(s):

KNOWN VULNERABLE:

  • Apache HTTP Server 2.2.9 (and earlier 2.2.x versions)
  • Apache HTTP Server 2.0.63 (and earlier 2.0.x versions)

NOT VULNERABLE:

  • Apache HTTP Server 1.3.x (because mod_proxy_ftp doesn't support wildcard characters)

Vendor Info

Apache HTTP Server Project
http://httpd.apache.org

The developers were notified of this vulnerability on July 28, 2008 via the private security mailing list security@apache.org. They acknowledged it within 12 hours. On July 29, they assigned it a CVE ID.On August 5, the vulnerability was fixed in all SVN branches:

  • Commit to main trunk:
    http://svn.apache.org/viewvc?view=rev&revision=682868
  • Commit to 2.2 branch:
    http://svn.apache.org/viewvc?view=rev&revision=682870
  • Commit to 2.0 branch:
    http://svn.apache.org/viewvc?view=rev&revision=682871

Solutions

Upgrade to Apache HTTP Server 2.2.10 or 2.0.64 (as of August 6, these have not been released yet), or apply the patch from SVN commit 682868.

Detailed Analysis

When Apache HTTP Server is configured with proxy support ("ProxyRequests On" in the configuration file), and when mod_proxy_ftp is enabled to support FTP-over-HTTP, requests containing wildcard characters (asterisk, tilde, opening square bracket, etc) such as:

GET ftp://host/*<foo> HTTP/1.0

lead to cross-site scripting in the response returned by mod_proxy_ftp:

[...]
<h2>Directory of <a href="/">ftp://host</a>/*<foo></h2>
[...]

To exploit this vulnerability, 'host' must be running an FTP server,and the last directory component of the path (the XSS payload) mustbe composed of at least 1 wildcard character and must not contain any forward slashes. In practice, this last requirement is not an obstacle at all to develop working exploits, example:

ftp://host/*<img%20src=""%20onerror="alert(42)">

Credit: Discovered by Marc Bevand of Rapid7.

Disclaimer & Advisory

Rapid7, LLC is not responsible for the misuse of the information provided in our security advisories. These advisories are a service to the professional security community. There are NO WARRANTIES with regard to this information. Any application or distribution of this information constitutes acceptance AS IS, at the user's own risk. This information is subject to change without notice.

This advisory Copyright (C) 2008 Rapid7, LLC. Permission is hereby granted to redistribute this advisory, providing that no changes are made and that the copyright notices and disclaimers remain intact.