Control: tags 759509 + pending

Hi Luigi!

I will upload this directly with the upstream patch to resolve
CVE-2014-3609 (Denial of service in request processing).

Regards,
Salvatore
diff -Nru squid3-3.3.8/debian/changelog squid3-3.3.8/debian/changelog
--- squid3-3.3.8/debian/changelog	2013-11-23 21:05:12.000000000 +0100
+++ squid3-3.3.8/debian/changelog	2014-08-28 18:04:07.000000000 +0200
@@ -1,3 +1,14 @@
+squid3 (3.3.8-1.2) unstable; urgency=high
+
+  * Non-maintainer upload by the Security Team.
+  * Add CVE-2014-3609.patch patch.
+    CVE-2014-3609: Denial of Service in Range header processing.
+    Ignore Range headers with unidentifiable byte-range values. If squid is
+    unable to determine the byte value for ranges, treat the header as
+    invalid. (Closes: #759509)
+
+ -- Salvatore Bonaccorso <car...@debian.org>  Thu, 28 Aug 2014 18:03:47 +0200
+
 squid3 (3.3.8-1.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru squid3-3.3.8/debian/patches/CVE-2014-3609.patch squid3-3.3.8/debian/patches/CVE-2014-3609.patch
--- squid3-3.3.8/debian/patches/CVE-2014-3609.patch	1970-01-01 01:00:00.000000000 +0100
+++ squid3-3.3.8/debian/patches/CVE-2014-3609.patch	2014-08-28 18:04:07.000000000 +0200
@@ -0,0 +1,39 @@
+Description: Ignore Range headers with unidentifiable byte-range values
+ If squid is unable to determine the byte value for ranges, treat the
+ header as invalid.
+Origin: upstream, http://www.squid-cache.org/Versions/v3/3.3/changesets/squid-3.3-12680.patch
+Bug-Debian: https://bugs.debian.org/759509
+Author: Amos Jeffries <squ...@treenet.co.nz>
+Last-Update: 2014-08-28
+Applied-Upstream: 3.3.13, 3.4.7
+
+=== modified file 'src/HttpHdrRange.cc'
+--- a/src/HttpHdrRange.cc
++++ b/src/HttpHdrRange.cc
+@@ -92,7 +92,7 @@ HttpHdrRangeSpec::parseInit(const char *
+ 
+     /* is it a suffix-byte-range-spec ? */
+     if (*field == '-') {
+-        if (!httpHeaderParseOffset(field + 1, &length))
++        if (!httpHeaderParseOffset(field + 1, &length) || !known_spec(length))
+             return false;
+     } else
+         /* must have a '-' somewhere in _this_ field */
+@@ -100,7 +100,7 @@ HttpHdrRangeSpec::parseInit(const char *
+             debugs(64, 2, "invalid (missing '-') range-spec near: '" << field << "'");
+             return false;
+         } else {
+-            if (!httpHeaderParseOffset(field, &offset))
++            if (!httpHeaderParseOffset(field, &offset) || !known_spec(offset))
+                 return false;
+ 
+             ++p;
+@@ -109,7 +109,7 @@ HttpHdrRangeSpec::parseInit(const char *
+             if (p - field < flen) {
+                 int64_t last_pos;
+ 
+-                if (!httpHeaderParseOffset(p, &last_pos))
++                if (!httpHeaderParseOffset(p, &last_pos) || !known_spec(last_pos))
+                     return false;
+ 
+                 // RFC 2616 s14.35.1 MUST: last-byte-pos >= first-byte-pos
diff -Nru squid3-3.3.8/debian/patches/series squid3-3.3.8/debian/patches/series
--- squid3-3.3.8/debian/patches/series	2013-10-25 23:07:04.000000000 +0200
+++ squid3-3.3.8/debian/patches/series	2014-08-28 18:04:07.000000000 +0200
@@ -3,3 +3,4 @@
 15-cachemgr-default-config.patch
 16-ipc-statedir.patch
 17-pod2man-check.patch
+CVE-2014-3609.patch

Reply via email to