[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#833634: marked as done (jessie-pu: package apache2/2.4.10-10+deb8u6)



Your message dated Sat, 17 Sep 2016 13:08:06 +0100
with message-id <1474114086.2011.126.camel@adam-barratt.org.uk>
and subject line Closing p-u bugs for updates in 8.6
has caused the Debian Bug report #833634,
regarding jessie-pu: package apache2/2.4.10-10+deb8u6
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
833634: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833634
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu


Hi release team,

please review the following bug-fix update for inclusion into the next
stable point release. Full debdiff is attached.

Cheers,
Stefan

apache2 (2.4.10-10+deb8u6) jessie; urgency=medium

  * Fix race condition and logical error in init script. Thanks to Thomas
    Stangner for the patch. Closes: #822144
  * Remove links to manpages.debian.org in default index.html to avoid
    broken robots doing a DoS on the site. Closes: #821313
  * mod_socache_memcache: Increase idle timeout to 15s to allow keep-alive
    connections. Closes: #803035
  * mod_proxy_fcgi: Fix wrong behavior with 304 responses. Closes: #827472
  * Correct systemd-sysv-generator behavior by customizing some parameters.
    This fixes 'systemctl status' returning incorrect results.
    Closes: #827444
  * mod_proxy_html: Add missing config file mods-available/proxy_html.conf.
    This is intentionally not enabled during upgrade, to make it less
    likely to break existing setups. It will be enabled by a a2dismod/a2enmod
    cycle, though. Closes: #827258

 -- Stefan Fritsch <sf@debian.org>  Sun, 07 Aug 2016 12:58:11 +0200
diff -Nru apache2-2.4.10/debian/apache2.init apache2-2.4.10/debian/apache2.init
--- apache2-2.4.10/debian/apache2.init	2016-07-20 08:41:40.000000000 +0200
+++ apache2-2.4.10/debian/apache2.init	2016-08-07 12:56:37.000000000 +0200
@@ -139,6 +139,7 @@
 
 apache_wait_stop() {
 	local STATUS=$1
+	local METH=$2
 
 	if [ $STATUS != 0 ] ; then
 	        return $STATUS
@@ -146,11 +147,18 @@
 
 	PIDTMP=$(pidofproc -p $PIDFILE $DAEMON)
 	if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then
+
+	        if [ "$METH" = "kill" ]; then
+	            killproc -p $PIDFILE $DAEMON
+	        else
+	            $APACHE2CTL $METH > /dev/null 2>&1
+	        fi
+
 	        local i=0
 	        while kill -0 "${PIDTMP:-}" 2> /dev/null;  do
 	                if [ $i = '60' ]; then
-	                        break
 	                        STATUS=2
+	                        break
 	                fi
 	                [ "$VERBOSE" != no ] && log_progress_msg "."
 	                sleep 1
@@ -223,15 +231,13 @@
 	fi
 
 	if [ $AP_RET = 2 ] && apache_conftest ; then
-	        $APACHE2CTL $STOP > /dev/null 2>&1
-	        apache_wait_stop $?
+	        apache_wait_stop $? $STOP
 	        return $?
 	else
 	        if [ $AP_RET = 2 ]; then
-					clear_error_msg
+	                clear_error_msg
 	                APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX configtest failed, so we are trying to kill it manually. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!"
-	                killproc -p $PIDFILE $DAEMON
-	                apache_wait_stop $?
+	                apache_wait_stop $? "kill"
 	                return $?
 	        elif [ $AP_RET = 1 ] ; then
 	                APACHE2_INIT_MESSAGE="There are processes named 'apache2' running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand".
diff -Nru apache2-2.4.10/debian/apache2.install apache2-2.4.10/debian/apache2.install
--- apache2-2.4.10/debian/apache2.install	2016-07-20 08:41:40.000000000 +0200
+++ apache2-2.4.10/debian/apache2.install	2016-08-07 12:56:37.000000000 +0200
@@ -5,3 +5,4 @@
 debian/a2query					/usr/sbin
 debian/ask-for-passphrase			/usr/share/apache2/
 debian/debhelper/apache2-maintscript-helper	/usr/share/apache2/
+debian/forking.conf				/lib/systemd/system/apache2.service.d/forking.conf
diff -Nru apache2-2.4.10/debian/apache2.postinst apache2-2.4.10/debian/apache2.postinst
--- apache2-2.4.10/debian/apache2.postinst	2016-07-20 08:41:40.000000000 +0200
+++ apache2-2.4.10/debian/apache2.postinst	2016-08-07 12:56:45.000000000 +0200
@@ -270,6 +270,21 @@
 	fi
 }
 
+is_problematic_index_html () {
+	local FILE="$1"
+	[ -f "$FILE" ] || return 1
+	local MD5=$(md5sum "$FILE" 2> /dev/null |cut -d' ' -f 1)
+	[ -n "$MD5" ] || return 1
+	grep -q "$MD5" <<- EOF
+	1736dfc80cf1f5a8966c096a0b094377
+	776221a94e5a174dc2396c0f3f6b6a74
+	51a41c3207374dad24ec64a0f2646bdc
+	c481228d439cbb54bdcedbaec5bbb11a
+	3183a3d71d86bcc88aaf3ca5cbbefb45
+	74cec59a19e5d16f7cc6a2445e35fa3b
+	EOF
+}
+
 # XXX: This site is installed in the apache2-data package. Should the postinst
 # scriptlet move there too?
 install_default_files()
@@ -292,6 +307,14 @@
 		if $do_copy ; then
 			cp /usr/share/apache2/default-site/index.html /var/www/html/index.html
 		fi
+	else
+		# see #821313
+		for dir in /var/www /var/www/html ; do
+			local file=$dir/index.html
+			if is_problematic_index_html $file ; then
+				cp /usr/share/apache2/default-site/index.html $file
+			fi
+		done
 	fi
 }
 
