Package: release.debian.org Severity: important User: release.debian....@packages.debian.org Usertags: unblock
Hello release team, because of three CVE security messages I have made an updated package of chrony which is now on mentors.debian.net. Please unblock package chrony/1.30-2. The RFS can be seen here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782173 The updated package fixes three RC bugs: * It includes the following security fixes (Closes: #782160): - Fix CVE-2015-1853: Protect authenticated symmetric NTP associations against DoS attacks. - Fix CVE-2015-1821: Fix access configuration with subnet size indivisible by 4. - Fix CVE-2015-1822: Fix initialization of reply slots for authenticated commands. Details are in the attached debdiff. Please unblock package chrony/1.30-2. Many thanks for your work, --- Have a nice day. Joachim (Germany)
diff -urN d10/debian/changelog d14/debian/changelog --- d10/debian/changelog 2014-08-10 19:10:56.000000000 +0200 +++ d14/debian/changelog 2015-04-09 00:31:10.000000000 +0200 @@ -1,3 +1,19 @@ +chrony (1.30-2) unstable; urgency=medium + + * New upstream release. + * It includes the following security fixes (Closes: #782160): + - Fix CVE-2015-1853: Protect authenticated symmetric NTP + associations against DoS attacks. + - Fix CVE-2015-1821: Fix access configuration with subnet + size indivisible by 4. + - Fix CVE-2015-1822: Fix initialization of reply slots for + authenticated commands. + * debian/control: + - Update e-mail address of myself. + - Add Vincent Blut as co-maintainer. + + -- Joachim Wiedorn <joodeb...@joonet.de> Thu, 09 Apr 2015 00:06:34 +0200 + chrony (1.30-1) unstable; urgency=medium * New upstream release with following bugfixes: diff -urN d10/debian/control d14/debian/control --- d10/debian/control 2014-08-08 20:40:03.000000000 +0200 +++ d14/debian/control 2015-04-09 00:05:48.000000000 +0200 @@ -1,7 +1,8 @@ Source: chrony Section: admin Priority: extra -Maintainer: Joachim Wiedorn <ad_deb...@joonet.de> +Maintainer: Joachim Wiedorn <joodeb...@joonet.de> +Uploaders: Vincent Blut <vincent.deb...@free.fr> Standards-Version: 3.9.5 Build-Depends: debhelper (>= 9), texinfo, bison, diff -urN d10/debian/patches/11_protect-authenticated-symmetric-ass.patch d14/debian/patches/11_protect-authenticated-symmetric-ass.patch --- d10/debian/patches/11_protect-authenticated-symmetric-ass.patch 1970-01-01 01:00:00.000000000 +0100 +++ d14/debian/patches/11_protect-authenticated-symmetric-ass.patch 2015-04-08 23:50:45.000000000 +0200 @@ -0,0 +1,72 @@ +From d856bd34c4862398411d29200520e3a3b1d4569e Mon Sep 17 00:00:00 2001 +From: Miroslav Lichvar <mlich...@redhat.com> +Date: Thu, 5 Mar 2015 12:44:30 +0100 +Subject: ntp: protect authenticated symmetric associations against DoS attacks + +An attacker knowing that NTP hosts A and B are peering with each other +(symmetric association) can send a packet with random timestamps to host +A with source address of B which will set the NTP state variables on A +to the values sent by the attacker. Host A will then send on its next +poll to B a packet with originate timestamp that doesn't match the +transmit timestamp of B and the packet will be dropped. If the attacker +does this periodically for both hosts, they won't be able to synchronize +to each other. It is a denial-of-service attack. + +According to [1], NTP authentication is supposed to protect symmetric +associations against this attack, but in the NTPv3 (RFC 1305) and NTPv4 +(RFC 5905) specifications the state variables are updated before the +authentication check is performed, which means the association is +vulnerable to the attack even when authentication is enabled. + +To fix this problem, save the originate and local timestamps only when +the authentication check (test5) passed. + +[1] https://www.eecis.udel.edu/~mills/onwire.html + +diff --git a/ntp_core.c b/ntp_core.c +index ebb6a7c..e654c88 100644 +--- a/ntp_core.c ++++ b/ntp_core.c +@@ -914,9 +914,6 @@ receive_packet(NTP_Packet *message, struct timeval *now, double now_err, NCR_Ins + + /* ==================== */ + +- /* Save local receive timestamp */ +- inst->local_rx = *now; +- + pkt_leap = (message->lvm >> 6) & 0x3; + if (pkt_leap == 0x3) { + source_is_synchronized = 0; +@@ -948,14 +945,6 @@ receive_packet(NTP_Packet *message, struct timeval *now, double now_err, NCR_Ins + test2 = 1; /* Success */ + } + +- /* Regardless of any validity checks we apply, we are required to +- save this field from the packet into the ntp source +- instance record. See RFC1305 section 3.4.4, peer.org <- pkt.xmt +- & peer.peerpoll <- pkt.poll. Note we can't do this assignment +- before test1 has been carried out!! */ +- +- inst->remote_orig = message->transmit_ts; +- + /* Test 3 requires that pkt.org != 0 and pkt.rec != 0. If + either of these are true it means the association is not properly + 'up'. */ +@@ -1128,6 +1117,14 @@ receive_packet(NTP_Packet *message, struct timeval *now, double now_err, NCR_Ins + kod_rate = 1; + } + ++ /* The transmit timestamp and local receive timestamp must not be saved when ++ the authentication test failed to prevent denial-of-service attacks on ++ symmetric associations using authentication */ ++ if (test5) { ++ inst->remote_orig = message->transmit_ts; ++ inst->local_rx = *now; ++ } ++ + valid_kod = test1 && test2 && test5; + + valid_data = test1 && test2 && test3 && test4 && test4a && test4b; +-- +cgit v0.10.2 + diff -urN d10/debian/patches/12_fix-subnet-size-indivisible-by-four.patch d14/debian/patches/12_fix-subnet-size-indivisible-by-four.patch --- d10/debian/patches/12_fix-subnet-size-indivisible-by-four.patch 1970-01-01 01:00:00.000000000 +0100 +++ d14/debian/patches/12_fix-subnet-size-indivisible-by-four.patch 2015-04-08 23:50:45.000000000 +0200 @@ -0,0 +1,35 @@ +From cf19042ecb656b8afec0cc4906e7dd3ea9266ac8 Mon Sep 17 00:00:00 2001 +From: Miroslav Lichvar <mlich...@redhat.com> +Date: Mon, 30 Mar 2015 14:41:37 +0200 +Subject: addrfilt: fix access configuration with subnet size indivisible by 4 + +When NTP or cmdmon access was configured (from chrony.conf or via +authenticated cmdmon) with a subnet size that is indivisible by 4 and +an address that has nonzero bits in the 4-bit subnet remainder (e.g. +192.168.15.0/22 or f000::/3), the new setting was written to an +incorrect location, possibly outside the allocated array. + +An attacker that has the command key and is allowed to access cmdmon +(only localhost is allowed by default) could exploit this to crash +chronyd or possibly execute arbitrary code with the privileges of the +chronyd process. + +diff --git a/addrfilt.c b/addrfilt.c +index 0930289..4b8879a 100644 +--- a/addrfilt.c ++++ b/addrfilt.c +@@ -199,7 +199,10 @@ set_subnet(TableNode *start_node, + + /* How many subnet entries to set : 1->8, 2->4, 3->2 */ + N = 1 << (NBITS-bits_to_go); +- subnet = get_subnet(ip, bits_consumed); ++ ++ subnet = get_subnet(ip, bits_consumed) & ~(N - 1); ++ assert(subnet + N <= TABLE_SIZE); ++ + if (!(node->extended)) { + open_node(node); + } +-- +cgit v0.10.2 + diff -urN d10/debian/patches/13_fix-initialization-of-allocated-reply-slots.patch d14/debian/patches/13_fix-initialization-of-allocated-reply-slots.patch --- d10/debian/patches/13_fix-initialization-of-allocated-reply-slots.patch 1970-01-01 01:00:00.000000000 +0100 +++ d14/debian/patches/13_fix-initialization-of-allocated-reply-slots.patch 2015-04-08 23:50:45.000000000 +0200 @@ -0,0 +1,30 @@ +From 79eacdb7e694c7e6681b68006425df3faca51aec Mon Sep 17 00:00:00 2001 +From: Miroslav Lichvar <mlich...@redhat.com> +Date: Mon, 30 Mar 2015 15:13:27 +0200 +Subject: cmdmon: fix initialization of allocated reply slots + +When allocating memory to save unacknowledged replies to authenticated +command requests, the last "next" pointer was not initialized to NULL. +When all allocated reply slots were used, the next reply could be +written to an invalid memory instead of allocating a new slot for it. + +An attacker that has the command key and is allowed to access cmdmon +(only localhost is allowed by default) could exploit this to crash +chronyd or possibly execute arbitrary code with the privileges of the +chronyd process. + +diff --git a/cmdmon.c b/cmdmon.c +index 58a6c90..343baf4 100644 +--- a/cmdmon.c ++++ b/cmdmon.c +@@ -558,6 +558,7 @@ get_more_replies(void) + for (i=1; i<REPLY_EXTEND_QUANTUM; i++) { + new_replies[i-1].next = new_replies + i; + } ++ new_replies[REPLY_EXTEND_QUANTUM - 1].next = NULL; + free_replies = new_replies; + } + } +-- +cgit v0.10.2 + diff -urN d10/debian/patches/series d14/debian/patches/series --- d10/debian/patches/series 2013-12-21 01:02:54.000000000 +0100 +++ d14/debian/patches/series 2015-04-08 23:51:04.000000000 +0200 @@ -2,3 +2,6 @@ 03_recreate-always-getdate-c.patch 04_do-not-look-for-ncurses.patch 05_disable-installation-of-license.patch +11_protect-authenticated-symmetric-ass.patch +12_fix-subnet-size-indivisible-by-four.patch +13_fix-initialization-of-allocated-reply-slots.patch
signature.asc
Description: PGP signature