From 1bbf0d72d00103c31f887465a32400f095922ae4 Mon Sep 17 00:00:00 2001 From: bsiegert Date: Mon, 18 Jan 2016 20:38:25 +0000 Subject: Pullup ticket #4895 - requested by taca net/ntp4: security fix Revisions pulled up: - net/ntp4/Makefile 1.90 - net/ntp4/distinfo 1.25 - net/ntp4/patches/patch-ntpd-ntpd.c deleted --- Module Name: pkgsrc Committed By: taca Date: Sat Jan 9 15:49:27 UTC 2016 Modified Files: pkgsrc/net/ntp4: Makefile distinfo Removed Files: pkgsrc/net/ntp4/patches: patch-ntpd-ntpd.c Log Message: Update ntp4 to 4.2.8p5. NTP 4.2.8p5 Focus: Security, Bug fixes, enhancements. Severity: MEDIUM In addition to bug fixes and enhancements, this release fixes the following medium-severity vulnerability: * Small-step/big-step. Close the panic gate earlier. References: Sec 2956, CVE-2015-5300 Affects: All ntp-4 releases up to, but not including 4.2.8p5, and 4.3.0 up to, but not including 4.3.78 CVSS3: (AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:N/A:L) Base Score: 4.0, MEDIUM Summary: If ntpd is always started with the -g option, which is common and against long-standing recommendation, and if at the moment ntpd is restarted an attacker can immediately respond to enough requests from enough sources trusted by the target, which is difficult and not common, there is a window of opportunity where the attacker can cause ntpd to set the time to an arbitrary value. Similarly, if an attacker is able to respond to enough requests from enough sources trusted by the target, the attacker can cause ntpd to abort and restart, at which point it can tell the target to set the time to an arbitrary value if and only if ntpd was re-started against long-standing recommendation with the -g flag, or if ntpd was not given the -g flag, the attacker can move the target system's time by at most 900 seconds' time per attack. Mitigation: Configure ntpd to get time from multiple sources. Upgrade to 4.2.8p5, or later, from the NTP Project Download Page or the NTP Public Services Project Download Page As we've long documented, only use the -g option to ntpd in cold-start situations. Monitor your ntpd instances. Credit: This weakness was discovered by Aanchal Malhotra, Isaac E. Cohen, and Sharon Goldberg at Boston University. NOTE WELL: The -g flag disables the limit check on the panic_gate in ntpd, which is 900 seconds by default. The bug identified by the researchers at Boston University is that the panic_gate check was only re-enabled after the first change to the system clock that was greater than 128 milliseconds, by default. The correct behavior is that the panic_gate check should be re-enabled after any initial time correction. If an attacker is able to inject consistent but erroneous time responses to your systems via the network or "over the air", perhaps by spoofing radio, cellphone, or navigation satellite transmissions, they are in a great position to affect your system's clock. There comes a point where your very best defenses include: Configure ntpd to get time from multiple sources. Monitor your ntpd instances. Other fixes: * Coverity submission process updated from Coverity 5 to Coverity 7. The NTP codebase has been undergoing regular Coverity scans on an ongoing basis since 2006. As part of our recent upgrade from Coverity 5 to Coverity 7, Coverity identified 16 nits in some of the newly-written Unity test programs. These were fixed. * [Bug 2829] Clean up pipe_fds in ntpd.c perlinger@ntp.org * [Bug 2887] stratum -1 config results as showing value 99 - fudge stratum should only accept values [0..16]. perlinger@ntp.org * [Bug 2932] Update leapsecond file info in miscopt.html. CWoodbury, HStenn. * [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in. HMurray * [Bug 2944] errno is not preserved properly in ntpdate after sendto call. - applied patch by Christos Zoulas. perlinger@ntp.org * [Bug 2952] Peer associations broken by fix for Bug 2901/CVE-2015-7704. * [Bug 2954] Version 4.2.8p4 crashes on startup on some OSes. - fixed data race conditions in threaded DNS worker. perlinger@ntp.org - limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org * [Bug 2957] 'unsigned int' vs 'size_t' format clash. perlinger@ntp.org - accept key file only if there are no parsing errors - fixed size_t/u_int format clash - fixed wrong use of 'strlcpy' * [Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres. * [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets. perlinger@ntp.org - fixed several other warnings (cast-alignment, missing const, missing prototypes) - promote use of 'size_t' for values that express a size - use ptr-to-const for read-only arguments - make sure SOCKET values are not truncated (win32-specific) - format string fixes * [Bug 2965] Local clock didn't work since 4.2.8p4. Martin Burnicki. * [Bug 2967] ntpdate command suffers an assertion failure - fixed ntp_rfc2553.c to return proper address length. perlinger@ntp.org * [Bug 2969] Seg fault from ntpq/mrulist when looking at server with lots of clients. perlinger@ntp.org * [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call - changed stacked/nested handling of CTRL-C. perlinger@ntp.org * Unity cleanup for FreeBSD-6.4. Harlan Stenn. * Unity test cleanup. Harlan Stenn. * Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn. * Header cleanup in tests/sandbox/uglydate.c. Harlan Stenn. * Header cleanup in tests/libntp/sfptostr.c. Harlan Stenn. * Quiet a warning from clang. Harlan Stenn. --- net/ntp4/Makefile | 5 ++--- net/ntp4/distinfo | 11 +++++------ net/ntp4/patches/patch-ntpd-ntpd.c | 17 ----------------- 3 files changed, 7 insertions(+), 26 deletions(-) delete mode 100644 net/ntp4/patches/patch-ntpd-ntpd.c diff --git a/net/ntp4/Makefile b/net/ntp4/Makefile index e268ed88f71..163eaef299d 100644 --- a/net/ntp4/Makefile +++ b/net/ntp4/Makefile @@ -1,8 +1,7 @@ -# $NetBSD: Makefile,v 1.89 2015/10/29 11:28:44 christos Exp $ +# $NetBSD: Makefile,v 1.89.2.1 2016/01/18 20:38:25 bsiegert Exp $ # -DISTNAME= ntp-4.2.8p4 -PKGREVISION= 1 +DISTNAME= ntp-4.2.8p5 PKGNAME= ${DISTNAME:S/-dev-/-/} CATEGORIES= net time MASTER_SITES= http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ diff --git a/net/ntp4/distinfo b/net/ntp4/distinfo index 7bfa67ee96d..cd616502724 100644 --- a/net/ntp4/distinfo +++ b/net/ntp4/distinfo @@ -1,9 +1,8 @@ -$NetBSD: distinfo,v 1.24 2015/10/29 11:28:44 christos Exp $ +$NetBSD: distinfo,v 1.24.2.1 2016/01/18 20:38:25 bsiegert Exp $ -SHA1 (ntp-4.2.8p4.tar.gz) = a30f61f87b219ab3613def9e27f5c8e91ce38b0a -RMD160 (ntp-4.2.8p4.tar.gz) = 94ab0e190f37c55700978a1555473a308e7175e6 -SHA512 (ntp-4.2.8p4.tar.gz) = e5ad7b44921e49b5546aa804dc56c320a3a0beb32b0e6fde40c900bf5e3af40b354a0cecc869b4605b59b5ab58219b9940789b50d747e0f5b50b4e73513d9f23 -Size (ntp-4.2.8p4.tar.gz) = 7104852 bytes +SHA1 (ntp-4.2.8p5.tar.gz) = 95152c9bca8b5229a4db05943f181365bf738ab2 +RMD160 (ntp-4.2.8p5.tar.gz) = a5991d126722fb80bac6a0552feb14403b8d0a0d +SHA512 (ntp-4.2.8p5.tar.gz) = 8df3e51027f6bfc5e77b81317b67e75263cb429dc532d21bb5924852f77ea39314a06b94944804991185f93155063cee7c1f28024698ec893c353a4d5561750e +Size (ntp-4.2.8p5.tar.gz) = 7138233 bytes SHA1 (patch-include-ntp__syscall.h) = b247569339d09a88f2e143e355033ce7635ffe92 -SHA1 (patch-ntpd-ntpd.c) = 5a5bf9c8939752e1b3f5d04cea3daabdc34081cf SHA1 (patch-sntp_loc_pkgsrc) = 6e46ffc0cc2afcfdc1d01297cbe04cb80d103575 diff --git a/net/ntp4/patches/patch-ntpd-ntpd.c b/net/ntp4/patches/patch-ntpd-ntpd.c deleted file mode 100644 index eb7bb066ec5..00000000000 --- a/net/ntp4/patches/patch-ntpd-ntpd.c +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: patch-ntpd-ntpd.c,v 1.1 2015/10/29 11:23:47 christos Exp $ - -Apply the stupid glibc "warmup" only on linux - ---- ntpd/ntpd.c.orig 2015-10-21 12:14:24.000000000 -0400 -+++ ntpd/ntpd.c 2015-10-29 07:20:41.000000000 -0400 -@@ -32,7 +32,9 @@ - # ifdef HAVE_PTHREAD_H - # include - # endif --# define NEED_PTHREAD_WARMUP -+# ifdef __linux__ -+# define NEED_PTHREAD_WARMUP -+# endif - #endif - - #ifdef HAVE_UNISTD_H -- cgit v1.2.3