diff -Nru apache2-2.4.10/debian/changelog apache2-2.4.10/debian/changelog
--- apache2-2.4.10/debian/changelog	2016-07-20 08:42:34.000000000 +0200
+++ apache2-2.4.10/debian/changelog	2016-08-07 13:02:55.000000000 +0200
@@ -1,3 +1,22 @@
+apache2 (2.4.10-10+deb8u6) jessie; urgency=medium
+
+  * Fix race condition and logical error in init script. Thanks to Thomas
+    Stangner for the patch. Closes: #822144
+  * Remove links to manpages.debian.org in default index.html to avoid
+    broken robots doing a DoS on the site. Closes: #821313
+  * mod_socache_memcache: Increase idle timeout to 15s to allow keep-alive
+    connections. Closes: #803035
+  * mod_proxy_fcgi: Fix wrong behavior with 304 responses. Closes: #827472
+  * Correct systemd-sysv-generator behavior by customizing some parameters.
+    This fixes 'systemctl status' returning incorrect results.
+    Closes: #827444
+  * mod_proxy_html: Add missing config file mods-available/proxy_html.conf.
+    This is intentionally not enabled during upgrade, to make it less
+    likely to break existing setups. It will be enabled by a a2dismod/a2enmod
+    cycle, though. Closes: #827258
+
+ -- Stefan Fritsch <sf@debian.org>  Sun, 07 Aug 2016 12:58:11 +0200
+
 apache2 (2.4.10-10+deb8u5) jessie-security; urgency=high
 
   * Non-maintainer upload by the Security Team.
