diff options
author | Stefan Fritsch <sf@debian.org> | 2011-12-03 17:14:38 +0000 |
---|---|---|
committer | Stefan Fritsch <sf@sfritsch.de> | 2012-01-02 10:37:15 +0100 |
commit | b120692f5cd830a753e55bb8baa5f51fe869c1d0 (patch) | |
tree | dae963dac74cebdc23fcd07e10d9d152523c96ac /debian | |
parent | 94765f73b72d25bd84406a2001afbc14a1b46140 (diff) | |
download | apache2-b120692f5cd830a753e55bb8baa5f51fe869c1d0.tar.gz |
Fix CVE-2011-4317
git-svn-id: svn+ssh://svn.debian.org/svn/pkg-apache/trunk/apache2@1372 01b336ce-410b-0410-9a02-a0e7f243c266
Diffstat (limited to 'debian')
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | debian/patches/00list | 1 | ||||
-rw-r--r-- | debian/patches/084_CVE-2011-4317.dpatch | 70 |
3 files changed, 74 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index cad57fad..67f42828 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,8 @@ apache2 (2.2.21-3) UNRELEASED; urgency=low + * Fix CVE-2011-4317: Prevent unintended pattern expansion in some + reverse proxy configurations. (Similar to CVE-2011-3368, but different + attack vector.) * Fix broken link in docs. Closes: #650528 * Remove Tollef Fog Heen, Thom May, and Peter Samuelson from uploaders. Thanks for your work in the past. diff --git a/debian/patches/00list b/debian/patches/00list index 3748fd44..0681229f 100644 --- a/debian/patches/00list +++ b/debian/patches/00list @@ -23,6 +23,7 @@ 079_polish_translation.dpatch 082_ab_num_requests 083_CVE-2011-3368.dpatch +084_CVE-2011-4317.dpatch 099_config_guess_sub_update 200_cp_suexec.dpatch 201_build_suexec-custom.dpatch diff --git a/debian/patches/084_CVE-2011-4317.dpatch b/debian/patches/084_CVE-2011-4317.dpatch new file mode 100644 index 00000000..18f69a2a --- /dev/null +++ b/debian/patches/084_CVE-2011-4317.dpatch @@ -0,0 +1,70 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Upstream r1209432 + +@DPATCH@ +commit 318b86756de2049f652561e1a66420b4a92d4a7e +Author: Joe Orton <jorton@apache.org> +Date: Fri Dec 2 12:04:20 2011 +0000 + + Fix for additional cases of URL rewriting with ProxyPassMatch or + RewriteRule, where particular request-URIs could result in undesired + backend network exposure in some configurations. (CVE-2011-4317) + + Thanks to Prutha Parikh from Qualys for reporting this issue. + + * modules/proxy/mod_proxy.c (proxy_trans): Decline to handle the "*" + request-URI. Fail for cases where r->uri does not begin with a "/". + + * modules/mappers/mod_rewrite.c (hook_uri2file): Likewise. + + + git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1209432 13f79535-47bb-0310-9956-ffa450edef68 + +diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c +index 470e01c..d29cb45 100644 +--- a/modules/mappers/mod_rewrite.c ++++ b/modules/mappers/mod_rewrite.c +@@ -4419,6 +4419,18 @@ static int hook_uri2file(request_rec *r) + return DECLINED; + } + ++ if (strcmp(r->unparsed_uri, "*") == 0) { ++ /* Don't apply rewrite rules to "*". */ ++ return DECLINED; ++ } ++ ++ /* Check that the URI is valid. */ ++ if (!r->uri || r->uri[0] != '/') { ++ ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ++ "Invalid URI in request %s", r->the_request); ++ return HTTP_BAD_REQUEST; ++ } ++ + /* + * add the SCRIPT_URL variable to the env. this is a bit complicated + * due to the fact that apache uses subrequests and internal redirects +diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c +index 35195f8..8e90c9e 100644 +--- a/modules/proxy/mod_proxy.c ++++ b/modules/proxy/mod_proxy.c +@@ -655,6 +655,18 @@ static int proxy_trans(request_rec *r) + return OK; + } + ++ if (strcmp(r->unparsed_uri, "*") == 0) { ++ /* "*" cannot be proxied. */ ++ return DECLINED; ++ } ++ ++ /* Check that the URI is valid. */ ++ if (!r->uri || r->uri[0] != '/') { ++ ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, ++ "Invalid URI in request %s", r->the_request); ++ return HTTP_BAD_REQUEST; ++ } ++ + /* XXX: since r->uri has been manipulated already we're not really + * compliant with RFC1945 at this point. But this probably isn't + * an issue because this is a hybrid proxy/origin server. |