[pkg-dhcp-commits] [isc-dhcp] 02/02: release 4.3.3-7
Michael Gilbert
mgilbert at moszumanska.debian.org
Sun Jan 31 04:49:33 UTC 2016
This is an automated email from the git hooks/post-receive script.
mgilbert pushed a commit to branch master
in repository isc-dhcp.
commit 9ca4580b2caf582bfc78f39ec7ab9e2cb44186c6
Author: Michael Gilbert <mgilbert at debian.org>
Date: Sun Jan 31 04:48:12 2016 +0000
release 4.3.3-7
---
debian/changelog | 25 ++++++++--
debian/control | 24 ++--------
debian/dhclient-script.linux | 5 +-
debian/patches/CVE-2015-8605.patch | 91 ++++++++++++++++++++++++++++++++++++
debian/patches/dhcrelay-listen.patch | 31 ++++++++++++
debian/patches/series | 3 ++
debian/rules | 17 ++++---
7 files changed, 158 insertions(+), 38 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 0010f0f..a76399e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+isc-dhcp (4.3.3-7) unstable; urgency=medium
+
+ * Migrate to dbgsym debug packages.
+ * Fix spelling error in changelog entry.
+ * Include LDFLAGS in all calls to configure.
+ * Fix relaying return packets (closes: #648401).
+ - Thanks to Steinar H. Gunderson.
+ * Fix cross-architecture building (closes: #812525).
+ - Thanks to Helmut Grohne.
+ * Initialize exit status in dhclient-script (closes: #800914).
+ * Fix CVE-2015-8605: maliciously crafted IPv4 packet can cause any of the
+ running DHCP applications to crash (closes: #810875).
+
+ -- Michael Gilbert <mgilbert at debian.org> Sun, 31 Jan 2016 01:31:59 +0000
+
isc-dhcp (4.3.3-6) experimental; urgency=medium
* Fix missing build flags from the last upload.
@@ -15,7 +30,7 @@ isc-dhcp (4.3.3-5) unstable; urgency=medium
* Add diversions for isc-dhcp-client-ddns (closes: #800749).
* Fix directory output by the debug script (closes: #794770).
* Fix exit code handling in dhclient-script (closes: #692846).
- * Escape parantheses in init script sed command (closes: #771530).
+ * Escape parentheses in init script sed command (closes: #771530).
* Add more IP address detail to dhclient output (closes: #486611).
* Add dhcp6.fqdn and dhcp6.sntp-servers to the default request options.
* Avoid infinite loop caused by misconfigured rfc3442-classless-static-routes
@@ -263,7 +278,7 @@ isc-dhcp (4.2.4-1) unstable; urgency=low
isc-dhcp (4.2.2.dfsg.1-5) unstable; urgency=medium
[ Andrew Pollock ]
- * debian/dhclient.conf: send the hostname (closes: #151820)
+ * debian/dhclient.conf: send the hostname (closes: #151820)
[ Michael Gilbert ]
* Fix cve-2011-4868: error in DDNS handling with IPv6 (closes: #655746)
@@ -339,7 +354,7 @@ isc-dhcp (4.2.2-1) unstable; urgency=low
* debian/rules: added build-arch and build-indep targets
* debian/rules: applied patch from Kees Cook to call dh_link (closes: #614992)
* debian/dhclient-script.linux: applied patch from Colin Watson to make
- dhclient-script support stateless DHCPv6 (closes: #632888)
+ dhclient-script support stateless DHCPv6 (closes: #632888)
* debian/dhclient-script.linux: fix regression for MTU <= 576 handling
(closes: #638267)
* Apply patch from Peter Marschall to split the rfc3442-classless-routes hook
@@ -376,7 +391,7 @@ isc-dhcp (4.2.2-1) unstable; urgency=low
* debian/dhclient-script.*: apply patch from Peter Marschall to use alternate
value expansion
* debian/isc-dhcp-server.postinst: eliminate an error message from sed if no
- interfaces are provided
+ interfaces are provided
-- Andrew Pollock <apollock at debian.org> Sun, 28 Aug 2011 22:12:21 -0700
@@ -391,7 +406,7 @@ isc-dhcp (4.1.1-P1-17) unstable; urgency=low
* Incorporate and acknowledge NMU
* Apply a multitude of patches from Peter Marschall (closes: #609408)
- - fix domain_name in domain_search check in dhclient-script
+ - fix domain_name in domain_search check in dhclient-script
(closes: #567141)
- fix indentation in dhclient-script to improve readability
- remove bashisms from dhclient-script
diff --git a/debian/control b/debian/control
index 87e4d6f..deaa8c3 100644
--- a/debian/control
+++ b/debian/control
@@ -7,15 +7,15 @@ Vcs-Git: git://anonscm.debian.org/pkg-dhcp/isc-dhcp.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-dhcp/isc-dhcp.git;a=summary
Homepage: http://www.isc.org
Build-Depends:
+ dpkg-dev (>= 1.13.2),
+ debhelper (>= 9.20151220),
+ dh-autoreconf,
groff,
pkg-config,
po-debconf,
libssl-dev,
libldap2-dev,
libbind-export-dev (>= 1:9.9.5.dfsg-4.3),
- dh-autoreconf,
- debhelper (>= 9),
- dpkg-dev (>= 1.13.2),
Standards-Version: 3.9.6
Package: isc-dhcp-server
@@ -48,24 +48,6 @@ Description: ISC DHCP server for automatic IP address assignment
.
This server can handle multiple ethernet interfaces.
-Package: isc-dhcp-dbg
-Section: debug
-Priority: extra
-Architecture: any
-Depends:
- ${misc:Depends},
- debianutils (>= 2.8.2),
- lsb-base,
- isc-dhcp-client (= ${binary:Version}) | isc-dhcp-server (= ${binary:Version}) | isc-dhcp-relay (= ${binary:Version}),
-Replaces:
- isc-dhcp-client-dbg (<< 4.3.0a1),
- isc-dhcp-server-dbg (<< 4.3.0a1),
- isc-dhcp-relay-dbg (<< 4.3.0a1),
-Description: ISC DHCP server for automatic IP address assignment (debuging symbols)
- This are debugging symbols for the Internet Software Consortium's DHCP tools.
- .
- This package contains the debugging symbols for isc-dhcp.
-
Package: isc-dhcp-server-ldap
Priority: optional
Architecture: any
diff --git a/debian/dhclient-script.linux b/debian/dhclient-script.linux
index 1e71f96..4eabdd5 100644
--- a/debian/dhclient-script.linux
+++ b/debian/dhclient-script.linux
@@ -126,9 +126,8 @@ run_hook() {
# run scripts in given directory
run_hookdir() {
- local dir
- local exit_status
- dir="$1"
+ local dir="$1"
+ local exit_status=0
if [ -d "$dir" ]; then
for script in $(run-parts --list $dir); do
diff --git a/debian/patches/CVE-2015-8605.patch b/debian/patches/CVE-2015-8605.patch
new file mode 100644
index 0000000..53ba221
--- /dev/null
+++ b/debian/patches/CVE-2015-8605.patch
@@ -0,0 +1,91 @@
+description: fix remotely triggered crash
+author: ISC
+
+--- a/common/packet.c
++++ b/common/packet.c
+@@ -220,7 +220,28 @@ ssize_t decode_hw_header (interface, buf
+ }
+ }
+
+-/* UDP header and IP header decoded together for convenience. */
++/*!
++ *
++ * \brief UDP header and IP header decoded together for convenience.
++ *
++ * Attempt to decode the UDP and IP headers and, if necessary, checksum
++ * the packet.
++ *
++ * \param inteface - the interface on which the packet was recevied
++ * \param buf - a pointer to the buffer for the received packet
++ * \param bufix - where to start processing the buffer, previous
++ * routines may have processed parts of the buffer already
++ * \param from - space to return the address of the packet sender
++ * \param buflen - remaining length of the buffer, this will have been
++ * decremented by bufix by the caller
++ * \param rbuflen - space to return the length of the payload from the udp
++ * header
++ * \param csum_ready - indication if the checksum is valid for use
++ * non-zero indicates the checksum should be validated
++ *
++ * \return - the index to the first byte of the udp payload (that is the
++ * start of the DHCP packet
++ */
+
+ ssize_t
+ decode_udp_ip_header(struct interface_info *interface,
+@@ -231,7 +252,7 @@ decode_udp_ip_header(struct interface_in
+ unsigned char *data;
+ struct ip ip;
+ struct udphdr udp;
+- unsigned char *upp, *endbuf;
++ unsigned char *upp;
+ u_int32_t ip_len, ulen, pkt_len;
+ static unsigned int ip_packets_seen = 0;
+ static unsigned int ip_packets_bad_checksum = 0;
+@@ -241,11 +262,8 @@ decode_udp_ip_header(struct interface_in
+ static unsigned int udp_packets_length_overflow = 0;
+ unsigned len;
+
+- /* Designate the end of the input buffer for bounds checks. */
+- endbuf = buf + bufix + buflen;
+-
+ /* Assure there is at least an IP header there. */
+- if ((buf + bufix + sizeof(ip)) > endbuf)
++ if (sizeof(ip) > buflen)
+ return -1;
+
+ /* Copy the IP header into a stack aligned structure for inspection.
+@@ -257,13 +275,17 @@ decode_udp_ip_header(struct interface_in
+ ip_len = (*upp & 0x0f) << 2;
+ upp += ip_len;
+
+- /* Check the IP packet length. */
++ /* Check packet lengths are within the buffer:
++ * first the ip header (ip_len)
++ * then the packet length from the ip header (pkt_len)
++ * then the udp header (ip_len + sizeof(udp)
++ * We are liberal in what we accept, the udp payload should fit within
++ * pkt_len, but we only check against the full buffer size.
++ */
+ pkt_len = ntohs(ip.ip_len);
+- if (pkt_len > buflen)
+- return -1;
+-
+- /* Assure after ip_len bytes that there is enough room for a UDP header. */
+- if ((upp + sizeof(udp)) > endbuf)
++ if ((ip_len > buflen) ||
++ (pkt_len > buflen) ||
++ ((ip_len + sizeof(udp)) > buflen))
+ return -1;
+
+ /* Copy the UDP header into a stack aligned structure for inspection. */
+@@ -284,7 +306,8 @@ decode_udp_ip_header(struct interface_in
+ return -1;
+
+ udp_packets_length_checked++;
+- if ((upp + ulen) > endbuf) {
++ /* verify that the payload length from the udp packet fits in the buffer */
++ if ((ip_len + ulen) > buflen) {
+ udp_packets_length_overflow++;
+ if (((udp_packets_length_checked > 4) &&
+ (udp_packets_length_overflow != 0)) &&
diff --git a/debian/patches/dhcrelay-listen.patch b/debian/patches/dhcrelay-listen.patch
new file mode 100644
index 0000000..7495cd8
--- /dev/null
+++ b/debian/patches/dhcrelay-listen.patch
@@ -0,0 +1,31 @@
+description: fix relaying of return packets
+author: Steinar H. Gunderson <sgunderson at bigfoot.com>
+
+--- a/common/discover.c
++++ b/common/discover.c
+@@ -1102,9 +1102,9 @@ discover_interfaces(int state) {
+ INTERFACE_REQUESTED);
+
+ #ifdef DHCPv6
+- if (!(tmp->flags & INTERFACE_REQUESTED)) {
++ if (!(tmp->flags & INTERFACE_REQUESTED) && state != DISCOVER_RELAY) {
+ #else
+- if (!tmp -> ifp || !(tmp -> flags & INTERFACE_REQUESTED)) {
++ if (!tmp -> ifp || (!(tmp -> flags & INTERFACE_REQUESTED) && state != DISCOVER_RELAY)) {
+ #endif /* DHCPv6 */
+ if ((tmp -> flags & INTERFACE_REQUESTED) != ir)
+ log_fatal ("%s: not found", tmp -> name);
+--- a/relay/dhcrelay.c
++++ b/relay/dhcrelay.c
+@@ -705,6 +705,11 @@ do_relay4(struct interface_info *ip, str
+ if (out)
+ return;
+
++ /* If this is not a BOOTREPLY, and it is not on a requested interface,
++ * drop it. */
++ if (!(ip->flags & INTERFACE_REQUESTED))
++ return;
++
+ /* Add relay agent options if indicated. If something goes wrong,
+ drop the packet. */
+ if (!(length = add_relay_agent_options(ip, packet, length,
diff --git a/debian/patches/series b/debian/patches/series
index 6e54a4d..7457273 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,6 +3,7 @@ dhclient-exit-hook.patch
dhclient-dividebyzero.patch
dhclient-64bit-time.patch
dhclient-more-detail.patch
+dhcrelay-listen.patch
fix-exit-hook-manpage.patch
spelling-error.patch
@@ -11,3 +12,5 @@ manpage-hyphens.patch
disable-nsupdate.patch
system-bind.patch
+
+CVE-2015-8605.patch
diff --git a/debian/rules b/debian/rules
index 4184716..6c4480a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -27,9 +27,7 @@ CONFFLAGS=--prefix=/usr --enable-log-pid --enable-paranoia
# cross-architecture building
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
-CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc
-else
-CROSS=
+CONFFLAGS+=--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
endif
# hurd support
@@ -46,18 +44,18 @@ override_dh_auto_configure:
override_dh_auto_build:
# ldap-enabled build
test -f Makefile && $(MAKE) distclean || true
- ./configure --with-ldap --with-ldapcrypto CFLAGS="$(CFLAGS) -DNSUPDATE" LDFLAGS="-lirs-export" $(CONFFLAGS)
- $(MAKE) $(CROSS)
+ ./configure --with-ldap --with-ldapcrypto CFLAGS="$(CFLAGS) -DNSUPDATE" LDFLAGS="-lirs-export $(LDFLAGS)" $(CONFFLAGS)
+ $(MAKE)
mv server/dhcpd dhcpd
# ddns-disabled build
test -f Makefile && $(MAKE) distclean || true
./configure CFLAGS="$(CFLAGS)" $(CONFFLAGS)
- $(MAKE) $(CROSS)
+ $(MAKE)
mv client/dhclient dhclient
# ldap-disabled build
test -f Makefile && $(MAKE) distclean || true
- ./configure CFLAGS="$(CFLAGS) -DNSUPDATE" LDFLAGS="-lirs-export" $(CONFFLAGS)
- $(MAKE) $(CROSS)
+ ./configure CFLAGS="$(CFLAGS) -DNSUPDATE" LDFLAGS="-lirs-export $(LDFLAGS)" $(CONFFLAGS)
+ $(MAKE)
override_dh_install:
dh_install
@@ -82,4 +80,5 @@ override_dh_installinit:
dh_installinit -pisc-dhcp-server --error-handler=true
override_dh_strip:
- dh_strip --dbg-package=isc-dhcp-dbg
+ # this can be removed once stretch is released
+ dh_strip --ddeb-migration='isc-dhcp-dbg (<< 4.3.3-7~)'
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-dhcp/isc-dhcp.git
More information about the pkg-dhcp-commits
mailing list