diff -Nru apache2-2.4.10/debian/config-dir/mods-available/proxy_html.conf apache2-2.4.10/debian/config-dir/mods-available/proxy_html.conf
--- apache2-2.4.10/debian/config-dir/mods-available/proxy_html.conf	1970-01-01 01:00:00.000000000 +0100
+++ apache2-2.4.10/debian/config-dir/mods-available/proxy_html.conf	2016-07-21 23:15:10.000000000 +0200
@@ -0,0 +1,75 @@
+# Configuration example.
+#
+# For detailed information about these directives see
+# <URL:http://httpd.apache.org/docs/2.4/mod/mod_proxy_html.html>
+# and for mod_xml2enc see
+# <URL:http://httpd.apache.org/docs/2.4/mod/mod_xml2enc.html>
+#
+
+# All knowledge of HTML links has been removed from the mod_proxy_html
+# code itself, and is instead read from httpd.conf (or included file)
+# at server startup.  So you MUST declare it.  This will normally be
+# at top level, but can also be used in a <Location>.
+#
+# Here's the declaration for W3C HTML 4.01 and XHTML 1.0
+
+ProxyHTMLLinks	a		href
+ProxyHTMLLinks	area		href
+ProxyHTMLLinks	link		href
+ProxyHTMLLinks	img		src longdesc usemap
+ProxyHTMLLinks	object		classid codebase data usemap
+ProxyHTMLLinks	q		cite
+ProxyHTMLLinks	blockquote	cite
+ProxyHTMLLinks	ins		cite
+ProxyHTMLLinks	del		cite
+ProxyHTMLLinks	form		action
+ProxyHTMLLinks	input		src usemap
+ProxyHTMLLinks	head		profile
+ProxyHTMLLinks	base		href
+ProxyHTMLLinks	script		src for
+
+# To support scripting events (with ProxyHTMLExtended On),
+# you'll need to declare them too.
+
+ProxyHTMLEvents	onclick ondblclick onmousedown onmouseup \
+		onmouseover onmousemove onmouseout onkeypress \
+		onkeydown onkeyup onfocus onblur onload \
+		onunload onsubmit onreset onselect onchange
+
+# If you need to support legacy (pre-1998, aka "transitional") HTML or XHTML,
+# you'll need to uncomment the following deprecated link attributes.
+# Note that these are enabled in earlier mod_proxy_html versions
+#
+# ProxyHTMLLinks	frame		src longdesc
+# ProxyHTMLLinks	iframe		src longdesc
+# ProxyHTMLLinks	body		background
+# ProxyHTMLLinks	applet		codebase
+#
+# If you're dealing with proprietary HTML variants,
+# declare your own URL attributes here as required.
+#
+# ProxyHTMLLinks	myelement	myattr otherattr
+#
+###########
+# EXAMPLE #
+###########
+#
+# To define the URL /my-gateway/ as a gateway to an appserver with address
+# http://some.app.intranet/ on a private network, after loading the
+# modules and including this configuration file:
+#
+# ProxyRequests Off  <-- this is an important security setting
+# ProxyPass /my-gateway/ http://some.app.intranet/
+# <Location /my-gateway/>
+#	ProxyPassReverse /
+#	ProxyHTMLEnable On
+#	ProxyHTMLURLMap http://some.app.intranet/ /my-gateway/
+#	ProxyHTMLURLMap / /my-gateway/
+# </Location>
+#
+# Many (though not all) real-life setups are more complex.
+#
+# See the documentation at
+# http://apache.webthing.com/mod_proxy_html/
+# and the tutorial at
+# http://www.apachetutor.org/admin/reverseproxies
diff -Nru apache2-2.4.10/debian/forking.conf apache2-2.4.10/debian/forking.conf
--- apache2-2.4.10/debian/forking.conf	1970-01-01 01:00:00.000000000 +0100
+++ apache2-2.4.10/debian/forking.conf	2016-07-21 23:15:10.000000000 +0200
@@ -0,0 +1,3 @@
+[Service]
+Type=forking
+RemainAfterExit=no
diff -Nru apache2-2.4.10/debian/index.html apache2-2.4.10/debian/index.html
--- apache2-2.4.10/debian/index.html	2016-07-20 08:41:40.000000000 +0200
+++ apache2-2.4.10/debian/index.html	2016-07-21 23:15:10.000000000 +0200
@@ -293,17 +293,17 @@
                            *-available/ counterparts. These should be managed
                            by using our helpers
                            <tt>
-                                <a href="http://manpages.debian.org/cgi-bin/man.cgi?query=a2enmod";>a2enmod</a>,
-                                <a href="http://manpages.debian.org/cgi-bin/man.cgi?query=a2dismod";>a2dismod</a>,
+                                a2enmod,
+                                a2dismod,
                            </tt>
                            <tt>
-                                <a href="http://manpages.debian.org/cgi-bin/man.cgi?query=a2ensite";>a2ensite</a>,
-                                <a href="http://manpages.debian.org/cgi-bin/man.cgi?query=a2dissite";>a2dissite</a>,
+                                a2ensite,
+                                a2dissite,
                             </tt>
                                 and
                            <tt>
-                                <a href="http://manpages.debian.org/cgi-bin/man.cgi?query=a2enconf";>a2enconf</a>,
-                                <a href="http://manpages.debian.org/cgi-bin/man.cgi?query=a2disconf";>a2disconf</a>
+                                a2enconf,
+                                a2disconf
                            </tt>. See their respective man pages for detailed information.
                         </li>
 
@@ -326,7 +326,7 @@
             <p>
                 By default, Debian does not allow access through the web browser to
                 <em>any</em> file apart of those located in <tt>/var/www</tt>,
-                <a href="http://httpd.apache.org/docs/2.4/mod/mod_userdir.html";>public_html</a>
+                <a href="http://httpd.apache.org/docs/2.4/mod/mod_userdir.html"; rel="nofollow">public_html</a>
                 directories (when enabled) and <tt>/usr/share</tt> (for web
                 applications). If your site is using a web document root
                 located elsewhere (such as in <tt>/srv</tt>) you may need to whitelist your
@@ -347,8 +347,8 @@
           <p>
                 Please use the <tt>reportbug</tt> tool to report bugs in the
                 Apache2 package with Debian. However, check <a
-                href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=apache2;repeatmerged=0";>existing
-                bug reports</a> before reporting a new bug.
+                href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=apache2;repeatmerged=0";
+                rel="nofollow">existing bug reports</a> before reporting a new bug.
           </p>
           <p>
                 Please report bugs specific to modules (such as PHP and others)
diff -Nru apache2-2.4.10/debian/patches/mod_proxy_fcgi_304_body.patch apache2-2.4.10/debian/patches/mod_proxy_fcgi_304_body.patch
--- apache2-2.4.10/debian/patches/mod_proxy_fcgi_304_body.patch	1970-01-01 01:00:00.000000000 +0100
+++ apache2-2.4.10/debian/patches/mod_proxy_fcgi_304_body.patch	2016-08-07 12:56:37.000000000 +0200
@@ -0,0 +1,51 @@
+# https://svn.apache.org/r1650677
+# https://bz.apache.org/bugzilla/show_bug.cgi?id=57198
+--- apache2.orig/modules/proxy/mod_proxy_fcgi.c
++++ apache2/modules/proxy/mod_proxy_fcgi.c
+@@ -367,7 +367,7 @@ static apr_status_t dispatch(proxy_conn_
+                              const char **err)
+ {
+     apr_bucket_brigade *ib, *ob;
+-    int seen_end_of_headers = 0, done = 0;
++    int seen_end_of_headers = 0, done = 0, ignore_body = 0;
+     apr_status_t rv = APR_SUCCESS;
+     int script_error_status = HTTP_OK;
+     conn_rec *c = r->connection;
+@@ -577,9 +577,16 @@ recv_again:
+                                 APR_BRIGADE_INSERT_TAIL(ob, tmp_b);
+                                 r->status = status;
+                                 ap_pass_brigade(r->output_filters, ob);
+-                                ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01070)
+-                                              "Error parsing script headers");
+-                                rv = APR_EINVAL;
++                                if (status == HTTP_NOT_MODIFIED) {
++                                    /* The 304 response MUST NOT contain
++                                     * a message-body, ignore it. */
++                                    ignore_body = 1;
++                                }
++                                else {
++                                    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01070)
++                                                    "Error parsing script headers");
++                                    rv = APR_EINVAL;
++                                }
+                                 break;
+                             }
+ 
+@@ -598,7 +605,7 @@ recv_again:
+                             }
+ 
+                             if (script_error_status == HTTP_OK
+-                                && !APR_BRIGADE_EMPTY(ob)) {
++                                && !APR_BRIGADE_EMPTY(ob) && !ignore_body) {
+                                 /* Send the part of the body that we read while
+                                  * reading the headers.
+                                  */
+@@ -626,7 +633,7 @@ recv_again:
+                          * but that could be a huge amount of data; so we pass
+                          * along smaller chunks
+                          */
+-                        if (script_error_status == HTTP_OK) {
++                        if (script_error_status == HTTP_OK && !ignore_body) {
+                             rv = ap_pass_brigade(r->output_filters, ob);
+                             if (rv != APR_SUCCESS) {
+                                 *err = "passing brigade to output filters";
diff -Nru apache2-2.4.10/debian/patches/mod_socache_memcache_idle_timeout.patch apache2-2.4.10/debian/patches/mod_socache_memcache_idle_timeout.patch
--- apache2-2.4.10/debian/patches/mod_socache_memcache_idle_timeout.patch	1970-01-01 01:00:00.000000000 +0100
+++ apache2-2.4.10/debian/patches/mod_socache_memcache_idle_timeout.patch	2016-08-07 12:56:37.000000000 +0200
@@ -0,0 +1,11 @@
+--- apache2.orig/modules/cache/mod_socache_memcache.c
++++ apache2/modules/cache/mod_socache_memcache.c
+@@ -51,7 +51,7 @@
+ #endif
+ 
+ #ifndef MC_DEFAULT_SERVER_TTL
+-#define MC_DEFAULT_SERVER_TTL 600
++#define MC_DEFAULT_SERVER_TTL (15*1000*1000)        /* 15 seconds */
+ #endif
+ 
+ struct ap_socache_instance_t {
diff -Nru apache2-2.4.10/debian/patches/series apache2-2.4.10/debian/patches/series
--- apache2-2.4.10/debian/patches/series	2016-07-20 08:42:34.000000000 +0200
+++ apache2-2.4.10/debian/patches/series	2016-08-07 12:56:37.000000000 +0200
@@ -19,3 +19,5 @@
 mpm_event_crash.diff
 split_logfile-strict.patch
 CVE-2016-5387.patch
+mod_socache_memcache_idle_timeout.patch
+mod_proxy_fcgi_304_body.patch

--- End Message ---
--- Begin Message ---
Version: 8.6

The updates referred to in each of these bugs were included in today's
stable point release.

Regards,

Adam

--- End Message ---

Reply to: