xref: /freebsd/contrib/ntp/NEWS (revision 44096ebd22ddd0081a357011714eff8963614b65)
1---
2NTP 4.2.8p18 (Harlan Stenn <stenn@ntp.org>, 2024 May 24)
3
4Focus: Bug fixes
5
6Severity: Recommended
7
8This release:
9
10- changes crypto (OpenSSL or compatible) detection and default build behavior.
11  Previously, crypto was supported if available unless the --without-crypto
12  option was given to configure.  With this release, the prior behavior of
13  falling back to a crypto-free build if usable libcrypto was not found has
14  changed to instead cause configure to fail with an error.
15  The --without-crypto option must be explicitly provided if you want a build
16  that does not use libcrypto functionality.
17- Fixes 40 bugs
18- Includes 40 other improvements
19
20Details below:
21
22* [Bug 3918] Tweak openssl header/library handling. <stenn@ntp.org>
23* [Bug 3914] Spurious "Unexpected origin timestamp" logged after time
24             stepped. <hart@ntp.org>
25* [Bug 3913] Avoid duplicate IPv6 link-local manycast associations.
26             <hart@ntp.org>
27* [Bug 3912] Avoid rare math errors in ntptrace.  <brian.utterback@oracle.com>
28* [Bug 3910] Memory leak using openssl-3 <hart@ntp.org>
29* [Bug 3909] Do not select multicast local address for unicast peer.
30             <hart@ntp.org>
31* [Bug 3903] lib/isc/win32/strerror.c NTstrerror() is not thread-safe.
32             <hart@ntp.org>
33* [Bug 3901] LIB_GETBUF isn't thread-safe. <hart@ntp.org>
34* [Bug 3900] fast_xmit() selects wrong local addr responding to mcast on
35             Windows. <hart@ntp.org>
36* [Bug 3888] ntpd with multiple same-subnet IPs using manycastclient creates
37             duplicate associations. <hart@ntp.org>
38* [Bug 3872] Ignore restrict mask for hostname. <hart@ntp.org>
39* [Bug 3871] 4.2.8p17 build without hopf6021 refclock enabled fails.
40             Reported by Hans Mayer.  Moved NONEMPTY_TRANSLATION_UNIT
41             declaration from ntp_types.h to config.h.  <hart@ntp.org>
42* [Bug 3870] Server drops client packets with ppoll < 4.  <stenn@ntp.org>
43* [Bug 3869] Remove long-gone "calldelay" & "crypto sign" from docs.
44             Reported by PoolMUC@web.de. <hart@ntp.org>
45* [Bug 3868] Cannot restrict a pool peer. <hart@ntp.org>  Thanks to
46             Edward McGuire for tracking down the deficiency.
47* [Bug 3864] ntpd IPv6 refid different for big-endian and little-endian.
48             <hart@ntp.org>
49* [Bug 3859] Use NotifyIpInterfaceChange on Windows ntpd. <hart@ntp.org>
50* [Bug 3856] Enable Edit & Continue debugging with Visual Studio.
51             <hart@ntp.org>
52* [Bug 3855] ntpq lacks an equivalent to ntpdc's delrestrict. <hart@ntp.org>
53* [Bug 3854] ntpd 4.2.8p17 corrupts rawstats file with space in refid.
54             <hart@ntp.org>
55* [Bug 3853] Clean up warnings with modern compilers. <hart@ntp.org>
56* [Bug 3852] check-libntp.mf and friends are not triggering rebuilds as
57             intended. <hart@ntp.org>
58* [Bug 3851] Drop pool server when no local address can reach it.
59             <hart@ntp.org>
60* [Bug 3850] ntpq -c apeers breaks column formatting s2 w/refclock refid.
61             <hart@ntp.org>
62* [Bug 3849] ntpd --wait-sync times out. <hart@ntp.org>
63* [Bug 3847] SSL detection in configure should run-test if runpath is needed.
64             <hart@ntp.org>
65* [Bug 3846] Use -Wno-format-truncation by default. <hart@ntp.org>
66* [Bug 3845] accelerate pool clock_sync when IPv6 has only link-local access.
67             <hart@ntp.org>
68* [Bug 3842] Windows ntpd PPSAPI DLL load failure crashes. <hart@ntp.org>
69* [Bug 3841] 4.2.8p17 build break w/ gcc 12 -Wformat-security without -Wformat
70             Need to remove --Wformat-security when removing -Wformat to
71             silence numerous libopts warnings.  <hart@ntp.org>
72* [Bug 3837] NULL pointer deref crash when ntpd deletes last interface.
73             Reported by renmingshuai.  Correct UNLINK_EXPR_SLIST() when the
74             list is empty. <hart@ntp.org>
75* [Bug 3835] NTP_HARD_*FLAGS not used by libevent tearoff. <hart@ntp.org>
76* [Bug 3831] pollskewlist zeroed on runtime configuration. <hart@ntp.org>
77* [Bug 3830] configure libevent check intersperses output with answer. <stenn@>
78* [Bug 3828] BK should ignore a git repo in the same directory.
79             <burnicki@ntp.org>
80* [Bug 3827] Fix build in case CLOCK_HOPF6021 or CLOCK_WHARTON_400A
81             is disabled.  <burnicki@ntp.org>
82* [Bug 3825] Don't touch HTML files unless building inside a BK repo.
83             Fix the script checkHtmlFileDates.  <burnicki@ntp.org>
84* [Bug 3756] Improve OpenSSL library/header detection.
85* [Bug 3753] ntpd fails to start with FIPS-enabled OpenSSL 3. <hart@ntp.org>
86* [Bug 2734] TEST3 prevents initial interleave sync.  Fix from <PoolMUC@web.de>
87* Log failures to allocate receive buffers.  <hart@ntp.org>
88* Remove extraneous */ from libparse/ieee754io.c
89* Fix .datecheck target line in Makefile.am.  <stenn@ntp.org>
90* Update the copyright year.  <stenn@ntp.org>
91* Update ntp.conf documentation to add "delrestrict" and correct information
92  about KoD rate limiting.  <hart@ntp.org>
93* html/clockopt.html cleanup.  <stenn@ntp.org>
94* util/lsf-times - added.  <stenn@ntp.org>
95* Add DSA, DSA-SHA, and SHA to tests/libntp/digests.c. <hart@ntp.org>
96* Provide ntpd thread names to debugger on Windows. <hart@ntp.org>
97* Remove dead code libntp/numtohost.c and its unit tests. <hart@ntp.org>
98* Remove class A, B, C IPv4 distinctions in netof(). <hart@ntp.org>
99* Use @configure_input@ in various *.in files to include a comment that
100  the file is generated from another pointing to the *.in. <hart@ntp.org>
101* Correct underquoting, indents in ntp_facilitynames.m4. <hart@ntp.org>
102* Clean up a few warnings seen building with older gcc. <hart@ntp.org>
103* Fix build on older FreeBSD lacking sys/procctl.h. <hart@ntp.org>
104* Disable [Bug 3627] workaround on newer FreeBSD which has the kernel fix
105  that makes it unnecessary, re-enabling ASLR stack gap. <hart@ntp.org>
106* Use NONEMPTY_COMPILATION_UNIT in more conditionally-compiled files.
107* Remove useless pointer to Windows Help from system error messages.
108* Avoid newlines within Windows error messages. <hart@ntp.org>
109* Ensure unique association IDs if wrapped. <hart@ntp.org>
110* Simplify calc_addr_distance(). <hart@ntp.org>
111* Clamp min/maxpoll in edge cases in newpeer(). <hart@ntp.org>
112* Quiet local addr change logging when unpeering. <hart@ntp.org>
113* Correct missing arg for %s printf specifier in
114  send_blocking_resp_internal(). <hart@ntp.org>
115* Suppress OpenSSL 3 deprecation warning clutter. <hart@ntp.org>
116* Correct OpenSSL usage in Autokey code to avoid warnings about
117  discarding const qualifiers with OpenSSL 3. <hart@ntp.org>
118* Display KoD refid as text in recently added message. <hart@ntp.org>
119* Avoid running checkHtmlFileDates script repeatedly when no html/*.html
120    files have changed. <hart@ntp.org>
121* Abort configure if --enable-crypto-rand given & unavailable. <hart@ntp.org>
122* Add configure --enable-verbose-ssl to trace SSL detection. <hart@ntp.org>
123* Add build test coverage for --disable-saveconfig to flock-build script.
124  <hart@ntp.org>
125* Remove deprecated configure --with-arlib option. <hart@ntp.org>
126* Remove configure support for ISC UNIX ca. 1998. <hart@ntp.org>
127* Move NTP_OPENSSL and NTP_CRYPTO_RAND invocations from configure.ac files
128  to NTP_LIBNTP. <hart@ntp.org>
129* Remove dead code: HAVE_U_INT32_ONLY_WITH_DNS. <hart@ntp.org>
130* Eliminate [v]snprintf redefinition warnings on macOS. <hart@ntp.org>
131* Fix clang 14 cast increases alignment warning on Linux. <hart@ntp.org>
132* Move ENABLE_CMAC to ntp_openssl.m4, reviving sntp/tests CMAC unit tests.
133  <hart@ntp.org>
134* Use NTP_HARD_CPPFLAGS in libopts tearoff. <hart@ntp.org>
135* wire in --enable-build-framework-help
136
137---
138NTP 4.2.8p17 (Harlan Stenn <stenn@ntp.org>, 2023 Jun 06)
139
140Focus: Bug fixes
141
142Severity: HIGH (for people running 4.2.8p16)
143
144This release:
145
146- fixes 3 bugs, including a regression
147- adds new unit tests
148
149Details below:
150
151* [Bug 3824] Spurious "ntpd: daemon failed to notify parent!" logged at
152             event_sync.  Reported by Edward McGuire.  <hart@ntp.org>
153* [Bug 3822] ntpd significantly delays first poll of servers specified by name.
154             <hart@ntp.org>  Miroslav Lichvar identified regression in 4.2.8p16.
155* [Bug 3821] 4.2.8p16 misreads hex authentication keys, won't interop with
156             4.2.8p15 or earlier.  Reported by Matt Nordhoff, thanks to
157	     Miroslav Lichvar and Matt for rapid testing and identifying the
158	     problem. <hart@ntp.org>
159* Add tests/libntp/digests.c to catch regressions reading keys file or with
160  symmetric authentication digest output.
161
162---
163NTP 4.2.8p16 (Harlan Stenn <stenn@ntp.org>, 2023 May 30)
164
165Focus: Security, Bug fixes
166
167Severity: LOW
168
169This release:
170
171- fixes 4 vulnerabilities (3 LOW and 1 None severity),
172- fixes 46 bugs
173- includes 15 general improvements
174- adds support for OpenSSL-3.0
175
176Details below:
177
178* [Sec 3808] Assertion failure in ntpq on malformed RT-11 date <perlinger@ntp.org>
179* [Sec 3807] praecis_parse() in the Palisade refclock driver has a
180             hypothetical input buffer overflow. Reported by ... stenn@
181* [Sec 3806] libntp/mstolfp.c needs bounds checking <perlinger@ntp.org>
182  - solved numerically instead of using string manipulation
183* [Sec 3767] An OOB KoD RATE value triggers an assertion when debug is enabled.
184             <stenn@ntp.org>
185* [Bug 3819] Updated libopts/Makefile.am was missing NTP_HARD_* values. <stenn@>
186* [Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
187* [Bug 3814] First poll delay of new or cleared associations miscalculated.
188             <hart@ntp.org>
189* [Bug 3802] ntp-keygen -I default identity modulus bits too small for
190             OpenSSL 3.  Reported by rmsh1216@163.com <hart@ntp.org>
191* [Bug 3801] gpsdjson refclock gps_open() device name mishandled. <hart@ntp.org>
192* [Bug 3800] libopts-42.1.17 does not compile with Microsoft C. <hart@ntp.org>
193* [Bug 3799] Enable libopts noreturn compiler advice for MSC. <hart@ntp.org>
194* [Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when
195             disconnected, breaking ntpq and ntpdc. <hart@ntp.org>
196* [Bug 3795] pollskewlist documentation uses | when it shouldn't.
197  - ntp.conf manual page and miscopt.html corrections. <hart@ntp.org>
198* [Bug 3793] Wrong variable type passed to record_raw_stats(). <hart@ntp.org>
199  - Report and patch by Yuezhen LUAN <wei6410@sina.com>.
200* [Bug 3786] Timer starvation on high-load Windows ntpd. <hart@ntp.org>
201* [Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded.
202             <hart@ntp.org>
203* [Bug 3781] log "Unable to listen for broadcasts" for IPv4 <hart@ntp.org>
204* [Bug 3774] mode 6 packets corrupted in rawstats file <hart@ntp.org>
205  - Reported by Edward McGuire, fix identified by <wei6410@sina.com>.
206* [Bug 3758] Provide a 'device' config statement for refclocks <perlinger@ntp.org>
207* [Bug 3757] Improve handling of Linux-PPS in NTPD <perlinger@ntp.org>
208* [Bug 3741] 4.2.8p15 can't build with glibc 2.34 <perlinger@ntp.org>
209* [Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
210             Philippe De Muyter <phdm@macqel.be>
211* [Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows <perlinger@ntp.org>
212  - openssl applink needed again for openSSL-1.1.1
213* [Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
214             Reported by Brian Utterback, broken in 2010 by <hart@ntp.org>
215* [Bug 3699] Problems handling drift file and restoring previous drifts <perlinger@ntp.org>
216  - command line options override config statements where applicable
217  - make initial frequency settings idempotent and reversible
218  - make sure kernel PLL gets a recovered drift componsation
219* [Bug 3695] Fix memory leak with ntpq on Windows Server 2019 <perlinger@ntp.org>
220* [Bug 3694] NMEA refclock seems to unnecessarily require location in messages
221  - misleading title; essentially a request to ignore the receiver status.
222    Added a mode bit for this. <perlinger@ntp.org>
223* [Bug 3693] Improvement of error handling key lengths <perlinger@ntp.org>
224  - original patch by Richard Schmidt, with mods & unit test fixes
225* [Bug 3692] /dev/gpsN requirement prevents KPPS <perlinger@ntp.org>
226  - implement/wrap 'realpath()' to resolve symlinks in device names
227* [Bug 3691] Buffer Overflow reading GPSD output
228  - original patch by matt<ntpbr@mattcorallo.com>
229  - increased max PDU size to 4k to avoid truncation
230* [Bug 3690] newline in ntp clock variable (parse) <perlinger@ntp.org>
231  - patch by Frank Kardel
232* [Bug 3689] Extension for MD5, SHA-1 and other keys <perlinger@ntp.org>
233  - ntp{q,dc} now use the same password processing as ntpd does in the key
234    file, so having a binary secret >= 11 bytes is possible for all keys.
235    (This is a different approach to the problem than suggested)
236* [Bug 3688] GCC 10 build errors in testsuite <perlinger@ntp.org>
237* [Bug 3687] ntp_crypto_rand RNG status not known <perlinger@ntp.org>
238  - patch by Gerry Garvey
239* [Bug 3682] Fixes for warnings when compiled without OpenSSL <perlinger@ntp.org>
240  - original patch by Gerry Garvey
241* [Bug 3677] additional peer events not decoded in associations listing <perlinger@ntp.org>
242  - original patch by Gerry Garvey
243* [Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
244  - applied patches by Gerry Garvey
245* [Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
246* [Bug 3674] ntpq command 'execute only' using '~' prefix <perlinger@ntp.org>
247  - idea+patch by Gerry Garvey
248* [Bug 3672] fix biased selection in median cut <perlinger@ntp.org>
249* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
250  - follow-up: fix inverted sense in check, reset shortfall counter
251* [Bug 3660] Revert 4.2.8p15 change to manycast. <hart@ntp.org>
252* [Bug 3640] document "discard monitor" and fix the code. <hart@ntp.org>
253  - fixed bug identified by Edward McGuire <perlinger@ntp.org>
254* [Bug 3626] (SNTP) UTC offset calculation needs dst flag <perlinger@ntp.org>
255  - applied patch by Gerry Garvey
256* [Bug 3432] refclocks that 'write()' should check the result <perlinger@ntp.org>
257  - backport from -dev, plus some more work on warnings for unchecked results
258* [Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
259             Reported by Israel G. Lugo. <hart@ntp.org>
260* [Bug 3103] libopts zsave_warn format string too few arguments <bkorb@gnu.org>
261* [Bug 2990] multicastclient incorrectly causes bind to broadcast address.
262             Integrated patch from Brian Utterback. <hart@ntp.org>
263* [Bug 2525] Turn on automake subdir-objects across the project. <hart@ntp.org>
264* [Bug 2410] syslog an error message on panic exceeded. <brian.utterback@oracle.com>
265* Use correct rounding in mstolfp(). perlinger/hart
266* M_ADDF should use u_int32.  <hart@ntp.org>
267* Only define tv_fmt_libbuf() if we will use it. <stenn@ntp.org>
268* Use recv_buffer instead of the longer recv_space.X_recv_buffer. hart/stenn
269* Make sure the value returned by refid_str() prints cleanly. <stenn@ntp.org>
270* If DEBUG is enabled, the startup banner now says that debug assertions
271  are in force and that ntpd will abort if any are violated. <stenn@ntp.org>
272* syslog valid incoming KoDs.  <stenn@ntp.org>
273* Rename a poorly-named variable.  <stenn@ntp.org>
274* Disable "embedded NUL in string" messages in libopts, when we can. <stenn@>
275* Use https in the AC_INIT URLs in configure.ac.  <stenn@ntp.org>
276* Implement NTP_FUNC_REALPATH.  <stenn@ntp.org>
277* Lose a gmake construct in ntpd/Makefile.am.  <stenn@ntp.org>
278* upgrade to: autogen-5.18.16
279* upgrade to: libopts-42.1.17
280* upgrade to: autoconf-2.71
281* upgrade to: automake-1.16.15
282* Upgrade to libevent-2.1.12-stable <stenn@ntp.org>
283* Support OpenSSL-3.0
284
285---
286NTP 4.2.8p15 (Harlan Stenn <stenn@ntp.org>, 2020 Jun 23)
287
288Focus: Security, Bug fixes
289
290Severity: MEDIUM
291
292This release fixes one vulnerability: Associations that use CMAC
293authentication between ntpd from versions 4.2.8p11/4.3.97 and
2944.2.8p14/4.3.100 will leak a small amount of memory for each packet.
295Eventually, ntpd will run out of memory and abort.
296
297It also fixes 13 other bugs.
298
299* [Sec 3661] memory leak with AES128CMAC keys <perlinger@ntp.org>
300* [Bug 3670] Regression from bad merger between 3592 and 3596 <perlinger@>
301  - Thanks to Sylar Tao
302* [Bug 3667] decodenetnum fails with numeric port <perlinger@ntp.org>
303  - rewrite 'decodenetnum()' in terms of inet_pton
304* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
305  - limit number of receive buffers, with an iron reserve for refclocks
306* [Bug 3664] Enable openSSL CMAC support on Windows <burnicki@ntp.org>
307* [Bug 3662] Fix build errors on Windows with VS2008 <burnicki@ntp.org>
308* [Bug 3660] Manycast orphan mode startup discovery problem. <stenn@ntp.org>
309  - integrated patch from Charles Claggett
310* [Bug 3659] Move definition of psl[] from ntp_config.h to
311  ntp_config.h <perlinger@ntp.org>
312* [Bug 3657] Wrong "Autokey group mismatch" debug message <perlinger@ntp.org>
313* [Bug 3655] ntpdc memstats hash counts <perlinger@ntp.org>
314  - fix by Gerry garvey
315* [Bug 3653] Refclock jitter RMS calculation <perlinger@ntp.org>
316  - thanks to Gerry Garvey
317* [Bug 3646] Avoid sync with unsync orphan <perlinger@ntp.org>
318  - patch by Gerry Garvey
319* [Bug 3644] Unsynchronized server [...] selected as candidate <perlinger@ntp.org>
320* [Bug 3639] refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply. <abe@ntp.org>
321  - applied patch by Takao Abe
322
323---
324NTP 4.2.8p14 (Harlan Stenn <stenn@ntp.org>, 2020 Mar 03)
325
326Focus: Security, Bug fixes, enhancements.
327
328Severity: MEDIUM
329
330This release fixes three vulnerabilities: a bug that causes causes an ntpd
331instance that is explicitly configured to override the default and allow
332ntpdc (mode 7) connections to be made to a server to read some uninitialized
333memory; fixes the case where an unmonitored ntpd using an unauthenticated
334association to its servers may be susceptible to a forged packet DoS attack;
335and fixes an attack against a client instance that uses a single
336unauthenticated time source.  It also fixes 46 other bugs and addresses
3374 other issues.
338
339* [Sec 3610] process_control() should bail earlier on short packets. stenn@
340  - Reported by Philippe Antoine
341* [Sec 3596] Highly predictable timestamp attack. <stenn@ntp.org>
342  - Reported by Miroslav Lichvar
343* [Sec 3592] DoS attack on client ntpd <perlinger@ntp.org>
344  - Reported by Miroslav Lichvar
345* [Bug 3637] Emit the version of ntpd in saveconfig.  stenn@
346* [Bug 3636] NMEA: combine time/date from multiple sentences <perlinger@ntp.org>
347* [Bug 3635] Make leapsecond file hash check optional <perlinger@ntp.org>
348* [Bug 3634] Typo in discipline.html, reported by Jason Harrison.  stenn@
349* [Bug 3628] raw DCF decoding - improve robustness with Zeller's congruence
350  - implement Zeller's congruence in libparse and libntp <perlinger@ntp.org>
351* [Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap <perlinger@ntp.org>
352  - integrated patch by Cy Schubert
353* [Bug 3620] memory leak in ntpq sysinfo <perlinger@ntp.org>
354  - applied patch by Gerry Garvey
355* [Bug 3619] Honour drefid setting in cooked mode and sysinfo <perlinger@ntp.org>
356  - applied patch by Gerry Garvey
357* [Bug 3617] Add support for ACE III and Copernicus II receivers <perlinger@ntp.org>
358  - integrated patch by Richard Steedman
359* [Bug 3615] accelerate refclock startup <perlinger@ntp.org>
360* [Bug 3613] Propagate noselect to mobilized pool servers <stenn@ntp.org>
361  - Reported by Martin Burnicki
362* [Bug 3612] Use-of-uninitialized-value in receive function <perlinger@ntp.org>
363  - Reported by Philippe Antoine
364* [Bug 3611] NMEA time interpreted incorrectly <perlinger@ntp.org>
365  - officially document new "trust date" mode bit for NMEA driver
366  - restore the (previously undocumented) "trust date" feature lost with [bug 3577]
367* [Bug 3609] Fixing wrong falseticker in case of non-statistic jitter <perlinger@ntp.org>
368  - mostly based on a patch by Michael Haardt, implementing 'fudge minjitter'
369* [Bug 3608] libparse fails to compile on S11.4SRU13 and later <perlinger@ntp.org>
370  - removed ffs() and fls() prototypes as per Brian Utterback
371* [Bug 3604] Wrong param byte order passing into record_raw_stats() in
372	ntp_io.c <perlinger@ntp.org>
373  - fixed byte and paramter order as suggested by wei6410@sina.com
374* [Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no <perlinger@ntp.org>
375* [Bug 3599] Build fails on linux-m68k due to alignment issues <perlinger@ntp.org>
376  - added padding as suggested by John Paul Adrian Glaubitz
377* [Bug 3594] ntpd discards messages coming through nmead <perlinger@ntp.org>
378* [Bug 3593] ntpd discards silently nmea messages after the 5th string <perlinger@ntp.org>
379* [Bug 3590] Update refclock_oncore.c to the new GPS date API <perlinger@ntp.org>
380* [Bug 3585] Unity tests mix buffered and unbuffered output <perlinger@ntp.org>
381  - stdout+stderr are set to line buffered during test setup now
382* [Bug 3583] synchronization error <perlinger@ntp.org>
383  - set clock to base date if system time is before that limit
384* [Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled <perlinger@ntp.org>
385* [Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc) <perlinger@ntp.org>
386  - Reported by Paulo Neves
387* [Bug 3577] Update refclock_zyfer.c to the new GPS date API <perlinger@ntp.org>
388  - also updates for refclock_nmea.c and refclock_jupiter.c
389* [Bug 3576] New GPS date function API <perlinger@ntp.org>
390* [Bug 3573] nptdate: missleading error message <perlinger@ntp.org>
391* [Bug 3570] NMEA driver docs: talker ID not mentioned, typo <perlinger@ntp.org>
392* [Bug 3569] cleanup MOD_NANO/STA_NANO handling for 'ntpadjtimex()' <perlinger@ntp.org>
393  - sidekick: service port resolution in 'ntpdate'
394* [Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH <perlinger@ntp.org>
395  - applied patch by Douglas Royds
396* [Bug 3542] ntpdc monlist parameters cannot be set <perlinger@ntp.org>
397* [Bug 3533] ntpdc peer_info ipv6 issues <perlinger@ntp.org>
398  - applied patch by Gerry Garvey
399* [Bug 3531] make check: test-decodenetnum fails <perlinger@ntp.org>
400  - try to harden 'decodenetnum()' against 'getaddrinfo()' errors
401  - fix wrong cond-compile tests in unit tests
402* [Bug 3517] Reducing build noise <perlinger@ntp.org>
403* [Bug 3516] Require tooling from this decade <perlinger@ntp.org>
404  - patch by Philipp Prindeville
405* [Bug 3515] Refactor ntpdmain() dispatcher loop and group common code <perlinger@ntp.org>
406  - patch by Philipp Prindeville
407* [Bug 3511] Get rid of AC_LANG_SOURCE() warnings <perlinger@ntp.org>
408  - patch by Philipp Prindeville
409* [Bug 3510] Flatten out the #ifdef nesting in ntpdmain() <perlinger@ntp.org>
410  - partial application of patch by Philipp Prindeville
411* [Bug 3491] Signed values of LFP datatypes should always display a sign
412  - applied patch by Gerry Garvey & fixed unit tests <perlinger@ntp.org>
413* [Bug 3490] Patch to support Trimble Resolution Receivers <perlinger@ntp.org>
414  - applied (modified) patch by Richard Steedman
415* [Bug 3473] RefID of refclocks should always be text format <perlinger@ntp.org>
416  - applied patch by Gerry Garvey (with minor formatting changes)
417* [Bug 3132] Building 4.2.8p8 with disabled local libopts fails <perlinger@ntp.org>
418  - applied patch by Miroslav Lichvar
419* [Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
420  <perlinger@ntp.org>
421* [Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user
422             is specified with -u <perlinger@ntp.org>
423  - monitor daemon child startup & propagate exit codes
424* [Bug 1433] runtime check whether the kernel really supports capabilities
425  - (modified) patch by Kurt Roeckx <perlinger@ntp.org>
426* Clean up sntp/networking.c:sendpkt() error message.  <stenn@ntp.org>
427* Provide more detail on unrecognized config file parser tokens. <stenn@ntp.org>
428* Startup log improvements. <stenn@ntp.org>
429* Update the copyright year.
430
431---
432NTP 4.2.8p13 (Harlan Stenn <stenn@ntp.org>, 2019 Mar 07)
433
434Focus: Security, Bug fixes, enhancements.
435
436Severity: MEDIUM
437
438This release fixes a bug that allows an attacker with access to an
439explicitly trusted source to send a crafted malicious mode 6 (ntpq)
440packet that can trigger a NULL pointer dereference, crashing ntpd.
441It also provides 17 other bugfixes and 1 other improvement:
442
443* [Sec 3565] Crafted null dereference attack in authenticated
444	     mode 6 packet <perlinger@ntp.org>
445  - reported by Magnus Stubman
446* [Bug 3560] Fix build when HAVE_DROPROOT is not defined <perlinger@ntp.org>
447  - applied patch by Ian Lepore
448* [Bug 3558] Crash and integer size bug <perlinger@ntp.org>
449  - isolate and fix linux/windows specific code issue
450* [Bug 3556] ntp_loopfilter.c snprintf compilation warnings <perlinger@ntp.org>
451  - provide better function for incremental string formatting
452* [Bug 3555] Tidy up print alignment of debug output from ntpdate <perlinger@ntp.org>
453  - applied patch by Gerry Garvey
454* [Bug 3554] config revoke stores incorrect value <perlinger@ntp.org>
455  - original finding by Gerry Garvey, additional cleanup needed
456* [Bug 3549] Spurious initgroups() error message <perlinger@ntp.org>
457  - patch by Christous Zoulas
458* [Bug 3548] Signature not verified on windows system <perlinger@ntp.org>
459  - finding by Chen Jiabin, plus another one by me
460* [Bug 3541] patch to fix STA_NANO struct timex units <perlinger@ntp.org>
461  - applied patch by Maciej Szmigiero
462* [Bug 3540] Cannot set minsane to 0 anymore <perlinger@ntp.org>
463  - applied patch by Andre Charbonneau
464* [Bug 3539] work_fork build fails when droproot is not supported <perlinger@ntp.org>
465  - applied patch by Baruch Siach
466* [Bug 3538] Build fails for no-MMU targets <perlinger@ntp.org>
467  - applied patch by Baruch Siach
468* [Bug 3535] libparse won't handle GPS week rollover <perlinger@ntp.org>
469  - refactored handling of GPS era based on 'tos basedate' for
470    parse (TSIP) and JUPITER clocks
471* [Bug 3529] Build failures on Mac OS X 10.13 (High Sierra) <perlinger@ntp.org>
472  - patch by Daniel J. Luke; this does not fix a potential linker
473    regression issue on MacOS.
474* [Bug 3527 - Backward Incompatible] mode7 clockinfo fudgeval2 packet
475  anomaly <perlinger@ntp.org>, reported by GGarvey.
476  - --enable-bug3527-fix support by HStenn
477* [Bug 3526] Incorrect poll interval in packet <perlinger@ntp.org>
478  - applied patch by Gerry Garvey
479* [Bug 3471] Check for openssl/[ch]mac.h.  <perlinger@ntp.org>
480  - added missing check, reported by Reinhard Max <perlinger@ntp.org>
481* [Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
482  - this is a variant of [bug 3558] and should be fixed with it
483* Implement 'configure --disable-signalled-io'
484
485--
486NTP 4.2.8p12 (Harlan Stenn <stenn@ntp.org>, 2018/14/09)
487
488Focus: Security, Bug fixes, enhancements.
489
490Severity: MEDIUM
491
492This release fixes a "hole" in the noepeer capability introduced to ntpd
493in ntp-4.2.8p11, and a buffer overflow in the openhost() function used by
494ntpq and ntpdc.  It also provides 26 other bugfixes, and 4 other improvements:
495
496* [Sec 3505] Buffer overflow in the openhost() call of ntpq and ntpdc.
497
498* [Sec 3012] Fix a hole in the new "noepeer" processing.
499
500* Bug Fixes:
501 [Bug 3521] Fix a logic bug in the INVALIDNAK checks.  <stenn@ntp.org>
502 [Bug 3509] Add support for running as non-root on FreeBSD, Darwin,
503            other TrustedBSD platforms
504 - applied patch by Ian Lepore <perlinger@ntp.org>
505 [Bug 3506] Service Control Manager interacts poorly with NTPD <perlinger@ntp.org>
506 - changed interaction with SCM to signal pending startup
507 [Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags() <perlinger@ntp.org>
508 - applied patch by Gerry Garvey
509 [Bug 3485] Undefined sockaddr used in error messages in ntp_config.c <perlinger@ntp.org>
510 - applied patch by Gerry Garvey
511 [Bug 3484] ntpq response from ntpd is incorrect when REFID is null <perlinger@ntp.org>
512 - rework of ntpq 'nextvar()' key/value parsing
513 [Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c) <perlinger@ntp.org>
514 - applied patch by Gerry Garvey (with mods)
515 [Bug 3480] Refclock sample filter not cleared on clock STEP <perlinger@ntp.org>
516 - applied patch by Gerry Garvey
517 [Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq <perlinger@ntp.org>
518 - applied patch by Gerry Garvey (with mods)
519 [Bug 3476]ctl_putstr() sends empty unquoted string [...] <perlinger@ntp.org>
520 - applied patch by Gerry Garvey (with mods); not sure if that's bug or feature, though
521 [Bug 3475] modify prettydate() to suppress output of zero time <perlinger@ntp.org>
522 - applied patch by Gerry Garvey
523 [Bug 3474] Missing pmode in mode7 peer info response <perlinger@ntp.org>
524 - applied patch by Gerry Garvey
525 [Bug 3471] Check for openssl/[ch]mac.h.  HStenn.
526 - add #define ENABLE_CMAC support in configure.  HStenn.
527 [Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL <perlinger@ntp.org>
528 [Bug 3469] Incomplete string compare [...] in is_refclk_addr <perlinger@ntp.org>
529 - patch by Stephen Friedl
530 [Bug 3467] Potential memory fault in ntpq [...] <perlinger@ntp.org>
531 - fixed IO redirection and CTRL-C handling in ntq and ntpdc
532 [Bug 3465] Default TTL values cannot be used <perlinger@ntp.org>
533 [Bug 3461] refclock_shm.c: clear error status on clock recovery <perlinger@ntp.org>
534 - initial patch by Hal Murray; also fixed refclock_report() trouble
535 [Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph.  <stenn@ntp.org>
536 [Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
537 - According to Brooks Davis, there was only one location <perlinger@ntp.org>
538 [Bug 3449] ntpq - display "loop" instead of refid [...] <perlinger@ntp.org>
539 - applied patch by Gerry Garvey
540 [Bug 3445] Symmetric peer won't sync on startup <perlinger@ntp.org>
541 - applied patch by Gerry Garvey
542 [Bug 3442] Fixes for ntpdate as suggested by Gerry Garvey,
543 with modifications
544 New macro REFID_ISTEXT() which is also used in ntpd/ntp_control.c.
545 [Bug 3434] ntpd clears STA_UNSYNC on start <perlinger@ntp.org>
546 - applied patch by Miroslav Lichvar
547 [Bug 3426] ntpdate.html -t default is 2 seconds.  Leonid Evdokimov.
548 [Bug 3121] Drop root privileges for the forked DNS worker <perlinger@ntp.org>
549 - integrated patch by  Reinhard Max
550 [Bug 2821] minor build issues <perlinger@ntp.org>
551 - applied patches by Christos Zoulas, including real bug fixes
552 html/authopt.html: cleanup, from <stenn@ntp.org>
553 ntpd/ntpd.c: DROPROOT cleanup.  <stenn@ntp.org>
554 Symmetric key range is 1-65535.  Update docs.   <stenn@ntp.org>
555
556--
557NTP 4.2.8p11 (Harlan Stenn <stenn@ntp.org>, 2018/02/27)
558
559Focus: Security, Bug fixes, enhancements.
560
561Severity: MEDIUM
562
563This release fixes 2 low-/medium-, 1 informational/medum-, and 2 low-severity
564vulnerabilities in ntpd, one medium-severity vulernability in ntpq, and
565provides 65 other non-security fixes and improvements:
566
567* NTP Bug 3454: Unauthenticated packet can reset authenticated interleaved
568	association (LOW/MED)
569   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
570   References: Sec 3454 / CVE-2018-7185 / VU#961909
571   Affects: ntp-4.2.6, up to but not including ntp-4.2.8p11.
572   CVSS2: MED 4.3 (AV:N/AC:M/Au:N/C:N/I:N/A:P) This could score between
573	2.9 and 6.8.
574   CVSS3: LOW 3.1 CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L This could
575	score between 2.6 and 3.1
576   Summary:
577	The NTP Protocol allows for both non-authenticated and
578	authenticated associations, in client/server, symmetric (peer),
579	and several broadcast modes. In addition to the basic NTP
580	operational modes, symmetric mode and broadcast servers can
581	support an interleaved mode of operation. In ntp-4.2.8p4 a bug
582	was inadvertently introduced into the protocol engine that
583	allows a non-authenticated zero-origin (reset) packet to reset
584	an authenticated interleaved peer association. If an attacker
585	can send a packet with a zero-origin timestamp and the source
586	IP address of the "other side" of an interleaved association,
587	the 'victim' ntpd will reset its association. The attacker must
588	continue sending these packets in order to maintain the
589	disruption of the association. In ntp-4.0.0 thru ntp-4.2.8p6,
590	interleave mode could be entered dynamically. As of ntp-4.2.8p7,
591	interleaved mode must be explicitly configured/enabled.
592   Mitigation:
593	Implement BCP-38.
594	Upgrade to 4.2.8p11, or later, from the NTP Project Download Page
595	    or the NTP Public Services Project Download Page.
596	If you are unable to upgrade to 4.2.8p11 or later and have
597	    'peer HOST xleave' lines in your ntp.conf file, remove the
598	    'xleave' option.
599	Have enough sources of time.
600	Properly monitor your ntpd instances.
601	If ntpd stops running, auto-restart it without -g .
602   Credit:
603   	This weakness was discovered by Miroslav Lichvar of Red Hat.
604
605* NTP Bug 3453: Interleaved symmetric mode cannot recover from bad
606	state (LOW/MED)
607   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
608   References: Sec 3453 / CVE-2018-7184 / VU#961909
609   Affects: ntpd in ntp-4.2.8p4, up to but not including ntp-4.2.8p11.
610   CVSS2: MED 4.3 (AV:N/AC:M/Au:N/C:P/I:N/A:N)
611	Could score between 2.9 and 6.8.
612   CVSS3: LOW 3.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
613	Could score between 2.6 and 6.0.
614   Summary:
615   	The fix for NtpBug2952 was incomplete, and while it fixed one
616	problem it created another.  Specifically, it drops bad packets
617	before updating the "received" timestamp.  This means a
618	third-party can inject a packet with a zero-origin timestamp,
619	meaning the sender wants to reset the association, and the
620	transmit timestamp in this bogus packet will be saved as the
621	most recent "received" timestamp.  The real remote peer does
622	not know this value and this will disrupt the association until
623	the association resets.
624   Mitigation:
625	Implement BCP-38.
626	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
627	    or the NTP Public Services Project Download Page.
628	Use authentication with 'peer' mode.
629	Have enough sources of time.
630	Properly monitor your ntpd instances.
631	If ntpd stops running, auto-restart it without -g .
632   Credit:
633   	This weakness was discovered by Miroslav Lichvar of Red Hat.
634
635* NTP Bug 3415: Provide a way to prevent authenticated symmetric passive
636	peering (LOW)
637   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
638   References: Sec 3415 / CVE-2018-7170 / VU#961909
639   	       Sec 3012 / CVE-2016-1549 / VU#718152
640   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
641   	4.3.0 up to, but not including 4.3.92.  Resolved in 4.2.8p11.
642   CVSS2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
643   CVSS3: LOW 3.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
644   Summary:
645	ntpd can be vulnerable to Sybil attacks.  If a system is set up to
646	use a trustedkey and if one is not using the feature introduced in
647	ntp-4.2.8p6 allowing an optional 4th field in the ntp.keys file to
648	specify which IPs can serve time, a malicious authenticated peer
649	-- i.e. one where the attacker knows the private symmetric key --
650	can create arbitrarily-many ephemeral associations in order to win
651	the clock selection of ntpd and modify a victim's clock.  Three
652	additional protections are offered in ntp-4.2.8p11.  One is the
653	new 'noepeer' directive, which disables symmetric passive
654	ephemeral peering. Another is the new 'ippeerlimit' directive,
655	which limits the number of peers that can be created from an IP.
656	The third extends the functionality of the 4th field in the
657	ntp.keys file to include specifying a subnet range.
658   Mitigation:
659	Implement BCP-38.
660	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
661	    or the NTP Public Services Project Download Page.
662	Use the 'noepeer' directive to prohibit symmetric passive
663	    ephemeral associations.
664	Use the 'ippeerlimit' directive to limit the number of peers
665	    that can be created from an IP.
666	Use the 4th argument in the ntp.keys file to limit the IPs and
667	    subnets that can be time servers.
668	Have enough sources of time.
669	Properly monitor your ntpd instances.
670	If ntpd stops running, auto-restart it without -g .
671   Credit:
672	This weakness was reported as Bug 3012 by Matthew Van Gundy of
673	Cisco ASIG, and separately by Stefan Moser as Bug 3415.
674
675* ntpq Bug 3414: decodearr() can write beyond its 'buf' limits (Medium)
676   Date Resolved: 27 Feb 2018
677   References: Sec 3414 / CVE-2018-7183 / VU#961909
678   Affects: ntpq in ntp-4.2.8p6, up to but not including ntp-4.2.8p11.
679   CVSS2: MED 6.8 (AV:N/AC:M/Au:N/C:P/I:P/A:P)
680   CVSS3: MED 5.0 CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L
681   Summary:
682   	ntpq is a monitoring and control program for ntpd.  decodearr()
683	is an internal function of ntpq that is used to -- wait for it --
684	decode an array in a response string when formatted data is being
685	displayed.  This is a problem in affected versions of ntpq if a
686	maliciously-altered ntpd returns an array result that will trip this
687	bug, or if a bad actor is able to read an ntpq request on its way to
688	a remote ntpd server and forge and send a response before the remote
689	ntpd sends its response.  It's potentially possible that the
690	malicious data could become injectable/executable code.
691   Mitigation:
692	Implement BCP-38.
693	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
694	    or the NTP Public Services Project Download Page.
695   Credit:
696	This weakness was discovered by Michael Macnair of Thales e-Security.
697
698* NTP Bug 3412: ctl_getitem(): buffer read overrun leads to undefined
699	behavior and information leak (Info/Medium)
700   Date Resolved: 27 Feb 2018
701   References: Sec 3412 / CVE-2018-7182 / VU#961909
702   Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p11.
703   CVSS2: INFO 0.0 - MED 5.0 (AV:N/AC:L/Au:N/C:P/I:N/A:N) 0.0 if C:N
704   CVSS3: NONE 0.0 - MED 5.3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
705	0.0 if C:N
706   Summary:
707	ctl_getitem()  is used by ntpd to process incoming mode 6 packets.
708	A malicious mode 6 packet can be sent to an ntpd instance, and
709	if the ntpd instance is from 4.2.8p6 thru 4.2.8p10, that will
710	cause ctl_getitem() to read past the end of its buffer.
711   Mitigation:
712	Implement BCP-38.
713	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
714	    or the NTP Public Services Project Download Page.
715	Have enough sources of time.
716	Properly monitor your ntpd instances.
717	If ntpd stops running, auto-restart it without -g .
718   Credit:
719   	This weakness was discovered by Yihan Lian of Qihoo 360.
720
721* NTP Bug 3012: Sybil vulnerability: ephemeral association attack
722   Also see Bug 3415, above.
723   Date Mitigated: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
724   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
725   References: Sec 3012 / CVE-2016-1549 / VU#718152
726   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
727	4.3.0 up to, but not including 4.3.92.  Resolved in 4.2.8p11.
728   CVSS2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
729   CVSS3: MED 5.3 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
730   Summary:
731	ntpd can be vulnerable to Sybil attacks.  If a system is set up
732	to use a trustedkey and if one is not using the feature
733	introduced in ntp-4.2.8p6 allowing an optional 4th field in the
734	ntp.keys file to specify which IPs can serve time, a malicious
735	authenticated peer -- i.e. one where the attacker knows the
736	private symmetric key -- can create arbitrarily-many ephemeral
737	associations in order to win the clock selection of ntpd and
738	modify a victim's clock.  Two additional protections are
739	offered in ntp-4.2.8p11.  One is the 'noepeer' directive, which
740	disables symmetric passive ephemeral peering. The other extends
741	the functionality of the 4th field in the ntp.keys file to
742	include specifying a subnet range.
743   Mitigation:
744	Implement BCP-38.
745	Upgrade to 4.2.8p11, or later, from the NTP Project Download Page or
746	    the NTP Public Services Project Download Page.
747	Use the 'noepeer' directive to prohibit symmetric passive
748	    ephemeral associations.
749	Use the 'ippeerlimit' directive to limit the number of peer
750	    associations from an IP.
751	Use the 4th argument in the ntp.keys file to limit the IPs
752	    and subnets that can be time servers.
753	Properly monitor your ntpd instances.
754   Credit:
755   	This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
756
757* Bug fixes:
758 [Bug 3457] OpenSSL FIPS mode regression <perlinger@ntp.org>
759 [Bug 3455] ntpd doesn't use scope id when binding multicast <perlinger@ntp.org>
760 - applied patch by Sean Haugh
761 [Bug 3452] PARSE driver prints uninitialized memory. <perlinger@ntp.org>
762 [Bug 3450] Dubious error messages from plausibility checks in get_systime()
763 - removed error log caused by rounding/slew, ensured postcondition <perlinger@ntp.org>
764 [Bug 3447] AES-128-CMAC (fixes) <perlinger@ntp.org>
765 - refactoring the MAC code, too
766 [Bug 3441] Validate the assumption that AF_UNSPEC is 0.  stenn@ntp.org
767 [Bug 3439] When running multiple commands / hosts in ntpq... <perlinger@ntp.org>
768 - applied patch by ggarvey
769 [Bug 3438] Negative values and values > 999 days in... <perlinger@ntp.org>
770 - applied patch by ggarvey (with minor mods)
771 [Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
772 - applied patch (with mods) by Miroslav Lichvar <perlinger@ntp.org>
773 [Bug 3435] anchor NTP era alignment <perlinger@ntp.org>
774 [Bug 3433] sntp crashes when run with -a.  <stenn@ntp.org>
775 [Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
776 - fixed several issues with hash algos in ntpd, sntp, ntpq,
777   ntpdc and the test suites <perlinger@ntp.org>
778 [Bug 3424] Trimble Thunderbolt 1024 week millenium bug <perlinger@ntp.org>
779 - initial patch by Daniel Pouzzner
780 [Bug 3423] QNX adjtime() implementation error checking is
781 wrong <perlinger@ntp.org>
782 [Bug 3417] ntpq ifstats packet counters can be negative
783 made IFSTATS counter quantities unsigned <perlinger@ntp.org>
784 [Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
785 - raised receive buffer size to 1200 <perlinger@ntp.org>
786 [Bug 3408] refclock_jjy.c: Avoid a wrong report of the coverity static
787 analysis tool. <abe@ntp.org>
788 [Bug 3405] update-leap.in: general cleanup, HTTPS support.  Paul McMath.
789 [Bug 3404] Fix openSSL DLL usage under Windows <perlinger@ntp.org>
790 - fix/drop assumptions on OpenSSL libs directory layout
791 [Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
792 - initial patch by timeflies@mail2tor.com  <perlinger@ntp.org>
793 [Bug 3398] tests fail with core dump <perlinger@ntp.org>
794 - patch contributed by Alexander Bluhm
795 [Bug 3397] ctl_putstr() asserts that data fits in its buffer
796 rework of formatting & data transfer stuff in 'ntp_control.c'
797 avoids unecessary buffers and size limitations. <perlinger@ntp.org>
798 [Bug 3394] Leap second deletion does not work on ntpd clients
799 - fixed handling of dynamic deletion w/o leap file <perlinger@ntp.org>
800 [Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
801 - increased mimimum stack size to 32kB <perlinger@ntp.org>
802 [Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8 <perlinger@ntp.org>
803 - reverted handling of PPS kernel consumer to 4.2.6 behavior
804 [Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
805 [Bug 3358] Spurious KoD log messages in .INIT. phase.  HStenn.
806 [Bug 3016] wrong error position reported for bad ":config pool"
807 - fixed location counter & ntpq output <perlinger@ntp.org>
808 [Bug 2900] libntp build order problem.  HStenn.
809 [Bug 2878] Tests are cluttering up syslog <perlinger@ntp.org>
810 [Bug 2737] Wrong phone number listed for USNO. ntp-bugs@bodosom.net,
811 perlinger@ntp.org
812 [Bug 2557] Fix Thunderbolt init. ntp-bugs@bodosom.net, perlinger@ntp.
813 [Bug 948] Trustedkey config directive leaks memory. <perlinger@ntp.org>
814 Use strlcpy() to copy strings, not memcpy().  HStenn.
815 Typos.  HStenn.
816 test_ntp_scanner_LDADD needs ntpd/ntp_io.o.  HStenn.
817 refclock_jjy.c: Add missing "%s" to an msyslog() call.  HStenn.
818 Build ntpq and libntpq.a with NTP_HARD_*FLAGS.  perlinger@ntp.org
819 Fix trivial warnings from 'make check'. perlinger@ntp.org
820 Fix bug in the override portion of the compiler hardening macro. HStenn.
821 record_raw_stats(): Log entire packet.  Log writes.  HStenn.
822 AES-128-CMAC support.  BInglis, HStenn, JPerlinger.
823 sntp: tweak key file logging.  HStenn.
824 sntp: pkt_output(): Improve debug output.  HStenn.
825 update-leap: updates from Paul McMath.
826 When using pkg-config, report --modversion.  HStenn.
827 Clean up libevent configure checks.  HStenn.
828 sntp: show the IP of who sent us a crypto-NAK.  HStenn.
829 Allow .../N to specify subnet bits for IPs in ntp.keys.  HStenn, JPerlinger.
830 authistrustedip() - use it in more places.  HStenn, JPerlinger.
831 New sysstats: sys_lamport, sys_tsrounding.  HStenn.
832 Update ntp.keys .../N documentation.  HStenn.
833 Distribute testconf.yml.  HStenn.
834 Add DPRINTF(2,...) lines to receive() for packet drops.  HStenn.
835 Rename the configuration flag fifo variables.  HStenn.
836 Improve saveconfig output.  HStenn.
837 Decode restrict flags on receive() debug output.  HStenn.
838 Decode interface flags on receive() debug output.  HStenn.
839 Warn the user if deprecated "driftfile name WanderThreshold" is used.  HStenn.
840 Update the documentation in ntp.conf.def .  HStenn.
841 restrictions() must return restrict flags and ippeerlimit.  HStenn.
842 Update ntpq peer documentation to describe the 'p' type.  HStenn.
843 Rename restrict 'flags' to 'rflags.  Use an enum for the values.  HStenn.
844 Provide dump_restricts() for debugging.  HStenn.
845 Use consistent 4th arg type for [gs]etsockopt.  JPerlinger.
846
847* Other items:
848
849* update-leap needs the following perl modules:
850	Net::SSLeay
851	IO::Socket::SSL
852
853* New sysstats variables: sys_lamport, sys_tsrounding
854See them with: ntpq -c "rv 0 ss_lamport,ss_tsrounding"
855sys_lamport counts the number of observed Lamport violations, while
856sys_tsrounding counts observed timestamp rounding events.
857
858* New ntp.conf items:
859
860- restrict ... noepeer
861- restrict ... ippeerlimit N
862
863The 'noepeer' directive will disallow all ephemeral/passive peer
864requests.
865
866The 'ippeerlimit' directive limits the number of time associations
867for each IP in the designated set of addresses.  This limit does not
868apply to explicitly-configured associations.  A value of -1, the current
869default, means an unlimited number of associations may connect from a
870single IP.  0 means "none", etc.  Ordinarily the only way multiple
871associations would come from the same IP would be if the remote side
872was using a proxy.  But a trusted machine might become compromised,
873in which case an attacker might spin up multiple authenticated sessions
874from different ports.  This directive should be helpful in this case.
875
876* New ntp.keys feature: Each IP in the optional list of IPs in the 4th
877field may contain a /subnetbits specification, which identifies  the
878scope of IPs that may use this key.  This IP/subnet restriction can be
879used to limit the IPs that may use the key in most all situations where
880a key is used.
881--
882NTP 4.2.8p10 (Harlan Stenn <stenn@ntp.org>, 2017/03/21)
883
884Focus: Security, Bug fixes, enhancements.
885
886Severity: MEDIUM
887
888This release fixes 5 medium-, 6 low-, and 4 informational-severity
889vulnerabilities, and provides 15 other non-security fixes and improvements:
890
891* NTP-01-016 NTP: Denial of Service via Malformed Config (Medium)
892   Date Resolved: 21 Mar 2017
893   References: Sec 3389 / CVE-2017-6464 / VU#325339
894   Affects: All versions of NTP-4, up to but not including ntp-4.2.8p10, and
895	ntp-4.3.0 up to, but not including ntp-4.3.94.
896   CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
897   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
898   Summary:
899	A vulnerability found in the NTP server makes it possible for an
900	authenticated remote user to crash ntpd via a malformed mode
901	configuration directive.
902   Mitigation:
903	Implement BCP-38.
904	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page or
905	    the NTP Public Services Project Download Page
906	Properly monitor your ntpd instances, and auto-restart
907	    ntpd (without -g) if it stops running.
908   Credit:
909	This weakness was discovered by Cure53.
910
911* NTP-01-014 NTP: Buffer Overflow in DPTS Clock (Low)
912    Date Resolved: 21 Mar 2017
913    References: Sec 3388 / CVE-2017-6462 / VU#325339
914    Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and ntp-4.3.0 up to, but not including ntp-4.3.94.
915    CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
916    CVSS3: Low 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
917    Summary:
918	There is a potential for a buffer overflow in the legacy Datum
919	Programmable Time Server refclock driver.  Here the packets are
920	processed from the /dev/datum device and handled in
921	datum_pts_receive().  Since an attacker would be required to
922	somehow control a malicious /dev/datum device, this does not
923	appear to be a practical attack and renders this issue "Low" in
924	terms of severity.
925   Mitigation:
926	If you have a Datum reference clock installed and think somebody
927	    may maliciously change the device, upgrade to 4.2.8p10, or
928	    later, from the NTP Project Download Page or the NTP Public
929	    Services Project Download Page
930	Properly monitor your ntpd instances, and auto-restart
931	    ntpd (without -g) if it stops running.
932   Credit:
933	This weakness was discovered by Cure53.
934
935* NTP-01-012 NTP: Authenticated DoS via Malicious Config Option (Medium)
936   Date Resolved: 21 Mar 2017
937   References: Sec 3387 / CVE-2017-6463 / VU#325339
938   Affects: All versions of ntp, up to but not including ntp-4.2.8p10, and
939	ntp-4.3.0 up to, but not including ntp-4.3.94.
940   CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
941   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
942   Summary:
943	A vulnerability found in the NTP server allows an authenticated
944	remote attacker to crash the daemon by sending an invalid setting
945	via the :config directive.  The unpeer option expects a number or
946	an address as an argument.  In case the value is "0", a
947	segmentation fault occurs.
948   Mitigation:
949	Implement BCP-38.
950	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
951	    or the NTP Public Services Project Download Page
952	Properly monitor your ntpd instances, and auto-restart
953	    ntpd (without -g) if it stops running.
954   Credit:
955	This weakness was discovered by Cure53.
956
957* NTP-01-011 NTP: ntpq_stripquotes() returns incorrect value (Informational)
958   Date Resolved: 21 Mar 2017
959   References: Sec 3386
960   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
961	ntp-4.3.0 up to, but not including ntp-4.3.94.
962   CVSS2: None 0.0 (AV:N/AC:H/Au:N/C:N/I:N/A:N)
963   CVSS3: None 0.0 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N
964   Summary:
965	The NTP Mode 6 monitoring and control client, ntpq, uses the
966	function ntpq_stripquotes() to remove quotes and escape characters
967	from a given string.  According to the documentation, the function
968	is supposed to return the number of copied bytes but due to
969	incorrect pointer usage this value is always zero.  Although the
970	return value of this function is never used in the code, this
971	flaw could lead to a vulnerability in the future.  Since relying
972	on wrong return values when performing memory operations is a
973	dangerous practice, it is recommended to return the correct value
974	in accordance with the documentation pertinent to the code.
975   Mitigation:
976	Implement BCP-38.
977	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
978	    or the NTP Public Services Project Download Page
979	Properly monitor your ntpd instances, and auto-restart
980	    ntpd (without -g) if it stops running.
981   Credit:
982	This weakness was discovered by Cure53.
983
984* NTP-01-010 NTP: ereallocarray()/eallocarray() underused (Info)
985   Date Resolved: 21 Mar 2017
986   References: Sec 3385
987   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
988	ntp-4.3.0 up to, but not including ntp-4.3.94.
989   Summary:
990	NTP makes use of several wrappers around the standard heap memory
991	allocation functions that are provided by libc.  This is mainly
992	done to introduce additional safety checks concentrated on
993	several goals.  First, they seek to ensure that memory is not
994	accidentally freed, secondly they verify that a correct amount
995	is always allocated and, thirdly, that allocation failures are
996	correctly handled.  There is an additional implementation for
997	scenarios where memory for a specific amount of items of the
998	same size needs to be allocated.  The handling can be found in
999	the oreallocarray() function for which a further number-of-elements
1000	parameter needs to be provided.  Although no considerable threat
1001	was identified as tied to a lack of use of this function, it is
1002	recommended to correctly apply oreallocarray() as a preferred
1003	option across all of the locations where it is possible.
1004   Mitigation:
1005	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1006	    or the NTP Public Services Project Download Page
1007   Credit:
1008	This weakness was discovered by Cure53.
1009
1010* NTP-01-009 NTP: Privileged execution of User Library code (WINDOWS
1011	PPSAPI ONLY) (Low)
1012   Date Resolved: 21 Mar 2017
1013   References: Sec 3384 / CVE-2017-6455 / VU#325339
1014   Affects: All Windows versions of ntp-4 that use the PPSAPI, up to but
1015	not including ntp-4.2.8p10, and ntp-4.3.0 up to, but not
1016	including ntp-4.3.94.
1017   CVSS2: MED 3.8 (AV:L/AC:H/Au:S/C:N/I:N/A:C)
1018   CVSS3: MED 4.0 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1019   Summary:
1020	The Windows NT port has the added capability to preload DLLs
1021	defined in the inherited global local environment variable
1022	PPSAPI_DLLS.  The code contained within those libraries is then
1023	called from the NTPD service, usually running with elevated
1024	privileges. Depending on how securely the machine is setup and
1025	configured, if ntpd is configured to use the PPSAPI under Windows
1026	this can easily lead to a code injection.
1027   Mitigation:
1028	Implement BCP-38.
1029	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1030	    or the NTP Public Services Project Download Page
1031   Credit:
1032   This weakness was discovered by Cure53.
1033
1034* NTP-01-008 NTP: Stack Buffer Overflow from Command Line (WINDOWS
1035	installer ONLY) (Low)
1036   Date Resolved: 21 Mar 2017
1037   References: Sec 3383 / CVE-2017-6452 / VU#325339
1038   Affects: WINDOWS installer ONLY: All versions of the ntp-4 Windows
1039	installer, up to but not including ntp-4.2.8p10, and ntp-4.3.0 up
1040	to, but not including ntp-4.3.94.
1041   CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
1042   CVSS3: Low 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
1043   Summary:
1044	The Windows installer for NTP calls strcat(), blindly appending
1045	the string passed to the stack buffer in the addSourceToRegistry()
1046	function.  The stack buffer is 70 bytes smaller than the buffer
1047	in the calling main() function.  Together with the initially
1048	copied Registry path, the combination causes a stack buffer
1049	overflow and effectively overwrites the stack frame.  The
1050	passed application path is actually limited to 256 bytes by the
1051	operating system, but this is not sufficient to assure that the
1052	affected stack buffer is consistently protected against
1053	overflowing at all times.
1054   Mitigation:
1055	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1056	or the NTP Public Services Project Download Page
1057   Credit:
1058	This weakness was discovered by Cure53.
1059
1060* NTP-01-007 NTP: Data Structure terminated insufficiently (WINDOWS
1061	installer ONLY) (Low)
1062   Date Resolved: 21 Mar 2017
1063   References: Sec 3382 / CVE-2017-6459 / VU#325339
1064   Affects: WINDOWS installer ONLY: All ntp-4 versions of the Windows
1065	installer, up to but not including ntp-4.2.8p10, and ntp-4.3.0
1066	up to, but not including ntp-4.3.94.
1067   CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
1068   CVSS3: Low 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
1069   Summary:
1070	The Windows installer for NTP calls strcpy() with an argument
1071	that specifically contains multiple null bytes.  strcpy() only
1072	copies a single terminating null character into the target
1073	buffer instead of copying the required double null bytes in the
1074	addKeysToRegistry() function.  As a consequence, a garbage
1075	registry entry can be created.  The additional arsize parameter
1076	is erroneously set to contain two null bytes and the following
1077	call to RegSetValueEx() claims to be passing in a multi-string
1078	value, though this may not be true.
1079   Mitigation:
1080	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1081	    or the NTP Public Services Project Download Page
1082   Credit:
1083	This weakness was discovered by Cure53.
1084
1085* NTP-01-006 NTP: Copious amounts of Unused Code (Informational)
1086   References: Sec 3381
1087   Summary:
1088	The report says: Statically included external projects
1089	potentially introduce several problems and the issue of having
1090	extensive amounts of code that is "dead" in the resulting binary
1091	must clearly be pointed out.  The unnecessary unused code may or
1092	may not contain bugs and, quite possibly, might be leveraged for
1093	code-gadget-based branch-flow redirection exploits.  Analogically,
1094	having source trees statically included as well means a failure
1095	in taking advantage of the free feature for periodical updates.
1096	This solution is offered by the system's Package Manager. The
1097	three libraries identified are libisc, libevent, and libopts.
1098   Resolution:
1099	For libisc, we already only use a portion of the original library.
1100	We've found and fixed bugs in the original implementation (and
1101	offered the patches to ISC), and plan to see what has changed
1102	since we last upgraded the code.  libisc is generally not
1103	installed, and when it it we usually only see the static libisc.a
1104	file installed.  Until we know for sure that the bugs we've found
1105	and fixed are fixed upstream, we're better off with the copy we
1106	are using.
1107
1108        Version 1 of libevent was the only production version available
1109	until recently, and we've been requiring version 2 for a long time.
1110	But if the build system has at least version 2 of libevent
1111	installed, we'll use the version that is installed on the system.
1112	Otherwise, we provide a copy of libevent that we know works.
1113
1114        libopts is provided by GNU AutoGen, and that library and package
1115	undergoes frequent API version updates.  The version of autogen
1116	used to generate the tables for the code must match the API
1117	version in libopts.  AutoGen can be ... difficult to build and
1118	install, and very few developers really need it.  So we have it
1119	on our build and development machines, and we provide the
1120	specific version of the libopts code in the distribution to make
1121	sure that the proper API version of libopts is available.
1122
1123        As for the point about there being code in these libraries that
1124	NTP doesn't use, OK.  But other packages used these libraries as
1125	well, and it is reasonable to assume that other people are paying
1126	attention to security and code quality issues for the overall
1127	libraries.  It takes significant resources to analyze and
1128	customize these libraries to only include what we need, and to
1129	date we believe the cost of this effort does not justify the benefit.
1130   Credit:
1131	This issue was discovered by Cure53.
1132
1133* NTP-01-005 NTP: Off-by-one in Oncore GPS Receiver (Low)
1134   Date Resolved: 21 Mar 2017
1135   References: Sec 3380
1136   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
1137   	ntp-4.3.0 up to, but not including ntp-4.3.94.
1138   CVSS2: None 0.0 (AV:L/AC:H/Au:N/C:N/I:N/A:N)
1139   CVSS3: None 0.0 CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N
1140   Summary:
1141	There is a fencepost error in a "recovery branch" of the code for
1142	the Oncore GPS receiver if the communication link to the ONCORE
1143	is weak / distorted and the decoding doesn't work.
1144   Mitigation:
1145        Upgrade to 4.2.8p10, or later, from the NTP Project Download Page or
1146	    the NTP Public Services Project Download Page
1147        Properly monitor your ntpd instances, and auto-restart
1148	    ntpd (without -g) if it stops running.
1149   Credit:
1150	This weakness was discovered by Cure53.
1151
1152* NTP-01-004 NTP: Potential Overflows in ctl_put() functions (Medium)
1153   Date Resolved: 21 Mar 2017
1154   References: Sec 3379 / CVE-2017-6458 / VU#325339
1155   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
1156	ntp-4.3.0 up to, but not including ntp-4.3.94.
1157   CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
1158   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1159   Summary:
1160	ntpd makes use of different wrappers around ctl_putdata() to
1161	create name/value ntpq (mode 6) response strings.  For example,
1162	ctl_putstr() is usually used to send string data (variable names
1163	or string data).  The formatting code was missing a length check
1164	for variable names.  If somebody explicitly created any unusually
1165	long variable names in ntpd (longer than 200-512 bytes, depending
1166	on the type of variable), then if any of these variables are
1167	added to the response list it would overflow a buffer.
1168   Mitigation:
1169	Implement BCP-38.
1170	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1171	    or the NTP Public Services Project Download Page
1172	If you don't want to upgrade, then don't setvar variable names
1173	    longer than 200-512 bytes in your ntp.conf file.
1174	Properly monitor your ntpd instances, and auto-restart
1175	    ntpd (without -g) if it stops running.
1176   Credit:
1177	This weakness was discovered by Cure53.
1178
1179* NTP-01-003 NTP: Improper use of snprintf() in mx4200_send() (Low)
1180   Date Resolved: 21 Mar 2017
1181   References: Sec 3378 / CVE-2017-6451 / VU#325339
1182   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
1183	ntp-4.3.0 up to, but not including ntp-4.3.94.
1184   CVSS2: LOW 0.8 (AV:L/AC:H/Au:M/C:N/I:N/A:P)
1185   CVSS3: LOW 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N
1186   Summary:
1187	The legacy MX4200 refclock is only built if is specifically
1188	enabled, and furthermore additional code changes are required to
1189	compile and use it.  But it uses the libc functions snprintf()
1190	and vsnprintf() incorrectly, which can lead to an out-of-bounds
1191	memory write due to an improper handling of the return value of
1192	snprintf()/vsnprintf().  Since the return value is used as an
1193	iterator and it can be larger than the buffer's size, it is
1194	possible for the iterator to point somewhere outside of the
1195	allocated buffer space.  This results in an out-of-bound memory
1196	write.  This behavior can be leveraged to overwrite a saved
1197	instruction pointer on the stack and gain control over the
1198	execution flow.  During testing it was not possible to identify
1199	any malicious usage for this vulnerability.  Specifically, no
1200	way for an attacker to exploit this vulnerability was ultimately
1201	unveiled.  However, it has the potential to be exploited, so the
1202	code should be fixed.
1203   Mitigation, if you have a Magnavox MX4200 refclock:
1204	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1205	    or the NTP Public Services Project Download Page.
1206	Properly monitor your ntpd instances, and auto-restart
1207	    ntpd (without -g) if it stops running.
1208   Credit:
1209	This weakness was discovered by Cure53.
1210
1211* NTP-01-002 NTP: Buffer Overflow in ntpq when fetching reslist from a
1212	malicious ntpd (Medium)
1213   Date Resolved: 21 Mar 2017
1214   References: Sec 3377 / CVE-2017-6460 / VU#325339
1215   Affects: All versions of ntpq, up to but not including ntp-4.2.8p10, and
1216	ntp-4.3.0 up to, but not including ntp-4.3.94.
1217   CVSS2: MED 4.9 (AV:N/AC:H/Au:S/C:N/I:N/A:C)
1218   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1219   Summary:
1220	A stack buffer overflow in ntpq can be triggered by a malicious
1221	ntpd server when ntpq requests the restriction list from the server.
1222	This is due to a missing length check in the reslist() function.
1223	It occurs whenever the function parses the server's response and
1224	encounters a flagstr variable of an excessive length.  The string
1225	will be copied into a fixed-size buffer, leading to an overflow on
1226	the function's stack-frame.  Note well that this problem requires
1227	a malicious server, and affects ntpq, not ntpd.
1228   Mitigation:
1229	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1230	    or the NTP Public Services Project Download Page
1231	If you can't upgrade your version of ntpq then if you want to know
1232	    the reslist of an instance of ntpd that you do not control,
1233	    know that if the target ntpd is malicious that it can send back
1234	    a response that intends to crash your ntpq process.
1235   Credit:
1236	This weakness was discovered by Cure53.
1237
1238* NTP-01-001 NTP: Makefile does not enforce Security Flags (Informational)
1239   Date Resolved: 21 Mar 2017
1240   References: Sec 3376
1241   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
1242	ntp-4.3.0 up to, but not including ntp-4.3.94.
1243   CVSS2: N/A
1244   CVSS3: N/A
1245   Summary:
1246	The build process for NTP has not, by default, provided compile
1247	or link flags to offer "hardened" security options.  Package
1248	maintainers have always been able to provide hardening security
1249	flags for their builds.  As of ntp-4.2.8p10, the NTP build
1250	system has a way to provide OS-specific hardening flags.  Please
1251	note that this is still not a really great solution because it
1252	is specific to NTP builds.  It's inefficient to have every
1253	package supply, track and maintain this information for every
1254	target build.  It would be much better if there was a common way
1255	for OSes to provide this information in a way that arbitrary
1256	packages could benefit from it.
1257   Mitigation:
1258	Implement BCP-38.
1259	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1260	    or the NTP Public Services Project Download Page
1261	Properly monitor your ntpd instances, and auto-restart
1262	    ntpd (without -g) if it stops running.
1263   Credit:
1264	This weakness was reported by Cure53.
1265
1266* 0rigin DoS (Medium)
1267   Date Resolved: 21 Mar 2017
1268   References: Sec 3361 / CVE-2016-9042 / VU#325339
1269   Affects: ntp-4.2.8p9 (21 Nov 2016), up to but not including ntp-4.2.8p10
1270   CVSS2: MED 4.9 (AV:N/AC:H/Au:N/C:N/I:N/A:C) (worst case)
1271   CVSS3: MED 4.4 CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H (worst case)
1272   Summary:
1273	An exploitable denial of service vulnerability exists in the
1274	origin timestamp check functionality of ntpd 4.2.8p9.  A specially
1275	crafted unauthenticated network packet can be used to reset the
1276	expected origin timestamp for target peers.  Legitimate replies
1277	from targeted peers will fail the origin timestamp check (TEST2)
1278	causing the reply to be dropped and creating a denial of service
1279	condition.  This vulnerability can only be exploited if the
1280	attacker can spoof all of the servers.
1281   Mitigation:
1282	Implement BCP-38.
1283	Configure enough servers/peers that an attacker cannot target
1284	    all of your time sources.
1285	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
1286	    or the NTP Public Services Project Download Page
1287	Properly monitor your ntpd instances, and auto-restart
1288	    ntpd (without -g) if it stops running.
1289   Credit:
1290	This weakness was discovered by Matthew Van Gundy of Cisco.
1291
1292Other fixes:
1293
1294* [Bug 3393] clang scan-build findings <perlinger@ntp.org>
1295* [Bug 3363] Support for openssl-1.1.0 without compatibility modes
1296  - rework of patch set from <ntp.org@eroen.eu>. <perlinger@ntp.org>
1297* [Bug 3356] Bugfix 3072 breaks multicastclient <perlinger@ntp.org>
1298* [Bug 3216] libntp audio ioctl() args incorrectly cast to int
1299  on 4.4BSD-Lite derived platforms <perlinger@ntp.org>
1300  - original patch by Majdi S. Abbas
1301* [Bug 3215] 'make distcheck' fails with new BK repo format <perlinger@ntp.org>
1302* [Bug 3173] forking async worker: interrupted pipe I/O <perlinger@ntp.org>
1303  - initial patch by Christos Zoulas
1304* [Bug 3139] (...) time_pps_create: Exec format error <perlinger@ntp.org>
1305  - move loader API from 'inline' to proper source
1306  - augment pathless dlls with absolute path to NTPD
1307  - use 'msyslog()' instead of 'printf() 'for reporting trouble
1308* [Bug 3107] Incorrect Logic for Peer Event Limiting <perlinger@ntp.org>
1309  - applied patch by Matthew Van Gundy
1310* [Bug 3065] Quiet warnings on NetBSD <perlinger@ntp.org>
1311  - applied some of the patches provided by Havard. Not all of them
1312    still match the current code base, and I did not touch libopt.
1313* [Bug 3062] Change the process name of forked DNS worker <perlinger@ntp.org>
1314  - applied patch by Reinhard Max. See bugzilla for limitations.
1315* [Bug 2923] Trap Configuration Fail <perlinger@ntp.org>
1316  - fixed dependency inversion from [Bug 2837]
1317* [Bug 2896] Nothing happens if minsane < maxclock < minclock
1318  - produce ERROR log message about dysfunctional daemon. <perlinger@ntp.org>
1319* [Bug 2851] allow -4/-6 on restrict line with mask <perlinger@ntp.org>
1320  - applied patch by Miroslav Lichvar for ntp4.2.6 compat
1321* [Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
1322  - Fixed these and some more locations of this pattern.
1323    Probably din't get them all, though. <perlinger@ntp.org>
1324* Update copyright year.
1325
1326--
1327(4.2.8p9-win) 2017/02/01 Released by Harlan Stenn <stenn@ntp.org>
1328
1329* [Bug 3144] NTP does not build without openSSL. <perlinger@ntp.org>
1330  - added missed changeset for automatic openssl lib detection
1331  - fixed some minor warning issues
1332* [Bug 3095]  More compatibility with openssl 1.1. <perlinger@ntp.org>
1333* configure.ac cleanup.  stenn@ntp.org
1334* openssl configure cleanup.  stenn@ntp.org
1335
1336--
1337NTP 4.2.8p9 (Harlan Stenn <stenn@ntp.org>, 2016/11/21)
1338
1339Focus: Security, Bug fixes, enhancements.
1340
1341Severity: HIGH
1342
1343In addition to bug fixes and enhancements, this release fixes the
1344following 1 high- (Windows only), 2 medium-, 2 medium-/low, and
13455 low-severity vulnerabilities, and provides 28 other non-security
1346fixes and improvements:
1347
1348* Trap crash
1349   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1350   References: Sec 3119 / CVE-2016-9311 / VU#633847
1351   Affects: ntp-4.0.90 (21 July 1999), possibly earlier, up to but not
1352   	including 4.2.8p9, and ntp-4.3.0 up to but not including ntp-4.3.94.
1353   CVSS2: MED 4.9 (AV:N/AC:H/Au:N/C:N/I:N/A:C)
1354   CVSS3: MED 4.4 CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H
1355   Summary:
1356	ntpd does not enable trap service by default. If trap service
1357	has been explicitly enabled, an attacker can send a specially
1358	crafted packet to cause a null pointer dereference that will
1359	crash ntpd, resulting in a denial of service.
1360   Mitigation:
1361        Implement BCP-38.
1362	Use "restrict default noquery ..." in your ntp.conf file. Only
1363	    allow mode 6 queries from trusted networks and hosts.
1364        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1365	    or the NTP Public Services Project Download Page
1366        Properly monitor your ntpd instances, and auto-restart ntpd
1367	    (without -g) if it stops running.
1368   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
1369
1370* Mode 6 information disclosure and DDoS vector
1371   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1372   References: Sec 3118 / CVE-2016-9310 / VU#633847
1373   Affects: ntp-4.0.90 (21 July 1999), possibly earlier, up to but not
1374	including 4.2.8p9, and ntp-4.3.0 up to but not including ntp-4.3.94.
1375   CVSS2: MED 6.4 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
1376   CVSS3: MED 6.5 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1377   Summary:
1378	An exploitable configuration modification vulnerability exists
1379	in the control mode (mode 6) functionality of ntpd. If, against
1380	long-standing BCP recommendations, "restrict default noquery ..."
1381	is not specified, a specially crafted control mode packet can set
1382	ntpd traps, providing information disclosure and DDoS
1383	amplification, and unset ntpd traps, disabling legitimate
1384	monitoring. A remote, unauthenticated, network attacker can
1385	trigger this vulnerability.
1386   Mitigation:
1387        Implement BCP-38.
1388	Use "restrict default noquery ..." in your ntp.conf file.
1389        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1390	    or the NTP Public Services Project Download Page
1391        Properly monitor your ntpd instances, and auto-restart ntpd
1392	    (without -g) if it stops running.
1393   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
1394
1395* Broadcast Mode Replay Prevention DoS
1396   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1397   References: Sec 3114 / CVE-2016-7427 / VU#633847
1398   Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p9, and
1399	ntp-4.3.90 up to, but not including ntp-4.3.94.
1400   CVSS2: LOW 3.3 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
1401   CVSS3: MED 4.3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1402   Summary:
1403	The broadcast mode of NTP is expected to only be used in a
1404	trusted network. If the broadcast network is accessible to an
1405	attacker, a potentially exploitable denial of service
1406	vulnerability in ntpd's broadcast mode replay prevention
1407	functionality can be abused. An attacker with access to the NTP
1408	broadcast domain can periodically inject specially crafted
1409	broadcast mode NTP packets into the broadcast domain which,
1410	while being logged by ntpd, can cause ntpd to reject broadcast
1411	mode packets from legitimate NTP broadcast servers.
1412   Mitigation:
1413        Implement BCP-38.
1414        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1415	    or the NTP Public Services Project Download Page
1416        Properly monitor your ntpd instances, and auto-restart ntpd
1417	    (without -g) if it stops running.
1418   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
1419
1420* Broadcast Mode Poll Interval Enforcement DoS
1421   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1422   References: Sec 3113 / CVE-2016-7428 / VU#633847
1423   Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p9, and
1424	ntp-4.3.90 up to, but not including ntp-4.3.94
1425   CVSS2: LOW 3.3 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
1426   CVSS3: MED 4.3 CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1427   Summary:
1428	The broadcast mode of NTP is expected to only be used in a
1429	trusted network. If the broadcast network is accessible to an
1430	attacker, a potentially exploitable denial of service
1431	vulnerability in ntpd's broadcast mode poll interval enforcement
1432	functionality can be abused. To limit abuse, ntpd restricts the
1433	rate at which each broadcast association will process incoming
1434	packets. ntpd will reject broadcast mode packets that arrive
1435	before the poll interval specified in the preceding broadcast
1436	packet expires. An attacker with access to the NTP broadcast
1437	domain can send specially crafted broadcast mode NTP packets to
1438	the broadcast domain which, while being logged by ntpd, will
1439	cause ntpd to reject broadcast mode packets from legitimate NTP
1440	broadcast servers.
1441   Mitigation:
1442        Implement BCP-38.
1443        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1444	    or the NTP Public Services Project Download Page
1445        Properly monitor your ntpd instances, and auto-restart ntpd
1446	    (without -g) if it stops running.
1447   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
1448
1449* Windows: ntpd DoS by oversized UDP packet
1450   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1451   References: Sec 3110 / CVE-2016-9312 / VU#633847
1452   Affects Windows only: ntp-4.?.?, up to but not including ntp-4.2.8p9,
1453	and ntp-4.3.0 up to, but not including ntp-4.3.94.
1454   CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)
1455   CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1456   Summary:
1457	If a vulnerable instance of ntpd on Windows receives a crafted
1458	malicious packet that is "too big", ntpd will stop working.
1459   Mitigation:
1460        Implement BCP-38.
1461        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1462	    or the NTP Public Services Project Download Page
1463        Properly monitor your ntpd instances, and auto-restart ntpd
1464	    (without -g) if it stops running.
1465   Credit: This weakness was discovered by Robert Pajak of ABB.
1466
1467* 0rigin (zero origin) issues
1468   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1469   References: Sec 3102 / CVE-2016-7431 / VU#633847
1470   Affects: ntp-4.2.8p8, and ntp-4.3.93.
1471   CVSS2: MED 5.0 (AV:N/AC:L/Au:N/C:N/I:P/A:N)
1472   CVSS3: MED 5.3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
1473   Summary:
1474	Zero Origin timestamp problems were fixed by Bug 2945 in
1475	ntp-4.2.8p6. However, subsequent timestamp validation checks
1476	introduced a regression in the handling of some Zero origin
1477	timestamp checks.
1478   Mitigation:
1479        Implement BCP-38.
1480        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1481	    or the NTP Public Services Project Download Page
1482        Properly monitor your ntpd instances, and auto-restart ntpd
1483	    (without -g) if it stops running.
1484   Credit: This weakness was discovered by Sharon Goldberg and Aanchal
1485	Malhotra of Boston University.
1486
1487* read_mru_list() does inadequate incoming packet checks
1488   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1489   References: Sec 3082 / CVE-2016-7434 / VU#633847
1490   Affects: ntp-4.2.7p22, up to but not including ntp-4.2.8p9, and
1491	ntp-4.3.0 up to, but not including ntp-4.3.94.
1492   CVSS2: LOW 3.8 (AV:L/AC:H/Au:S/C:N/I:N/A:C)
1493   CVSS3: LOW 3.8 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1494   Summary:
1495	If ntpd is configured to allow mrulist query requests from a
1496	server that sends a crafted malicious packet, ntpd will crash
1497	on receipt of that crafted malicious mrulist query packet.
1498   Mitigation:
1499	Only allow mrulist query packets from trusted hosts.
1500        Implement BCP-38.
1501        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1502	    or the NTP Public Services Project Download Page
1503        Properly monitor your ntpd instances, and auto-restart ntpd
1504	    (without -g) if it stops running.
1505   Credit: This weakness was discovered by Magnus Stubman.
1506
1507* Attack on interface selection
1508   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1509   References: Sec 3072 / CVE-2016-7429 / VU#633847
1510   Affects: ntp-4.2.7p385, up to but not including ntp-4.2.8p9, and
1511	ntp-4.3.0 up to, but not including ntp-4.3.94
1512   CVSS2: LOW 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
1513   CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
1514   Summary:
1515	When ntpd receives a server response on a socket that corresponds
1516	to a different interface than was used for the request, the peer
1517	structure is updated to use the interface for new requests. If
1518	ntpd is running on a host with multiple interfaces in separate
1519	networks and the operating system doesn't check source address in
1520	received packets (e.g. rp_filter on Linux is set to 0), an
1521	attacker that knows the address of the source can send a packet
1522	with spoofed source address which will cause ntpd to select wrong
1523	interface for the source and prevent it from sending new requests
1524	until the list of interfaces is refreshed, which happens on
1525	routing changes or every 5 minutes by default. If the attack is
1526	repeated often enough (once per second), ntpd will not be able to
1527	synchronize with the source.
1528   Mitigation:
1529        Implement BCP-38.
1530        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1531	    or the NTP Public Services Project Download Page
1532	If you are going to configure your OS to disable source address
1533	    checks, also configure your firewall configuration to control
1534	    what interfaces can receive packets from what networks.
1535        Properly monitor your ntpd instances, and auto-restart ntpd
1536	    (without -g) if it stops running.
1537   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
1538
1539* Client rate limiting and server responses
1540   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1541   References: Sec 3071 / CVE-2016-7426 / VU#633847
1542   Affects: ntp-4.2.5p203, up to but not including ntp-4.2.8p9, and
1543	ntp-4.3.0 up to, but not including ntp-4.3.94
1544   CVSS2: LOW 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
1545   CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
1546   Summary:
1547	When ntpd is configured with rate limiting for all associations
1548	(restrict default limited in ntp.conf), the limits are applied
1549	also to responses received from its configured sources. An
1550	attacker who knows the sources (e.g., from an IPv4 refid in
1551	server response) and knows the system is (mis)configured in this
1552	way can periodically send packets with spoofed source address to
1553	keep the rate limiting activated and prevent ntpd from accepting
1554	valid responses from its sources.
1555
1556	While this blanket rate limiting can be useful to prevent
1557	brute-force attacks on the origin timestamp, it allows this DoS
1558	attack. Similarly, it allows the attacker to prevent mobilization
1559	of ephemeral associations.
1560   Mitigation:
1561        Implement BCP-38.
1562        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1563	    or the NTP Public Services Project Download Page
1564        Properly monitor your ntpd instances, and auto-restart ntpd
1565	    (without -g) if it stops running.
1566   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
1567
1568* Fix for bug 2085 broke initial sync calculations
1569   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
1570   References: Sec 3067 / CVE-2016-7433 / VU#633847
1571   Affects: ntp-4.2.7p385, up to but not including ntp-4.2.8p9, and
1572	ntp-4.3.0 up to, but not including ntp-4.3.94. But the
1573	root-distance calculation in general is incorrect in all versions
1574	of ntp-4 until this release.
1575   CVSS2: LOW 1.2 (AV:L/AC:H/Au:N/C:N/I:N/A:P)
1576   CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
1577   Summary:
1578	Bug 2085 described a condition where the root delay was included
1579	twice, causing the jitter value to be higher than expected. Due
1580	to a misinterpretation of a small-print variable in The Book, the
1581	fix for this problem was incorrect, resulting in a root distance
1582	that did not include the peer dispersion. The calculations and
1583	formulae have been reviewed and reconciled, and the code has been
1584	updated accordingly.
1585   Mitigation:
1586        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
1587	    or the NTP Public Services Project Download Page
1588        Properly monitor your ntpd instances, and auto-restart ntpd
1589	    (without -g) if it stops running.
1590   Credit: This weakness was discovered independently by Brian Utterback of
1591	Oracle, and Sharon Goldberg and Aanchal Malhotra of Boston University.
1592
1593Other fixes:
1594
1595* [Bug 3142] bug in netmask prefix length detection <perlinger@ntp.org>
1596* [Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
1597* [Bug 3129] Unknown hosts can put resolver thread into a hard loop
1598  - moved retry decision where it belongs. <perlinger@ntp.org>
1599* [Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order
1600  using the loopback-ppsapi-provider.dll <perlinger@ntp.org>
1601* [Bug 3116] unit tests for NTP time stamp expansion. <perlinger@ntp.org>
1602* [Bug 3100] ntpq can't retrieve daemon_version <perlinger@ntp.org>
1603  - fixed extended sysvar lookup (bug introduced with bug 3008 fix)
1604* [Bug 3095] Compatibility with openssl 1.1 <perlinger@ntp.org>
1605  - applied patches by Kurt Roeckx <kurt@roeckx.be> to source
1606  - added shim layer for SSL API calls with issues (both directions)
1607* [Bug 3089] Serial Parser does not work anymore for hopfser like device
1608  - simplified / refactored hex-decoding in driver. <perlinger@ntp.org>
1609* [Bug 3084] update-leap mis-parses the leapfile name.  HStenn.
1610* [Bug 3068] Linker warnings when building on Solaris. perlinger@ntp.org
1611  - applied patch thanks to Andrew Stormont <andyjstormont@gmail.com>
1612* [Bug 3067] Root distance calculation needs improvement.  HStenn
1613* [Bug 3066] NMEA clock ignores pps. perlinger@ntp.org
1614  - PPS-HACK works again.
1615* [Bug 3059] Potential buffer overrun from oversized hash <perlinger@ntp.org>
1616  - applied patch by Brian Utterback <brian.utterback@oracle.com>
1617* [Bug 3053] ntp_loopfilter.c frequency calc precedence error.  Sarah White.
1618* [Bug 3050] Fix for bug #2960 causes [...] spurious error message.
1619  <perlinger@ntp.org>
1620  - patches by Reinhard Max <max@suse.com> and Havard Eidnes <he@uninett.no>
1621* [Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
1622  - Patch provided by Kuramatsu.
1623* [Bug 3021] unity_fixture.c needs pragma weak <perlinger@ntp.org>
1624  - removed unnecessary & harmful decls of 'setUp()' & 'tearDown()'
1625* [Bug 3019] Windows: ERROR_HOST_UNREACHABLE block packet processing. DMayer
1626* [Bug 2998] sntp/tests/packetProcessing.c broken without openssl. JPerlinger
1627* [Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY.  HStenn.
1628* [Bug 2959] refclock_jupiter: gps week correction <perlinger@ntp.org>
1629  - fixed GPS week expansion to work based on build date. Special thanks
1630    to Craig Leres for initial patch and testing.
1631* [Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
1632  - fixed Makefile.am <perlinger@ntp.org>
1633* [Bug 2689] ATOM driver processes last PPS pulse at startup,
1634             even if it is very old <perlinger@ntp.org>
1635  - make sure PPS source is alive before processing samples
1636  - improve stability close to the 500ms phase jump (phase gate)
1637* Fix typos in include/ntp.h.
1638* Shim X509_get_signature_nid() if needed
1639* git author attribution cleanup
1640* bk ignore file cleanup
1641* remove locks in Windows IO, use rpc-like thread synchronisation instead
1642
1643---
1644NTP 4.2.8p8 (Harlan Stenn <stenn@ntp.org>, 2016/06/02)
1645
1646Focus: Security, Bug fixes, enhancements.
1647
1648Severity: HIGH
1649
1650In addition to bug fixes and enhancements, this release fixes the
1651following 1 high- and 4 low-severity vulnerabilities:
1652
1653* CRYPTO_NAK crash
1654   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
1655   References: Sec 3046 / CVE-2016-4957 / VU#321640
1656   Affects: ntp-4.2.8p7, and ntp-4.3.92.
1657   CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)
1658   CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1659   Summary: The fix for Sec 3007 in ntp-4.2.8p7 contained a bug that
1660	could cause ntpd to crash.
1661   Mitigation:
1662        Implement BCP-38.
1663        Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
1664	    or the NTP Public Services Project Download Page
1665        If you cannot upgrade from 4.2.8p7, the only other alternatives
1666	    are to patch your code or filter CRYPTO_NAK packets.
1667        Properly monitor your ntpd instances, and auto-restart ntpd
1668	    (without -g) if it stops running.
1669   Credit: This weakness was discovered by Nicolas Edet of Cisco.
1670
1671* Bad authentication demobilizes ephemeral associations
1672   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
1673   References: Sec 3045 / CVE-2016-4953 / VU#321640
1674   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
1675	ntp-4.3.0 up to, but not including ntp-4.3.93.
1676   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
1677   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
1678   Summary: An attacker who knows the origin timestamp and can send a
1679	spoofed packet containing a CRYPTO-NAK to an ephemeral peer
1680	target before any other response is sent can demobilize that
1681	association.
1682   Mitigation:
1683	Implement BCP-38.
1684	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
1685	    or the NTP Public Services Project Download Page
1686	Properly monitor your ntpd instances.
1687	Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
1688
1689* Processing spoofed server packets
1690   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
1691   References: Sec 3044 / CVE-2016-4954 / VU#321640
1692   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
1693	ntp-4.3.0 up to, but not including ntp-4.3.93.
1694   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
1695   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
1696   Summary: An attacker who is able to spoof packets with correct origin
1697	timestamps from enough servers before the expected response
1698	packets arrive at the target machine can affect some peer
1699	variables and, for example, cause a false leap indication to be set.
1700   Mitigation:
1701	Implement BCP-38.
1702	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
1703	    or the NTP Public Services Project Download Page
1704	Properly monitor your ntpd instances.
1705   Credit: This weakness was discovered by Jakub Prokes of Red Hat.
1706
1707* Autokey association reset
1708   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
1709   References: Sec 3043 / CVE-2016-4955 / VU#321640
1710   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
1711	ntp-4.3.0 up to, but not including ntp-4.3.93.
1712   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
1713   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
1714   Summary: An attacker who is able to spoof a packet with a correct
1715	origin timestamp before the expected response packet arrives at
1716	the target machine can send a CRYPTO_NAK or a bad MAC and cause
1717	the association's peer variables to be cleared. If this can be
1718	done often enough, it will prevent that association from working.
1719   Mitigation:
1720	Implement BCP-38.
1721	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
1722	    or the NTP Public Services Project Download Page
1723	Properly monitor your ntpd instances.
1724   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
1725
1726* Broadcast interleave
1727   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
1728   References: Sec 3042 / CVE-2016-4956 / VU#321640
1729   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
1730   	ntp-4.3.0 up to, but not including ntp-4.3.93.
1731   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
1732   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
1733   Summary: The fix for NtpBug2978 does not cover broadcast associations,
1734   	so broadcast clients can be triggered to flip into interleave mode.
1735   Mitigation:
1736	Implement BCP-38.
1737	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
1738	    or the NTP Public Services Project Download Page
1739	Properly monitor your ntpd instances.
1740   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
1741
1742Other fixes:
1743* [Bug 3038] NTP fails to build in VS2015. perlinger@ntp.org
1744  - provide build environment
1745  - 'wint_t' and 'struct timespec' defined by VS2015
1746  - fixed print()/scanf() format issues
1747* [Bug 3052] Add a .gitignore file.  Edmund Wong.
1748* [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
1749* [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback,
1750  JPerlinger, HStenn.
1751* Fix typo in ntp-wait and plot_summary.  HStenn.
1752* Make sure we have an "author" file for git imports.  HStenn.
1753* Update the sntp problem tests for MacOS.  HStenn.
1754
1755---
1756NTP 4.2.8p7 (Harlan Stenn <stenn@ntp.org>, 2016/04/26)
1757
1758Focus: Security, Bug fixes, enhancements.
1759
1760Severity: MEDIUM
1761
1762When building NTP from source, there is a new configure option
1763available, --enable-dynamic-interleave.  More information on this below.
1764
1765Also note that ntp-4.2.8p7 logs more "unexpected events" than previous
1766versions of ntp.  These events have almost certainly happened in the
1767past, it's just that they were silently counted and not logged.  With
1768the increasing awareness around security, we feel it's better to clearly
1769log these events to help detect abusive behavior.  This increased
1770logging can also help detect other problems, too.
1771
1772In addition to bug fixes and enhancements, this release fixes the
1773following 9 low- and medium-severity vulnerabilities:
1774
1775* Improve NTP security against buffer comparison timing attacks,
1776  AKA: authdecrypt-timing
1777   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1778   References: Sec 2879 / CVE-2016-1550
1779   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1780	4.3.0 up to, but not including 4.3.92
1781   CVSSv2: LOW 2.6 - (AV:L/AC:H/Au:N/C:P/I:P/A:N)
1782   CVSSv3: MED 4.0 - CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
1783   Summary: Packet authentication tests have been performed using
1784	memcmp() or possibly bcmp(), and it is potentially possible
1785	for a local or perhaps LAN-based attacker to send a packet with
1786	an authentication payload and indirectly observe how much of
1787	the digest has matched.
1788   Mitigation:
1789	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1790	    or the NTP Public Services Project Download Page.
1791	Properly monitor your ntpd instances.
1792   Credit: This weakness was discovered independently by Loganaden
1793   	Velvindron, and Matthew Van Gundy and Stephen Gray of Cisco ASIG.
1794
1795* Zero origin timestamp bypass: Additional KoD checks.
1796   References: Sec 2945 / Sec 2901 / CVE-2015-8138
1797   Affects: All ntp-4 releases up to, but not including 4.2.8p7,
1798   Summary: Improvements to the fixes incorporated in t 4.2.8p6 and 4.3.92.
1799
1800* peer associations were broken by the fix for NtpBug2899
1801   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1802   References: Sec 2952 / CVE-2015-7704
1803   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1804   	4.3.0 up to, but not including 4.3.92
1805   CVSSv2: MED 4.3 - (AV:N/AC:M/Au:N/C:N/I:N/A:P)
1806   Summary: The fix for NtpBug2952 in ntp-4.2.8p5 to address broken peer
1807   	associations did not address all of the issues.
1808   Mitigation:
1809        Implement BCP-38.
1810        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1811	    or the NTP Public Services Project Download Page
1812        If you can't upgrade, use "server" associations instead of
1813	    "peer" associations.
1814        Monitor your ntpd instances.
1815   Credit: This problem was discovered by Michael Tatarinov.
1816
1817* Validate crypto-NAKs, AKA: CRYPTO-NAK DoS
1818   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1819   References: Sec 3007 / CVE-2016-1547 / VU#718152
1820   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1821	4.3.0 up to, but not including 4.3.92
1822   CVSS2: MED 4.3 - (AV:N/AC:M/Au:N/C:N/I:N/A:P)
1823   CVSS3: MED 3.7 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
1824   Summary: For ntp-4 versions up to but not including ntp-4.2.8p7, an
1825	off-path attacker can cause a preemptable client association to
1826	be demobilized by sending a crypto NAK packet to a victim client
1827	with a spoofed source address of an existing associated peer.
1828	This is true even if authentication is enabled.
1829
1830	Furthermore, if the attacker keeps sending crypto NAK packets,
1831	for example one every second, the victim never has a chance to
1832	reestablish the association and synchronize time with that
1833	legitimate server.
1834
1835	For ntp-4.2.8 thru ntp-4.2.8p6 there is less risk because more
1836	stringent checks are performed on incoming packets, but there
1837	are still ways to exploit this vulnerability in versions before
1838	ntp-4.2.8p7.
1839   Mitigation:
1840	Implement BCP-38.
1841	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1842	    or the NTP Public Services Project Download Page
1843	Properly monitor your ntpd instances
1844   Credit: This weakness was discovered by Stephen Gray and
1845   	Matthew Van Gundy of Cisco ASIG.
1846
1847* ctl_getitem() return value not always checked
1848   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1849   References: Sec 3008 / CVE-2016-2519
1850   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1851	4.3.0 up to, but not including 4.3.92
1852   CVSSv2: MED 4.9 - (AV:N/AC:H/Au:S/C:N/I:N/A:C)
1853   CVSSv3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1854   Summary: ntpq and ntpdc can be used to store and retrieve information
1855   	in ntpd. It is possible to store a data value that is larger
1856	than the size of the buffer that the ctl_getitem() function of
1857	ntpd uses to report the return value. If the length of the
1858	requested data value returned by ctl_getitem() is too large,
1859	the value NULL is returned instead. There are 2 cases where the
1860	return value from ctl_getitem() was not directly checked to make
1861	sure it's not NULL, but there are subsequent INSIST() checks
1862	that make sure the return value is not NULL. There are no data
1863	values ordinarily stored in ntpd that would exceed this buffer
1864	length. But if one has permission to store values and one stores
1865	a value that is "too large", then ntpd will abort if an attempt
1866	is made to read that oversized value.
1867    Mitigation:
1868        Implement BCP-38.
1869        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1870	    or the NTP Public Services Project Download Page
1871        Properly monitor your ntpd instances.
1872    Credit: This weakness was discovered by Yihan Lian of the Cloud
1873    	Security Team, Qihoo 360.
1874
1875* Crafted addpeer with hmode > 7 causes array wraparound with MATCH_ASSOC
1876   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1877   References: Sec 3009 / CVE-2016-2518 / VU#718152
1878   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1879	4.3.0 up to, but not including 4.3.92
1880   CVSS2: LOW 2.1 - (AV:N/AC:H/Au:S/C:N/I:N/A:P)
1881   CVSS3: LOW 2.0 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
1882   Summary: Using a crafted packet to create a peer association with
1883   	hmode > 7 causes the MATCH_ASSOC() lookup to make an
1884	out-of-bounds reference.
1885   Mitigation:
1886	Implement BCP-38.
1887	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1888	    or the NTP Public Services Project Download Page
1889	Properly monitor your ntpd instances
1890   Credit: This weakness was discovered by Yihan Lian of the Cloud
1891   	Security Team, Qihoo 360.
1892
1893* remote configuration trustedkey/requestkey/controlkey values are not
1894	properly validated
1895   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1896   References: Sec 3010 / CVE-2016-2517 / VU#718152
1897   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1898	4.3.0 up to, but not including 4.3.92
1899   CVSS2: MED 4.9 - (AV:N/AC:H/Au:S/C:N/I:N/A:C)
1900   CVSS3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1901   Summary: If ntpd was expressly configured to allow for remote
1902   	configuration, a malicious user who knows the controlkey for
1903	ntpq or the requestkey for ntpdc (if mode7 is expressly enabled)
1904	can create a session with ntpd and then send a crafted packet to
1905	ntpd that will change the value of the trustedkey, controlkey,
1906	or requestkey to a value that will prevent any subsequent
1907	authentication with ntpd until ntpd is restarted.
1908   Mitigation:
1909	Implement BCP-38.
1910	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1911	    or the NTP Public Services Project Download Page
1912	Properly monitor your ntpd instances
1913   Credit: This weakness was discovered by Yihan Lian of the Cloud
1914   	Security Team, Qihoo 360.
1915
1916* Duplicate IPs on unconfig directives will cause an assertion botch in ntpd
1917   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1918   References: Sec 3011 / CVE-2016-2516 / VU#718152
1919   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
1920   	4.3.0 up to, but not including 4.3.92
1921   CVSS2: MED 6.3 - (AV:N/AC:M/Au:S/C:N/I:N/A:C)
1922   CVSS3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
1923   Summary: If ntpd was expressly configured to allow for remote
1924   	configuration, a malicious user who knows the controlkey for
1925	ntpq or the requestkey for ntpdc (if mode7 is expressly enabled)
1926	can create a session with ntpd and if an existing association is
1927	unconfigured using the same IP twice on the unconfig directive
1928	line, ntpd will abort.
1929   Mitigation:
1930	Implement BCP-38.
1931	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1932	    or the NTP Public Services Project Download Page
1933	Properly monitor your ntpd instances
1934   Credit: This weakness was discovered by Yihan Lian of the Cloud
1935   	Security Team, Qihoo 360.
1936
1937* Refclock impersonation vulnerability
1938   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1939   References: Sec 3020 / CVE-2016-1551
1940   Affects: On a very limited number of OSes, all NTP releases up to but
1941	not including 4.2.8p7, and 4.3.0 up to but not including 4.3.92.
1942	By "very limited number of OSes" we mean no general-purpose OSes
1943	have yet been identified that have this vulnerability.
1944   CVSSv2: LOW 2.6 - (AV:N/AC:H/Au:N/C:N/I:P/A:N)
1945   CVSSv3: LOW 3.7 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
1946   Summary: While most OSes implement martian packet filtering in their
1947   	network stack, at least regarding 127.0.0.0/8, some will allow
1948	packets claiming to be from 127.0.0.0/8 that arrive over a
1949	physical network. On these OSes, if ntpd is configured to use a
1950	reference clock an attacker can inject packets over the network
1951	that look like they are coming from that reference clock.
1952   Mitigation:
1953        Implement martian packet filtering and BCP-38.
1954        Configure ntpd to use an adequate number of time sources.
1955        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
1956	    or the NTP Public Services Project Download Page
1957        If you are unable to upgrade and if you are running an OS that
1958	    has this vulnerability, implement martian packet filters and
1959	    lobby your OS vendor to fix this problem, or run your
1960	    refclocks on computers that use OSes that are not vulnerable
1961	    to these attacks and have your vulnerable machines get their
1962	    time from protected resources.
1963        Properly monitor your ntpd instances.
1964   Credit: This weakness was discovered by Matt Street and others of
1965   	Cisco ASIG.
1966
1967The following issues were fixed in earlier releases and contain
1968improvements in 4.2.8p7:
1969
1970* Clients that receive a KoD should validate the origin timestamp field.
1971   References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
1972   Affects: All ntp-4 releases up to, but not including 4.2.8p7,
1973   Summary: Improvements to the fixes incorporated into 4.2.8p4 and 4.3.77.
1974
1975* Skeleton key: passive server with trusted key can serve time.
1976   References: Sec 2936 / CVE-2015-7974
1977   Affects: All ntp-4 releases up to, but not including 4.2.8p7,
1978   Summary: Improvements to the fixes incorporated in t 4.2.8p6 and 4.3.90.
1979
1980Two other vulnerabilities have been reported, and the mitigations
1981for these are as follows:
1982
1983* Interleave-pivot
1984   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
1985   References: Sec 2978 / CVE-2016-1548
1986   Affects: All ntp-4 releases.
1987   CVSSv2: MED 6.4 - (AV:N/AC:L/Au:N/C:N/I:P/A:P)
1988   CVSSv3: MED 7.2 - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L
1989   Summary: It is possible to change the time of an ntpd client or deny
1990   	service to an ntpd client by forcing it to change from basic
1991	client/server mode to interleaved symmetric mode. An attacker
1992	can spoof a packet from a legitimate ntpd server with an origin
1993	timestamp that matches the peer->dst timestamp recorded for that
1994	server. After making this switch, the client will reject all
1995	future legitimate server responses. It is possible to force the
1996	victim client to move time after the mode has been changed.
1997	ntpq gives no indication that the mode has been switched.
1998   Mitigation:
1999        Implement BCP-38.
2000        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
2001	    or the NTP Public Services Project Download Page.  These
2002	    versions will not dynamically "flip" into interleave mode
2003	    unless configured to do so.
2004        Properly monitor your ntpd instances.
2005   Credit: This weakness was discovered by Miroslav Lichvar of RedHat
2006   	and separately by Jonathan Gardner of Cisco ASIG.
2007
2008* Sybil vulnerability: ephemeral association attack
2009   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
2010   References: Sec 3012 / CVE-2016-1549
2011   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
2012   	4.3.0 up to, but not including 4.3.92
2013   CVSSv2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
2014   CVSS3v: MED 5.3 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
2015   Summary: ntpd can be vulnerable to Sybil attacks. If one is not using
2016   	the feature introduced in ntp-4.2.8p6 allowing an optional 4th
2017	field in the ntp.keys file to specify which IPs can serve time,
2018	a malicious authenticated peer can create arbitrarily-many
2019	ephemeral associations in order to win the clock selection of
2020	ntpd and modify a victim's clock.
2021   Mitigation:
2022        Implement BCP-38.
2023        Use the 4th field in the ntp.keys file to specify which IPs
2024	    can be time servers.
2025        Properly monitor your ntpd instances.
2026   Credit: This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
2027
2028Other fixes:
2029
2030* [Bug 2831]  Segmentation Fault in DNS lookup during startup. perlinger@ntp.org
2031  - fixed yet another race condition in the threaded resolver code.
2032* [Bug 2858] bool support.  Use stdbool.h when available.  HStenn.
2033* [Bug 2879] Improve NTP security against timing attacks. perlinger@ntp.org
2034  - integrated patches by Loganaden Velvidron <logan@ntp.org>
2035    with some modifications & unit tests
2036* [Bug 2960] async name resolution fixes for chroot() environments.
2037  Reinhard Max.
2038* [Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile. perlinger@ntp.org
2039* [Bug 2995] Fixes to compile on Windows
2040* [Bug 2999] out-of-bounds access in 'is_safe_filename()'. perlinger@ntp.org
2041* [Bug 3013] Fix for ssl_init.c SHA1 test. perlinger@ntp.org
2042  - Patch provided by Ch. Weisgerber
2043* [Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
2044  - A change related to [Bug 2853] forbids trailing white space in
2045    remote config commands. perlinger@ntp.org
2046* [Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
2047  - report and patch from Aleksandr Kostikov.
2048  - Overhaul of Windows IO completion port handling. perlinger@ntp.org
2049* [Bug 3022] authkeys.c should be refactored. perlinger@ntp.org
2050  - fixed memory leak in access list (auth[read]keys.c)
2051  - refactored handling of key access lists (auth[read]keys.c)
2052  - reduced number of error branches (authreadkeys.c)
2053* [Bug 3023] ntpdate cannot correct dates in the future. perlinger@ntp.org
2054* [Bug 3030] ntpq needs a general way to specify refid output format.  HStenn.
2055* [Bug 3031] ntp broadcastclient unable to synchronize to an server
2056             when the time of server changed. perlinger@ntp.org
2057  - Check the initial delay calculation and reject/unpeer the broadcast
2058    server if the delay exceeds 50ms. Retry again after the next
2059    broadcast packet.
2060* [Bug 3036] autokey trips an INSIST in authistrustedip().  Harlan Stenn.
2061* Document ntp.key's optional IP list in authenetic.html.  Harlan Stenn.
2062* Update html/xleave.html documentation.  Harlan Stenn.
2063* Update ntp.conf documentation.  Harlan Stenn.
2064* Fix some Credit: attributions in the NEWS file.  Harlan Stenn.
2065* Fix typo in html/monopt.html.  Harlan Stenn.
2066* Add README.pullrequests.  Harlan Stenn.
2067* Cleanup to include/ntp.h.  Harlan Stenn.
2068
2069New option to 'configure':
2070
2071While looking in to the issues around Bug 2978, the "interleave pivot"
2072issue, it became clear that there are some intricate and unresolved
2073issues with interleave operations.  We also realized that the interleave
2074protocol was never added to the NTPv4 Standard, and it should have been.
2075
2076Interleave mode was first released in July of 2008, and can be engaged
2077in two ways.  Any 'peer' and 'broadcast' lines in the ntp.conf file may
2078contain the 'xleave' option, which will expressly enable interlave mode
2079for that association.  Additionally, if a time packet arrives and is
2080found inconsistent with normal protocol behavior but has certain
2081characteristics that are compatible with interleave mode, NTP will
2082dynamically switch to interleave mode.  With sufficient knowledge, an
2083attacker can send a crafted forged packet to an NTP instance that
2084triggers only one side to enter interleaved mode.
2085
2086To prevent this attack until we can thoroughly document, describe,
2087fix, and test the dynamic interleave mode, we've added a new
2088'configure' option to the build process:
2089
2090 --enable-dynamic-interleave
2091
2092This option controls whether or not NTP will, if conditions are right,
2093engage dynamic interleave mode.  Dynamic interleave mode is disabled by
2094default in ntp-4.2.8p7.
2095
2096---
2097NTP 4.2.8p6 (Harlan Stenn <stenn@ntp.org>, 2016/01/20)
2098
2099Focus: Security, Bug fixes, enhancements.
2100
2101Severity: MEDIUM
2102
2103In addition to bug fixes and enhancements, this release fixes the
2104following 1 low- and 8 medium-severity vulnerabilities:
2105
2106* Potential Infinite Loop in 'ntpq'
2107   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2108   References: Sec 2548 / CVE-2015-8158
2109   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2110	4.3.0 up to, but not including 4.3.90
2111   CVSS2: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
2112   CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
2113   Summary: 'ntpq' processes incoming packets in a loop in 'getresponse()'.
2114	The loop's only stopping conditions are receiving a complete and
2115	correct response or hitting a small number of error conditions.
2116	If the packet contains incorrect values that don't trigger one of
2117	the error conditions, the loop continues to receive new packets.
2118	Note well, this is an attack against an instance of 'ntpq', not
2119	'ntpd', and this attack requires the attacker to do one of the
2120	following:
2121	* Own a malicious NTP server that the client trusts
2122	* Prevent a legitimate NTP server from sending packets to
2123	    the 'ntpq' client
2124	* MITM the 'ntpq' communications between the 'ntpq' client
2125	    and the NTP server
2126   Mitigation:
2127	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
2128	or the NTP Public Services Project Download Page
2129   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
2130
2131* 0rigin: Zero Origin Timestamp Bypass
2132   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2133   References: Sec 2945 / CVE-2015-8138
2134   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2135	4.3.0 up to, but not including 4.3.90
2136   CVSS2: (AV:N/AC:L/Au:N/C:N/I:P/A:N) Base Score: 5.0 - MEDIUM
2137   CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
2138	(3.7 - LOW if you score AC:L)
2139   Summary: To distinguish legitimate peer responses from forgeries, a
2140	client attempts to verify a response packet by ensuring that the
2141	origin timestamp in the packet matches the origin timestamp it
2142	transmitted in its last request.  A logic error exists that
2143	allows packets with an origin timestamp of zero to bypass this
2144	check whenever there is not an outstanding request to the server.
2145   Mitigation:
2146	Configure 'ntpd' to get time from multiple sources.
2147	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
2148	    or the NTP Public Services Project Download Page.
2149	Monitor your 'ntpd' instances.
2150   Credit: This weakness was discovered by Matthey Van Gundy and
2151	Jonathan Gardner of Cisco ASIG.
2152
2153* Stack exhaustion in recursive traversal of restriction list
2154   Date Resolved: Stable (4.2.8p6) 19 Jan 2016
2155   References: Sec 2940 / CVE-2015-7978
2156   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2157	4.3.0 up to, but not including 4.3.90
2158   CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
2159   Summary: An unauthenticated 'ntpdc reslist' command can cause a
2160   	segmentation fault in ntpd by exhausting the call stack.
2161   Mitigation:
2162	Implement BCP-38.
2163	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
2164	    or the NTP Public Services Project Download Page.
2165	If you are unable to upgrade:
2166            In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
2167	    If you must enable mode 7:
2168		configure the use of a 'requestkey' to control who can
2169		    issue mode 7 requests.
2170		configure 'restrict noquery' to further limit mode 7
2171		    requests to trusted sources.
2172		Monitor your ntpd instances.
2173   Credit: This weakness was discovered by Stephen Gray at Cisco ASIG.
2174
2175* Off-path Denial of Service (!DoS) attack on authenticated broadcast mode
2176   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2177   References: Sec 2942 / CVE-2015-7979
2178   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2179	4.3.0 up to, but not including 4.3.90
2180   CVSS: (AV:N/AC:M/Au:N/C:N/I:P/A:P) Base Score: 5.8
2181   Summary: An off-path attacker can send broadcast packets with bad
2182	authentication (wrong key, mismatched key, incorrect MAC, etc)
2183	to broadcast clients. It is observed that the broadcast client
2184	tears down the association with the broadcast server upon
2185	receiving just one bad packet.
2186   Mitigation:
2187	Implement BCP-38.
2188	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
2189	or the NTP Public Services Project Download Page.
2190	Monitor your 'ntpd' instances.
2191	If this sort of attack is an active problem for you, you have
2192	    deeper problems to investigate.  In this case also consider
2193	    having smaller NTP broadcast domains.
2194   Credit: This weakness was discovered by Aanchal Malhotra of Boston
2195   	University.
2196
2197* reslist NULL pointer dereference
2198   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2199   References: Sec 2939 / CVE-2015-7977
2200   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2201	4.3.0 up to, but not including 4.3.90
2202   CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
2203   Summary: An unauthenticated 'ntpdc reslist' command can cause a
2204	segmentation fault in ntpd by causing a NULL pointer dereference.
2205   Mitigation:
2206	Implement BCP-38.
2207	Upgrade to 4.2.8p6, or later, from NTP Project Download Page or
2208	the NTP Public Services Project Download Page.
2209	If you are unable to upgrade:
2210	    mode 7 is disabled by default.  Don't enable it.
2211	    If you must enable mode 7:
2212		configure the use of a 'requestkey' to control who can
2213		    issue mode 7 requests.
2214		configure 'restrict noquery' to further limit mode 7
2215		    requests to trusted sources.
2216	Monitor your ntpd instances.
2217   Credit: This weakness was discovered by Stephen Gray of Cisco ASIG.
2218
2219* 'ntpq saveconfig' command allows dangerous characters in filenames.
2220   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2221   References: Sec 2938 / CVE-2015-7976
2222   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2223	4.3.0 up to, but not including 4.3.90
2224   CVSS: (AV:N/AC:L/Au:S/C:N/I:P/A:N) Base Score: 4.0 - MEDIUM
2225   Summary: The ntpq saveconfig command does not do adequate filtering
2226   	of special characters from the supplied filename.
2227	Note well: The ability to use the saveconfig command is controlled
2228	by the 'restrict nomodify' directive, and the recommended default
2229	configuration is to disable this capability.  If the ability to
2230	execute a 'saveconfig' is required, it can easily (and should) be
2231	limited and restricted to a known small number of IP addresses.
2232   Mitigation:
2233	Implement BCP-38.
2234	use 'restrict default nomodify' in your 'ntp.conf' file.
2235	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page.
2236	If you are unable to upgrade:
2237	    build NTP with 'configure --disable-saveconfig' if you will
2238	    	never need this capability, or
2239	    use 'restrict default nomodify' in your 'ntp.conf' file.  Be
2240		careful about what IPs have the ability to send 'modify'
2241		requests to 'ntpd'.
2242	Monitor your ntpd instances.
2243	'saveconfig' requests are logged to syslog - monitor your syslog files.
2244   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
2245
2246* nextvar() missing length check in ntpq
2247   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2248   References: Sec 2937 / CVE-2015-7975
2249   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2250	4.3.0 up to, but not including 4.3.90
2251   CVSS: (AV:L/AC:H/Au:N/C:N/I:N/A:P) Base Score: 1.2 - LOW
2252	If you score A:C, this becomes 4.0.
2253   CVSSv3: (CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) Base Score 2.9, LOW
2254   Summary: ntpq may call nextvar() which executes a memcpy() into the
2255	name buffer without a proper length check against its maximum
2256	length of 256 bytes. Note well that we're taking about ntpq here.
2257	The usual worst-case effect of this vulnerability is that the
2258	specific instance of ntpq will crash and the person or process
2259	that did this will have stopped themselves.
2260   Mitigation:
2261	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
2262	    or the NTP Public Services Project Download Page.
2263	If you are unable to upgrade:
2264	    If you have scripts that feed input to ntpq make sure there are
2265		some sanity checks on the input received from the "outside".
2266	    This is potentially more dangerous if ntpq is run as root.
2267   Credit: This weakness was discovered by Jonathan Gardner at Cisco ASIG.
2268
2269* Skeleton Key: Any trusted key system can serve time
2270   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2271   References: Sec 2936 / CVE-2015-7974
2272   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2273	4.3.0 up to, but not including 4.3.90
2274   CVSS: (AV:N/AC:H/Au:S/C:N/I:C/A:N) Base Score: 4.9
2275   Summary: Symmetric key encryption uses a shared trusted key. The
2276	reported title for this issue was "Missing key check allows
2277	impersonation between authenticated peers" and the report claimed
2278	"A key specified only for one server should only work to
2279	authenticate that server, other trusted keys should be refused."
2280	Except there has never been any correlation between this trusted
2281	key and server v. clients machines and there has never been any
2282	way to specify a key only for one server. We have treated this as
2283	an enhancement request, and ntp-4.2.8p6 includes other checks and
2284	tests to strengthen clients against attacks coming from broadcast
2285	servers.
2286   Mitigation:
2287	Implement BCP-38.
2288	If this scenario represents a real or a potential issue for you,
2289	    upgrade to 4.2.8p6, or later, from the NTP Project Download
2290	    Page or the NTP Public Services Project Download Page, and
2291	    use the new field in the ntp.keys file that specifies the list
2292	    of IPs that are allowed to serve time. Note that this alone
2293	    will not protect against time packets with forged source IP
2294	    addresses, however other changes in ntp-4.2.8p6 provide
2295	    significant mitigation against broadcast attacks. MITM attacks
2296	    are a different story.
2297	If you are unable to upgrade:
2298	    Don't use broadcast mode if you cannot monitor your client
2299	    	servers.
2300	    If you choose to use symmetric keys to authenticate time
2301	    	packets in a hostile environment where ephemeral time
2302		servers can be created, or if it is expected that malicious
2303		time servers will participate in an NTP broadcast domain,
2304		limit the number of participating systems that participate
2305		in the shared-key group.
2306	Monitor your ntpd instances.
2307   Credit: This weakness was discovered by Matt Street of Cisco ASIG.
2308
2309* Deja Vu: Replay attack on authenticated broadcast mode
2310   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
2311   References: Sec 2935 / CVE-2015-7973
2312   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
2313   	4.3.0 up to, but not including 4.3.90
2314   CVSS: (AV:A/AC:M/Au:N/C:N/I:P/A:P) Base Score: 4.3 - MEDIUM
2315   Summary: If an NTP network is configured for broadcast operations then
2316   	either a man-in-the-middle attacker or a malicious participant
2317	that has the same trusted keys as the victim can replay time packets.
2318   Mitigation:
2319	Implement BCP-38.
2320	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
2321	    or the NTP Public Services Project Download Page.
2322	If you are unable to upgrade:
2323	    Don't use broadcast mode if you cannot monitor your client servers.
2324	Monitor your ntpd instances.
2325   Credit: This weakness was discovered by Aanchal Malhotra of Boston
2326	University.
2327
2328Other fixes:
2329
2330* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
2331* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
2332  - applied patch by shenpeng11@huawei.com with minor adjustments
2333* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
2334* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
2335* [Bug 2892] Several test cases assume IPv6 capabilities even when
2336             IPv6 is disabled in the build. perlinger@ntp.org
2337  - Found this already fixed, but validation led to cleanup actions.
2338* [Bug 2905] DNS lookups broken. perlinger@ntp.org
2339  - added limits to stack consumption, fixed some return code handling
2340* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
2341  - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
2342  - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
2343* [Bug 2980] reduce number of warnings. perlinger@ntp.org
2344  - integrated several patches from Havard Eidnes (he@uninett.no)
2345* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
2346  - implement 'auth_log2()' using integer bithack instead of float calculation
2347* Make leapsec_query debug messages less verbose.  Harlan Stenn.
2348
2349---
2350NTP 4.2.8p5 (Harlan Stenn <stenn@ntp.org>, 2016/01/07)
2351
2352Focus: Security, Bug fixes, enhancements.
2353
2354Severity: MEDIUM
2355
2356In addition to bug fixes and enhancements, this release fixes the
2357following medium-severity vulnerability:
2358
2359* Small-step/big-step.  Close the panic gate earlier.
2360    References: Sec 2956, CVE-2015-5300
2361    Affects: All ntp-4 releases up to, but not including 4.2.8p5, and
2362	4.3.0 up to, but not including 4.3.78
2363    CVSS3: (AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:N/A:L) Base Score: 4.0, MEDIUM
2364    Summary: If ntpd is always started with the -g option, which is
2365	common and against long-standing recommendation, and if at the
2366	moment ntpd is restarted an attacker can immediately respond to
2367	enough requests from enough sources trusted by the target, which
2368	is difficult and not common, there is a window of opportunity
2369	where the attacker can cause ntpd to set the time to an
2370	arbitrary value. Similarly, if an attacker is able to respond
2371	to enough requests from enough sources trusted by the target,
2372	the attacker can cause ntpd to abort and restart, at which
2373	point it can tell the target to set the time to an arbitrary
2374	value if and only if ntpd was re-started against long-standing
2375	recommendation with the -g flag, or if ntpd was not given the
2376	-g flag, the attacker can move the target system's time by at
2377	most 900 seconds' time per attack.
2378    Mitigation:
2379	Configure ntpd to get time from multiple sources.
2380	Upgrade to 4.2.8p5, or later, from the NTP Project Download
2381	    Page or the NTP Public Services Project Download Page
2382	As we've long documented, only use the -g option to ntpd in
2383	    cold-start situations.
2384	Monitor your ntpd instances.
2385    Credit: This weakness was discovered by Aanchal Malhotra,
2386	Isaac E. Cohen, and Sharon Goldberg at Boston University.
2387
2388    NOTE WELL: The -g flag disables the limit check on the panic_gate
2389	in ntpd, which is 900 seconds by default. The bug identified by
2390	the researchers at Boston University is that the panic_gate
2391	check was only re-enabled after the first change to the system
2392	clock that was greater than 128 milliseconds, by default. The
2393	correct behavior is that the panic_gate check should be
2394	re-enabled after any initial time correction.
2395
2396	If an attacker is able to inject consistent but erroneous time
2397	responses to your systems via the network or "over the air",
2398	perhaps by spoofing radio, cellphone, or navigation satellite
2399	transmissions, they are in a great position to affect your
2400	system's clock. There comes a point where your very best
2401	defenses include:
2402
2403	    Configure ntpd to get time from multiple sources.
2404	    Monitor your ntpd instances.
2405
2406Other fixes:
2407
2408* Coverity submission process updated from Coverity 5 to Coverity 7.
2409  The NTP codebase has been undergoing regular Coverity scans on an
2410  ongoing basis since 2006.  As part of our recent upgrade from
2411  Coverity 5 to Coverity 7, Coverity identified 16 nits in some of
2412  the newly-written Unity test programs.  These were fixed.
2413* [Bug 2829] Clean up pipe_fds in ntpd.c  perlinger@ntp.org
2414* [Bug 2887] stratum -1 config results as showing value 99
2415  - fudge stratum should only accept values [0..16]. perlinger@ntp.org
2416* [Bug 2932] Update leapsecond file info in miscopt.html.  CWoodbury, HStenn.
2417* [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in.  HMurray
2418* [Bug 2944] errno is not preserved properly in ntpdate after sendto call.
2419  - applied patch by Christos Zoulas.  perlinger@ntp.org
2420* [Bug 2952] Peer associations broken by fix for Bug 2901/CVE-2015-7704.
2421* [Bug 2954] Version 4.2.8p4 crashes on startup on some OSes.
2422  - fixed data race conditions in threaded DNS worker. perlinger@ntp.org
2423  - limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
2424* [Bug 2957] 'unsigned int' vs 'size_t' format clash. perlinger@ntp.org
2425  - accept key file only if there are no parsing errors
2426  - fixed size_t/u_int format clash
2427  - fixed wrong use of 'strlcpy'
2428* [Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
2429* [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets. perlinger@ntp.org
2430  - fixed several other warnings (cast-alignment, missing const, missing prototypes)
2431  - promote use of 'size_t' for values that express a size
2432  - use ptr-to-const for read-only arguments
2433  - make sure SOCKET values are not truncated (win32-specific)
2434  - format string fixes
2435* [Bug 2965] Local clock didn't work since 4.2.8p4.  Martin Burnicki.
2436* [Bug 2967] ntpdate command suffers an assertion failure
2437  - fixed ntp_rfc2553.c to return proper address length. perlinger@ntp.org
2438* [Bug 2969]  Seg fault from ntpq/mrulist when looking at server with
2439              lots of clients. perlinger@ntp.org
2440* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
2441  - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
2442* Unity cleanup for FreeBSD-6.4.  Harlan Stenn.
2443* Unity test cleanup.  Harlan Stenn.
2444* Libevent autoconf pthread fixes for FreeBSD-10.  Harlan Stenn.
2445* Header cleanup in tests/sandbox/uglydate.c.  Harlan Stenn.
2446* Header cleanup in tests/libntp/sfptostr.c.  Harlan Stenn.
2447* Quiet a warning from clang.  Harlan Stenn.
2448
2449---
2450NTP 4.2.8p4 (Harlan Stenn <stenn@ntp.org>, 2015/10/21)
2451
2452Focus: Security, Bug fixes, enhancements.
2453
2454Severity: MEDIUM
2455
2456In addition to bug fixes and enhancements, this release fixes the
2457following 13 low- and medium-severity vulnerabilities:
2458
2459* Incomplete vallen (value length) checks in ntp_crypto.c, leading
2460  to potential crashes or potential code injection/information leakage.
2461
2462    References: Sec 2899, Sec 2671, CVE-2015-7691, CVE-2015-7692, CVE-2015-7702
2463    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
2464    	and 4.3.0 up to, but not including 4.3.77
2465    CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
2466    Summary: The fix for CVE-2014-9750 was incomplete in that there were
2467    	certain code paths where a packet with particular autokey operations
2468	that contained malicious data was not always being completely
2469	validated. Receipt of these packets can cause ntpd to crash.
2470    Mitigation:
2471        Don't use autokey.
2472	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2473	    Page or the NTP Public Services Project Download Page
2474	Monitor your ntpd instances.
2475	Credit: This weakness was discovered by Tenable Network Security.
2476
2477* Clients that receive a KoD should validate the origin timestamp field.
2478
2479    References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
2480    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
2481	and 4.3.0 up to, but not including 4.3.77
2482    CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3-5.0 at worst
2483    Summary: An ntpd client that honors Kiss-of-Death responses will honor
2484    	KoD messages that have been forged by an attacker, causing it to
2485	delay or stop querying its servers for time updates. Also, an
2486	attacker can forge packets that claim to be from the target and
2487	send them to servers often enough that a server that implements
2488	KoD rate limiting will send the target machine a KoD response to
2489	attempt to reduce the rate of incoming packets, or it may also
2490	trigger a firewall block at the server for packets from the target
2491	machine. For either of these attacks to succeed, the attacker must
2492	know what servers the target is communicating with. An attacker
2493	can be anywhere on the Internet and can frequently learn the
2494	identity of the target's time source by sending the target a
2495	time query.
2496    Mitigation:
2497        Implement BCP-38.
2498	Upgrade to 4.2.8p4, or later, from the NTP Project Download Page
2499	    or the NTP Public Services Project Download Page
2500	If you can't upgrade, restrict who can query ntpd to learn who
2501	    its servers are, and what IPs are allowed to ask your system
2502	    for the time. This mitigation is heavy-handed.
2503	Monitor your ntpd instances.
2504    Note:
2505    	4.2.8p4 protects against the first attack. For the second attack,
2506    	all we can do is warn when it is happening, which we do in 4.2.8p4.
2507    Credit: This weakness was discovered by Aanchal Malhotra,
2508    	Issac E. Cohen, and Sharon Goldberg of Boston University.
2509
2510* configuration directives to change "pidfile" and "driftfile" should
2511  only be allowed locally.
2512
2513  References: Sec 2902 / CVE-2015-5196
2514  Affects: All ntp-4 releases up to, but not including 4.2.8p4,
2515	and 4.3.0 up to, but not including 4.3.77
2516   CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.2 worst case
2517   Summary: If ntpd is configured to allow for remote configuration,
2518	and if the (possibly spoofed) source IP address is allowed to
2519	send remote configuration requests, and if the attacker knows
2520	the remote configuration password, it's possible for an attacker
2521	to use the "pidfile" or "driftfile" directives to potentially
2522	overwrite other files.
2523   Mitigation:
2524	Implement BCP-38.
2525	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2526	    Page or the NTP Public Services Project Download Page
2527	If you cannot upgrade, don't enable remote configuration.
2528	If you must enable remote configuration and cannot upgrade,
2529	    remote configuration of NTF's ntpd requires:
2530	    - an explicitly configured trustedkey, and you should also
2531	    	configure a controlkey.
2532	    - access from a permitted IP. You choose the IPs.
2533	    - authentication. Don't disable it. Practice secure key safety.
2534	Monitor your ntpd instances.
2535   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
2536
2537* Slow memory leak in CRYPTO_ASSOC
2538
2539  References: Sec 2909 / CVE-2015-7701
2540  Affects: All ntp-4 releases that use autokey up to, but not
2541    including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
2542  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 0.0 best/usual case,
2543  	4.6 otherwise
2544  Summary: If ntpd is configured to use autokey, then an attacker can
2545	send packets to ntpd that will, after several days of ongoing
2546	attack, cause it to run out of memory.
2547  Mitigation:
2548	Don't use autokey.
2549	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2550	    Page or the NTP Public Services Project Download Page
2551	Monitor your ntpd instances.
2552  Credit: This weakness was discovered by Tenable Network Security.
2553
2554* mode 7 loop counter underrun
2555
2556  References:  Sec 2913 / CVE-2015-7848 / TALOS-CAN-0052
2557  Affects: All ntp-4 releases up to, but not including 4.2.8p4,
2558  	and 4.3.0 up to, but not including 4.3.77
2559  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
2560  Summary: If ntpd is configured to enable mode 7 packets, and if the
2561	use of mode 7 packets is not properly protected thru the use of
2562	the available mode 7 authentication and restriction mechanisms,
2563	and if the (possibly spoofed) source IP address is allowed to
2564	send mode 7 queries, then an attacker can send a crafted packet
2565	to ntpd that will cause it to crash.
2566  Mitigation:
2567	Implement BCP-38.
2568	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2569	    Page or the NTP Public Services Project Download Page.
2570	      If you are unable to upgrade:
2571	In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
2572	If you must enable mode 7:
2573	    configure the use of a requestkey to control who can issue
2574		mode 7 requests.
2575	    configure restrict noquery to further limit mode 7 requests
2576		to trusted sources.
2577	Monitor your ntpd instances.
2578Credit: This weakness was discovered by Aleksandar Nikolic of Cisco Talos.
2579
2580* memory corruption in password store
2581
2582  References: Sec 2916 / CVE-2015-7849 / TALOS-CAN-0054
2583  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
2584  CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.8, worst case
2585  Summary: If ntpd is configured to allow remote configuration, and if
2586	the (possibly spoofed) source IP address is allowed to send
2587	remote configuration requests, and if the attacker knows the
2588	remote configuration password or if ntpd was configured to
2589	disable authentication, then an attacker can send a set of
2590	packets to ntpd that may cause a crash or theoretically
2591	perform a code injection attack.
2592  Mitigation:
2593	Implement BCP-38.
2594	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2595	    Page or the NTP Public Services Project Download Page.
2596	If you are unable to upgrade, remote configuration of NTF's
2597	    ntpd requires:
2598		an explicitly configured "trusted" key. Only configure
2599			this if you need it.
2600		access from a permitted IP address. You choose the IPs.
2601		authentication. Don't disable it. Practice secure key safety.
2602	Monitor your ntpd instances.
2603  Credit: This weakness was discovered by Yves Younan of Cisco Talos.
2604
2605* Infinite loop if extended logging enabled and the logfile and
2606  keyfile are the same.
2607
2608    References: Sec 2917 / CVE-2015-7850 / TALOS-CAN-0055
2609    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
2610	and 4.3.0 up to, but not including 4.3.77
2611    CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
2612    Summary: If ntpd is configured to allow remote configuration, and if
2613	the (possibly spoofed) source IP address is allowed to send
2614	remote configuration requests, and if the attacker knows the
2615	remote configuration password or if ntpd was configured to
2616	disable authentication, then an attacker can send a set of
2617	packets to ntpd that will cause it to crash and/or create a
2618	potentially huge log file. Specifically, the attacker could
2619	enable extended logging, point the key file at the log file,
2620	and cause what amounts to an infinite loop.
2621    Mitigation:
2622	Implement BCP-38.
2623	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2624	    Page or the NTP Public Services Project Download Page.
2625	If you are unable to upgrade, remote configuration of NTF's ntpd
2626	  requires:
2627            an explicitly configured "trusted" key. Only configure this
2628	    	if you need it.
2629            access from a permitted IP address. You choose the IPs.
2630            authentication. Don't disable it. Practice secure key safety.
2631        Monitor your ntpd instances.
2632    Credit: This weakness was discovered by Yves Younan of Cisco Talos.
2633
2634* Potential path traversal vulnerability in the config file saving of
2635  ntpd on VMS.
2636
2637  References: Sec 2918 / CVE-2015-7851 / TALOS-CAN-0062
2638  Affects: All ntp-4 releases running under VMS up to, but not
2639	including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
2640  CVSS: (AV:N/AC:H/Au:M/C:N/I:P/A:C) Base Score: 5.2, worst case
2641  Summary: If ntpd is configured to allow remote configuration, and if
2642	the (possibly spoofed) IP address is allowed to send remote
2643	configuration requests, and if the attacker knows the remote
2644	configuration password or if ntpd was configured to disable
2645	authentication, then an attacker can send a set of packets to
2646	ntpd that may cause ntpd to overwrite files.
2647  Mitigation:
2648	Implement BCP-38.
2649	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2650	    Page or the NTP Public Services Project Download Page.
2651	If you are unable to upgrade, remote configuration of NTF's ntpd
2652	    requires:
2653		an explicitly configured "trusted" key. Only configure
2654			this if you need it.
2655		access from permitted IP addresses. You choose the IPs.
2656		authentication. Don't disable it. Practice key security safety.
2657        Monitor your ntpd instances.
2658    Credit: This weakness was discovered by Yves Younan of Cisco Talos.
2659
2660* ntpq atoascii() potential memory corruption
2661
2662  References: Sec 2919 / CVE-2015-7852 / TALOS-CAN-0063
2663  Affects: All ntp-4 releases running up to, but not including 4.2.8p4,
2664	and 4.3.0 up to, but not including 4.3.77
2665  CVSS: (AV:N/AC:H/Au:N/C:N/I:P/A:P) Base Score: 4.0, worst case
2666  Summary: If an attacker can figure out the precise moment that ntpq
2667	is listening for data and the port number it is listening on or
2668	if the attacker can provide a malicious instance ntpd that
2669	victims will connect to then an attacker can send a set of
2670	crafted mode 6 response packets that, if received by ntpq,
2671	can cause ntpq to crash.
2672  Mitigation:
2673	Implement BCP-38.
2674	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2675	    Page or the NTP Public Services Project Download Page.
2676	If you are unable to upgrade and you run ntpq against a server
2677	    and ntpq crashes, try again using raw mode. Build or get a
2678	    patched ntpq and see if that fixes the problem. Report new
2679	    bugs in ntpq or abusive servers appropriately.
2680	If you use ntpq in scripts, make sure ntpq does what you expect
2681	    in your scripts.
2682  Credit: This weakness was discovered by Yves Younan and
2683  	Aleksander Nikolich of Cisco Talos.
2684
2685* Invalid length data provided by a custom refclock driver could cause
2686  a buffer overflow.
2687
2688  References: Sec 2920 / CVE-2015-7853 / TALOS-CAN-0064
2689  Affects: Potentially all ntp-4 releases running up to, but not
2690	including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
2691	that have custom refclocks
2692  CVSS: (AV:L/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 usual case,
2693	5.9 unusual worst case
2694  Summary: A negative value for the datalen parameter will overflow a
2695	data buffer. NTF's ntpd driver implementations always set this
2696	value to 0 and are therefore not vulnerable to this weakness.
2697	If you are running a custom refclock driver in ntpd and that
2698	driver supplies a negative value for datalen (no custom driver
2699	of even minimal competence would do this) then ntpd would
2700	overflow a data buffer. It is even hypothetically possible
2701	in this case that instead of simply crashing ntpd the attacker
2702	could effect a code injection attack.
2703  Mitigation:
2704	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2705	    Page or the NTP Public Services Project Download Page.
2706	If you are unable to upgrade:
2707		If you are running custom refclock drivers, make sure
2708			the signed datalen value is either zero or positive.
2709	Monitor your ntpd instances.
2710  Credit: This weakness was discovered by Yves Younan of Cisco Talos.
2711
2712* Password Length Memory Corruption Vulnerability
2713
2714  References: Sec 2921 / CVE-2015-7854 / TALOS-CAN-0065
2715  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
2716  	4.3.0 up to, but not including 4.3.77
2717  CVSS: (AV:N/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 best case,
2718  	1.7 usual case, 6.8, worst case
2719  Summary: If ntpd is configured to allow remote configuration, and if
2720	the (possibly spoofed) source IP address is allowed to send
2721	remote configuration requests, and if the attacker knows the
2722	remote configuration password or if ntpd was (foolishly)
2723	configured to disable authentication, then an attacker can
2724	send a set of packets to ntpd that may cause it to crash,
2725	with the hypothetical possibility of a small code injection.
2726  Mitigation:
2727	Implement BCP-38.
2728	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2729	    Page or the NTP Public Services Project Download Page.
2730	If you are unable to upgrade, remote configuration of NTF's
2731	    ntpd requires:
2732		an explicitly configured "trusted" key. Only configure
2733			this if you need it.
2734		access from a permitted IP address. You choose the IPs.
2735		authentication. Don't disable it. Practice secure key safety.
2736	Monitor your ntpd instances.
2737  Credit: This weakness was discovered by Yves Younan and
2738  	Aleksander Nikolich of Cisco Talos.
2739
2740* decodenetnum() will ASSERT botch instead of returning FAIL on some
2741  bogus values.
2742
2743  References: Sec 2922 / CVE-2015-7855
2744  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
2745	4.3.0 up to, but not including 4.3.77
2746  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
2747  Summary: If ntpd is fed a crafted mode 6 or mode 7 packet containing
2748	an unusually long data value where a network address is expected,
2749	the decodenetnum() function will abort with an assertion failure
2750	instead of simply returning a failure condition.
2751  Mitigation:
2752	Implement BCP-38.
2753	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2754	    Page or the NTP Public Services Project Download Page.
2755	If you are unable to upgrade:
2756		mode 7 is disabled by default. Don't enable it.
2757		Use restrict noquery to limit who can send mode 6
2758			and mode 7 requests.
2759		Configure and use the controlkey and requestkey
2760			authentication directives to limit who can
2761			send mode 6 and mode 7 requests.
2762	Monitor your ntpd instances.
2763  Credit: This weakness was discovered by John D "Doug" Birdwell of IDA.org.
2764
2765* NAK to the Future: Symmetric association authentication bypass via
2766  crypto-NAK.
2767
2768  References: Sec 2941 / CVE-2015-7871
2769  Affects: All ntp-4 releases between 4.2.5p186 up to but not including
2770  	4.2.8p4, and 4.3.0 up to but not including 4.3.77
2771  CVSS: (AV:N/AC:L/Au:N/C:N/I:P/A:P) Base Score: 6.4
2772  Summary: Crypto-NAK packets can be used to cause ntpd to accept time
2773	from unauthenticated ephemeral symmetric peers by bypassing the
2774	authentication required to mobilize peer associations. This
2775	vulnerability appears to have been introduced in ntp-4.2.5p186
2776	when the code handling mobilization of new passive symmetric
2777	associations (lines 1103-1165) was refactored.
2778  Mitigation:
2779	Implement BCP-38.
2780	Upgrade to 4.2.8p4, or later, from the NTP Project Download
2781	    Page or the NTP Public Services Project Download Page.
2782	If you are unable to upgrade:
2783		Apply the patch to the bottom of the "authentic" check
2784			block around line 1136 of ntp_proto.c.
2785	Monitor your ntpd instances.
2786  Credit: This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
2787
2788Backward-Incompatible changes:
2789* [Bug 2817] Default on Linux is now "rlimit memlock -1".
2790  While the general default of 32M is still the case, under Linux
2791  the default value has been changed to -1 (do not lock ntpd into
2792  memory).  A value of 0 means "lock ntpd into memory with whatever
2793  memory it needs." If your ntp.conf file has an explicit "rlimit memlock"
2794  value in it, that value will continue to be used.
2795
2796* [Bug 2886] Misspelling: "outlyer" should be "outlier".
2797  If you've written a script that looks for this case in, say, the
2798  output of ntpq, you probably want to change your regex matches
2799  from 'outlyer' to 'outl[iy]er'.
2800
2801New features in this release:
2802* 'rlimit memlock' now has finer-grained control.  A value of -1 means
2803  "don't lock ntpd into memore".  This is the default for Linux boxes.
2804  A value of 0 means "lock ntpd into memory" with no limits.  Otherwise
2805  the value is the number of megabytes of memory to lock.  The default
2806  is 32 megabytes.
2807
2808* The old Google Test framework has been replaced with a new framework,
2809  based on http://www.throwtheswitch.org/unity/ .
2810
2811Bug Fixes and Improvements:
2812* [Bug 2332] (reopened) Exercise thread cancellation once before dropping
2813  privileges and limiting resources in NTPD removes the need to link
2814  forcefully against 'libgcc_s' which does not always work. J.Perlinger
2815* [Bug 2595] ntpdate man page quirks.  Hal Murray, Harlan Stenn.
2816* [Bug 2625] Deprecate flag1 in local refclock.  Hal Murray, Harlan Stenn.
2817* [Bug 2817] Stop locking ntpd into memory by default under Linux.  H.Stenn.
2818* [Bug 2821] minor build issues: fixed refclock_gpsdjson.c.  perlinger@ntp.org
2819* [Bug 2823] ntpsweep with recursive peers option doesn't work.  H.Stenn.
2820* [Bug 2849] Systems with more than one default route may never
2821  synchronize.  Brian Utterback.  Note that this patch might need to
2822  be reverted once Bug 2043 has been fixed.
2823* [Bug 2864] 4.2.8p3 fails to compile on Windows. Juergen Perlinger
2824* [Bug 2866] segmentation fault at initgroups().  Harlan Stenn.
2825* [Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'. J.Perlinger
2826* [Bug 2873] libevent should not include .deps/ in the tarball.  H.Stenn
2827* [Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
2828* [Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS.  libevent must
2829  be configured for the distribution targets.  Harlan Stenn.
2830* [Bug 2883] ntpd crashes on exit with empty driftfile.  Miroslav Lichvar.
2831* [Bug 2886] Mis-spelling: "outlyer" should be "outlier".  dave@horsfall.org
2832* [Bug 2888] streamline calendar functions.  perlinger@ntp.org
2833* [Bug 2889] ntp-dev-4.3.67 does not build on Windows.  perlinger@ntp.org
2834* [Bug 2890] Ignore ENOBUFS on routing netlink socket.  Konstantin Khlebnikov.
2835* [Bug 2906] make check needs better support for pthreads.  Harlan Stenn.
2836* [Bug 2907] dist* build targets require our libevent/ to be enabled.  HStenn.
2837* [Bug 2912] no munlockall() under Windows.  David Taylor, Harlan Stenn.
2838* libntp/emalloc.c: Remove explicit include of stdint.h.  Harlan Stenn.
2839* Put Unity CPPFLAGS items in unity_config.h.  Harlan Stenn.
2840* tests/ntpd/g_leapsec.cpp typo fix.  Harlan Stenn.
2841* Phase 1 deprecation of google test in sntp/tests/.  Harlan Stenn.
2842* On some versions of HP-UX, inttypes.h does not include stdint.h.  H.Stenn.
2843* top_srcdir can change based on ntp v. sntp.  Harlan Stenn.
2844* sntp/tests/ function parameter list cleanup.  Damir Tomić.
2845* tests/libntp/ function parameter list cleanup.  Damir Tomić.
2846* tests/ntpd/ function parameter list cleanup.  Damir Tomić.
2847* sntp/unity/unity_config.h: handle stdint.h.  Harlan Stenn.
2848* sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris.  H.Stenn.
2849* tests/libntp/timevalops.c and timespecops.c fixed error printing.  D.Tomić.
2850* tests/libntp/ improvements in code and fixed error printing.  Damir Tomić.
2851* tests/libntp: a_md5encrypt.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
2852  caltontp.c, clocktime.c, humandate.c, hextolfp.c, decodenetnum.c - fixed
2853  formatting; first declaration, then code (C90); deleted unnecessary comments;
2854  changed from sprintf to snprintf; fixed order of includes. Tomasz Flendrich
2855* tests/libntp/lfpfunc.c remove unnecessary include, remove old comments,
2856  fix formatting, cleanup. Tomasz Flendrich
2857* tests/libntp/lfptostr.c remove unnecessary include, add consts, fix formatting.
2858  Tomasz Flendrich
2859* tests/libntp/statestr.c remove empty functions, remove unnecessary include,
2860  fix formatting. Tomasz Flendrich
2861* tests/libntp/modetoa.c fixed formatting. Tomasz Flendrich
2862* tests/libntp/msyslog.c fixed formatting. Tomasz Flendrich
2863* tests/libntp/numtoa.c deleted unnecessary empty functions, fixed formatting.
2864  Tomasz Flendrich
2865* tests/libntp/numtohost.c added const, fixed formatting. Tomasz Flendrich
2866* tests/libntp/refnumtoa.c fixed formatting. Tomasz Flendrich
2867* tests/libntp/ssl_init.c fixed formatting. Tomasz Flendrich
2868* tests/libntp/tvtots.c fixed a bug, fixed formatting. Tomasz Flendrich
2869* tests/libntp/uglydate.c removed an unnecessary include. Tomasz Flendrich
2870* tests/libntp/vi64ops.c removed an unnecessary comment, fixed formatting.
2871* tests/libntp/ymd3yd.c removed an empty function and an unnecessary include,
2872fixed formatting. Tomasz Flendrich
2873* tests/libntp/timespecops.c fixed formatting, fixed the order of includes,
2874  removed unnecessary comments, cleanup. Tomasz Flendrich
2875* tests/libntp/timevalops.c fixed the order of includes, deleted unnecessary
2876  comments, cleanup. Tomasz Flendrich
2877* tests/libntp/sockaddrtest.h making it agree to NTP's conventions of formatting.
2878  Tomasz Flendrich
2879* tests/libntp/lfptest.h cleanup. Tomasz Flendrich
2880* tests/libntp/test-libntp.c fix formatting. Tomasz Flendrich
2881* sntp/tests/crypto.c is now using proper Unity's assertions, fixed formatting.
2882  Tomasz Flendrich
2883* sntp/tests/kodDatabase.c added consts, deleted empty function,
2884  fixed formatting. Tomasz Flendrich
2885* sntp/tests/kodFile.c cleanup, fixed formatting. Tomasz Flendrich
2886* sntp/tests/packetHandling.c is now using proper Unity's assertions,
2887  fixed formatting, deleted unused variable. Tomasz Flendrich
2888* sntp/tests/keyFile.c is now using proper Unity's assertions, fixed formatting.
2889  Tomasz Flendrich
2890* sntp/tests/packetProcessing.c changed from sprintf to snprintf,
2891  fixed formatting. Tomasz Flendrich
2892* sntp/tests/utilities.c is now using proper Unity's assertions, changed
2893  the order of includes, fixed formatting, removed unnecessary comments.
2894  Tomasz Flendrich
2895* sntp/tests/sntptest.h fixed formatting. Tomasz Flendrich
2896* sntp/tests/fileHandlingTest.h.in fixed a possible buffer overflow problem,
2897  made one function do its job, deleted unnecessary prints, fixed formatting.
2898  Tomasz Flendrich
2899* sntp/unity/Makefile.am added a missing header. Tomasz Flendrich
2900* sntp/unity/unity_config.h: Distribute it.  Harlan Stenn.
2901* sntp/libevent/evconfig-private.h: remove generated filefrom SCM.  H.Stenn.
2902* sntp/unity/Makefile.am: fix some broken paths.  Harlan Stenn.
2903* sntp/unity/unity.c: Clean up a printf().  Harlan Stenn.
2904* Phase 1 deprecation of google test in tests/libntp/.  Harlan Stenn.
2905* Don't build sntp/libevent/sample/.  Harlan Stenn.
2906* tests/libntp/test_caltontp needs -lpthread.  Harlan Stenn.
2907* br-flock: --enable-local-libevent.  Harlan Stenn.
2908* Wrote tests for ntpd/ntp_prio_q.c. Tomasz Flendrich
2909* scripts/lib/NTP/Util.pm: stratum output is version-dependent.  Harlan Stenn.
2910* Get rid of the NTP_ prefix on our assertion macros.  Harlan Stenn.
2911* Code cleanup.  Harlan Stenn.
2912* libntp/icom.c: Typo fix.  Harlan Stenn.
2913* util/ntptime.c: initialization nit.  Harlan Stenn.
2914* ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr).  Harlan Stenn.
2915* Add std_unity_tests to various Makefile.am files.  Harlan Stenn.
2916* ntpd/ntp_restrict.c: added a few assertions, created tests for this file.
2917  Tomasz Flendrich
2918* Changed progname to be const in many files - now it's consistent. Tomasz
2919  Flendrich
2920* Typo fix for GCC warning suppression.  Harlan Stenn.
2921* Added tests/ntpd/ntp_scanner.c test. Damir Tomić.
2922* Added declarations to all Unity tests, and did minor fixes to them.
2923  Reduced the number of warnings by half. Damir Tomić.
2924* Updated generate_test_runner.rb and updated the sntp/unity/auto directory
2925  with the latest Unity updates from Mark. Damir Tomić.
2926* Retire google test - phase I.  Harlan Stenn.
2927* Unity test cleanup: move declaration of 'initializing'.  Harlan Stenn.
2928* Update the NEWS file.  Harlan Stenn.
2929* Autoconf cleanup.  Harlan Stenn.
2930* Unit test dist cleanup. Harlan Stenn.
2931* Cleanup various test Makefile.am files.  Harlan Stenn.
2932* Pthread autoconf macro cleanup.  Harlan Stenn.
2933* Fix progname definition in unity runner scripts.  Harlan Stenn.
2934* Clean trailing whitespace in tests/ntpd/Makefile.am.  Harlan Stenn.
2935* Update the patch for bug 2817.  Harlan Stenn.
2936* More updates for bug 2817.  Harlan Stenn.
2937* Fix bugs in tests/ntpd/ntp_prio_q.c.  Harlan Stenn.
2938* gcc on older HPUX may need +allowdups.  Harlan Stenn.
2939* Adding missing MCAST protection.  Harlan Stenn.
2940* Disable certain test programs on certain platforms.  Harlan Stenn.
2941* Implement --enable-problem-tests (on by default).  Harlan Stenn.
2942* build system tweaks.  Harlan Stenn.
2943
2944---
2945NTP 4.2.8p3 (Harlan Stenn <stenn@ntp.org>, 2015/06/29)
2946
2947Focus: 1 Security fix.  Bug fixes and enhancements.  Leap-second improvements.
2948
2949Severity: MEDIUM
2950
2951Security Fix:
2952
2953* [Sec 2853] Crafted remote config packet can crash some versions of
2954  ntpd.  Aleksis Kauppinen, Juergen Perlinger, Harlan Stenn.
2955
2956Under specific circumstances an attacker can send a crafted packet to
2957cause a vulnerable ntpd instance to crash. This requires each of the
2958following to be true:
2959
29601) ntpd set up to allow remote configuration (not allowed by default), and
29612) knowledge of the configuration password, and
29623) access to a computer entrusted to perform remote configuration.
2963
2964This vulnerability is considered low-risk.
2965
2966New features in this release:
2967
2968Optional (disabled by default) support to have ntpd provide smeared
2969leap second time.  A specially built and configured ntpd will only
2970offer smeared time in response to client packets.  These response
2971packets will also contain a "refid" of 254.a.b.c, where the 24 bits
2972of a, b, and c encode the amount of smear in a 2:22 integer:fraction
2973format.  See README.leapsmear and http://bugs.ntp.org/2855 for more
2974information.
2975
2976   *IF YOU CHOOSE TO CONFIGURE NTPD TO PROVIDE LEAP SMEAR TIME*
2977   *BE SURE YOU DO NOT OFFER THAT TIME ON PUBLIC TIMESERVERS.*
2978
2979We've imported the Unity test framework, and have begun converting
2980the existing google-test items to this new framework.  If you want
2981to write new tests or change old ones, you'll need to have ruby
2982installed.  You don't need ruby to run the test suite.
2983
2984Bug Fixes and Improvements:
2985
2986* CID 739725: Fix a rare resource leak in libevent/listener.c.
2987* CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776.
2988* CID 1296235: Fix refclock_jjy.c and correcting type of the driver40-ja.html
2989* CID 1269537: Clean up a line of dead code in getShmTime().
2990* [Bug 1060] Buffer overruns in libparse/clk_rawdcf.c.  Helge Oldach.
2991* [Bug 2590] autogen-5.18.5.
2992* [Bug 2612] restrict: Warn when 'monitor' can't be disabled because
2993  of 'limited'.
2994* [Bug 2650] fix includefile processing.
2995* [Bug 2745] ntpd -x steps clock on leap second
2996   Fixed an initial-value problem that caused misbehaviour in absence of
2997   any leapsecond information.
2998   Do leap second stepping only of the step adjustment is beyond the
2999   proper jump distance limit and step correction is allowed at all.
3000* [Bug 2750] build for Win64
3001  Building for 32bit of loopback ppsapi needs def file
3002* [Bug 2776] Improve ntpq's 'help keytype'.
3003* [Bug 2778] Implement "apeers"  ntpq command to include associd.
3004* [Bug 2782] Refactor refclock_shm.c, add memory barrier protection.
3005* [Bug 2792] If the IFF_RUNNING interface flag is supported then an
3006  interface is ignored as long as this flag is not set since the
3007  interface is not usable (e.g., no link).
3008* [Bug 2794] Clean up kernel clock status reports.
3009* [Bug 2800] refclock_true.c true_debug() can't open debug log because
3010  of incompatible open/fdopen parameters.
3011* [Bug 2804] install-local-data assumes GNU 'find' semantics.
3012* [Bug 2805] ntpd fails to join multicast group.
3013* [Bug 2806] refclock_jjy.c supports the Telephone JJY.
3014* [Bug 2808] GPSD_JSON driver enhancements, step 1.
3015  Fix crash during cleanup if GPS device not present and char device.
3016  Increase internal token buffer to parse all JSON data, even SKY.
3017  Defer logging of errors during driver init until the first unit is
3018  started, so the syslog is not cluttered when the driver is not used.
3019  Various improvements, see http://bugs.ntp.org/2808 for details.
3020  Changed libjsmn to a more recent version.
3021* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX.
3022* [Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h.
3023* [Bug 2815] net-snmp before v5.4 has circular library dependencies.
3024* [Bug 2821] Add a missing NTP_PRINTF and a missing const.
3025* [Bug 2822] New leap column in sntp broke NTP::Util.pm.
3026* [Bug 2824] Convert update-leap to perl. (also see 2769)
3027* [Bug 2825] Quiet file installation in html/ .
3028* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
3029   NTPD transfers the current TAI (instead of an announcement) now.
3030   This might still needed improvement.
3031   Update autokey data ASAP when 'sys_tai' changes.
3032   Fix unit test that was broken by changes for autokey update.
3033   Avoid potential signature length issue and use DPRINTF where possible
3034     in ntp_crypto.c.
3035* [Bug 2832] refclock_jjy.c supports the TDC-300.
3036* [Bug 2834] Correct a broken html tag in html/refclock.html
3037* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
3038  robust, and require 2 consecutive timestamps to be consistent.
3039* [Bug 2837] Allow a configurable DSCP value.
3040* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
3041* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
3042* [Bug 2842] Bug in mdoc2man.
3043* [Bug 2843] make check fails on 4.3.36
3044   Fixed compiler warnings about numeric range overflow
3045   (The original topic was fixed in a byplay to bug#2830)
3046* [Bug 2845] Harden memory allocation in ntpd.
3047* [Bug 2852] 'make check' can't find unity.h.  Hal Murray.
3048* [Bug 2854] Missing brace in libntp/strdup.c.  Masanari Iida.
3049* [Bug 2855] Parser fix for conditional leap smear code.  Harlan Stenn.
3050* [Bug 2855] Report leap smear in the REFID.  Harlan Stenn.
3051* [Bug 2855] Implement conditional leap smear code.  Martin Burnicki.
3052* [Bug 2856] ntpd should wait() on terminated child processes.  Paul Green.
3053* [Bug 2857] Stratus VOS does not support SIGIO.  Paul Green.
3054* [Bug 2859] Improve raw DCF77 robustness deconding.  Frank Kardel.
3055* [Bug 2860] ntpq ifstats sanity check is too stringent.  Frank Kardel.
3056* html/drivers/driver22.html: typo fix.  Harlan Stenn.
3057* refidsmear test cleanup.  Tomasz Flendrich.
3058* refidsmear function support and tests.  Harlan Stenn.
3059* sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested
3060  something that was only in the 4.2.6 sntp.  Harlan Stenn.
3061* Modified tests/bug-2803/Makefile.am so it builds Unity framework tests.
3062  Damir Tomić
3063* Modified tests/libtnp/Makefile.am so it builds Unity framework tests.
3064  Damir Tomić
3065* Modified sntp/tests/Makefile.am so it builds Unity framework tests.
3066  Damir Tomić
3067* tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
3068* Converted from gtest to Unity: tests/bug-2803/. Damir Tomić
3069* Converted from gtest to Unity: tests/libntp/ a_md5encrypt, atoint.c,
3070  atouint.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
3071  calyearstart.c, clocktime.c, hextoint.c, lfpfunc.c, modetoa.c,
3072  numtoa.c, numtohost.c, refnumtoa.c, ssl_init.c, statestr.c,
3073  timespecops.c, timevalops.c, uglydate.c, vi64ops.c, ymd2yd.c.
3074  Damir Tomić
3075* Converted from gtest to Unity: sntp/tests/ kodDatabase.c, kodFile.c,
3076  networking.c, keyFile.c, utilities.cpp, sntptest.h,
3077  fileHandlingTest.h. Damir Tomić
3078* Initial support for experimental leap smear code.  Harlan Stenn.
3079* Fixes to sntp/tests/fileHandlingTest.h.in.  Harlan Stenn.
3080* Report select() debug messages at debug level 3 now.
3081* sntp/scripts/genLocInfo: treat raspbian as debian.
3082* Unity test framework fixes.
3083  ** Requires ruby for changes to tests.
3084* Initial support for PACKAGE_VERSION tests.
3085* sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS.
3086* tests/bug-2803/Makefile.am must distribute bug-2803.h.
3087* Add an assert to the ntpq ifstats code.
3088* Clean up the RLIMIT_STACK code.
3089* Improve the ntpq documentation around the controlkey keyid.
3090* ntpq.c cleanup.
3091* Windows port build cleanup.
3092
3093---
3094NTP 4.2.8p2 (Harlan Stenn <stenn@ntp.org>, 2015/04/07)
3095
3096Focus: Security and Bug fixes, enhancements.
3097
3098Severity: MEDIUM
3099
3100In addition to bug fixes and enhancements, this release fixes the
3101following medium-severity vulnerabilities involving private key
3102authentication:
3103
3104* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
3105
3106    References: Sec 2779 / CVE-2015-1798 / VU#374268
3107    Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not
3108	including ntp-4.2.8p2 where the installation uses symmetric keys
3109	to authenticate remote associations.
3110    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
3111    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
3112    Summary: When ntpd is configured to use a symmetric key to authenticate
3113	a remote NTP server/peer, it checks if the NTP message
3114	authentication code (MAC) in received packets is valid, but not if
3115	there actually is any MAC included. Packets without a MAC are
3116	accepted as if they had a valid MAC. This allows a MITM attacker to
3117	send false packets that are accepted by the client/peer without
3118	having to know the symmetric key. The attacker needs to know the
3119	transmit timestamp of the client to match it in the forged reply
3120	and the false reply needs to reach the client before the genuine
3121	reply from the server. The attacker doesn't necessarily need to be
3122	relaying the packets between the client and the server.
3123
3124	Authentication using autokey doesn't have this problem as there is
3125	a check that requires the key ID to be larger than NTP_MAXKEY,
3126	which fails for packets without a MAC.
3127    Mitigation:
3128        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
3129	or the NTP Public Services Project Download Page
3130        Configure ntpd with enough time sources and monitor it properly.
3131    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
3132
3133* [Sec 2781] Authentication doesn't protect symmetric associations against
3134  DoS attacks.
3135
3136    References: Sec 2781 / CVE-2015-1799 / VU#374268
3137    Affects: All NTP releases starting with at least xntp3.3wy up to but
3138	not including ntp-4.2.8p2 where the installation uses symmetric
3139	key authentication.
3140    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
3141    Note: the CVSS base Score for this issue could be 4.3 or lower, and
3142	it could be higher than 5.4.
3143    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
3144    Summary: An attacker knowing that NTP hosts A and B are peering with
3145	each other (symmetric association) can send a packet to host A
3146	with source address of B which will set the NTP state variables
3147	on A to the values sent by the attacker. Host A will then send
3148	on its next poll to B a packet with originate timestamp that
3149	doesn't match the transmit timestamp of B and the packet will
3150	be dropped. If the attacker does this periodically for both
3151	hosts, they won't be able to synchronize to each other. This is
3152	a known denial-of-service attack, described at
3153	https://www.eecis.udel.edu/~mills/onwire.html .
3154
3155	According to the document the NTP authentication is supposed to
3156	protect symmetric associations against this attack, but that
3157	doesn't seem to be the case. The state variables are updated even
3158	when authentication fails and the peers are sending packets with
3159	originate timestamps that don't match the transmit timestamps on
3160	the receiving side.
3161
3162	This seems to be a very old problem, dating back to at least
3163	xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905)
3164	specifications, so other NTP implementations with support for
3165	symmetric associations and authentication may be vulnerable too.
3166	An update to the NTP RFC to correct this error is in-process.
3167    Mitigation:
3168        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
3169	or the NTP Public Services Project Download Page
3170        Note that for users of autokey, this specific style of MITM attack
3171	is simply a long-known potential problem.
3172        Configure ntpd with appropriate time sources and monitor ntpd.
3173	Alert your staff if problems are detected.
3174    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
3175
3176* New script: update-leap
3177The update-leap script will verify and if necessary, update the
3178leap-second definition file.
3179It requires the following commands in order to work:
3180
3181	wget logger tr sed shasum
3182
3183Some may choose to run this from cron.  It needs more portability testing.
3184
3185Bug Fixes and Improvements:
3186
3187* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
3188* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument.
3189* [Bug 2346] "graceful termination" signals do not do peer cleanup.
3190* [Bug 2728] See if C99-style structure initialization works.
3191* [Bug 2747] Upgrade libevent to 2.1.5-beta.
3192* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. .
3193* [Bug 2751] jitter.h has stale copies of l_fp macros.
3194* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
3195* [Bug 2757] Quiet compiler warnings.
3196* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
3197* [Bug 2763] Allow different thresholds for forward and backward steps.
3198* [Bug 2766] ntp-keygen output files should not be world-readable.
3199* [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
3200* [Bug 2771] nonvolatile value is documented in wrong units.
3201* [Bug 2773] Early leap announcement from Palisade/Thunderbolt
3202* [Bug 2774] Unreasonably verbose printout - leap pending/warning
3203* [Bug 2775] ntp-keygen.c fails to compile under Windows.
3204* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info.
3205  Removed non-ASCII characters from some copyright comments.
3206  Removed trailing whitespace.
3207  Updated definitions for Meinberg clocks from current Meinberg header files.
3208  Now use C99 fixed-width types and avoid non-ASCII characters in comments.
3209  Account for updated definitions pulled from Meinberg header files.
3210  Updated comments on Meinberg GPS receivers which are not only called GPS16x.
3211  Replaced some constant numbers by defines from ntp_calendar.h
3212  Modified creation of parse-specific variables for Meinberg devices
3213  in gps16x_message().
3214  Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
3215  Modified mbg_tm_str() which now expexts an additional parameter controlling
3216  if the time status shall be printed.
3217* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
3218* [Sec 2781] Authentication doesn't protect symmetric associations against
3219  DoS attacks.
3220* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE.
3221* [Bug 2789] Quiet compiler warnings from libevent.
3222* [Bug 2790] If ntpd sets the Windows MM timer highest resolution
3223  pause briefly before measuring system clock precision to yield
3224  correct results.
3225* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer.
3226* Use predefined function types for parse driver functions
3227  used to set up function pointers.
3228  Account for changed prototype of parse_inp_fnc_t functions.
3229  Cast parse conversion results to appropriate types to avoid
3230  compiler warnings.
3231  Let ioctl() for Windows accept a (void *) to avoid compiler warnings
3232  when called with pointers to different types.
3233
3234---
3235NTP 4.2.8p1 (Harlan Stenn <stenn@ntp.org>, 2015/02/04)
3236
3237Focus: Security and Bug fixes, enhancements.
3238
3239Severity: HIGH
3240
3241In addition to bug fixes and enhancements, this release fixes the
3242following high-severity vulnerabilities:
3243
3244* vallen is not validated in several places in ntp_crypto.c, leading
3245  to a potential information leak or possibly a crash
3246
3247    References: Sec 2671 / CVE-2014-9297 / VU#852879
3248    Affects: All NTP4 releases before 4.2.8p1 that are running autokey.
3249    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
3250    Date Resolved: Stable (4.2.8p1) 04 Feb 2015
3251    Summary: The vallen packet value is not validated in several code
3252             paths in ntp_crypto.c which can lead to information leakage
3253	     or perhaps a crash of the ntpd process.
3254    Mitigation - any of:
3255	Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
3256		or the NTP Public Services Project Download Page.
3257	Disable Autokey Authentication by removing, or commenting out,
3258		all configuration directives beginning with the "crypto"
3259		keyword in your ntp.conf file.
3260    Credit: This vulnerability was discovered by Stephen Roettger of the
3261    	Google Security Team, with additional cases found by Sebastian
3262	Krahmer of the SUSE Security Team and Harlan Stenn of Network
3263	Time Foundation.
3264
3265* ::1 can be spoofed on some OSes, so ACLs based on IPv6 ::1 addresses
3266  can be bypassed.
3267
3268    References: Sec 2672 / CVE-2014-9298 / VU#852879
3269    Affects: All NTP4 releases before 4.2.8p1, under at least some
3270	versions of MacOS and Linux. *BSD has not been seen to be vulnerable.
3271    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:C) Base Score: 9
3272    Date Resolved: Stable (4.2.8p1) 04 Feb 2014
3273    Summary: While available kernels will prevent 127.0.0.1 addresses
3274	from "appearing" on non-localhost IPv4 interfaces, some kernels
3275	do not offer the same protection for ::1 source addresses on
3276	IPv6 interfaces. Since NTP's access control is based on source
3277	address and localhost addresses generally have no restrictions,
3278	an attacker can send malicious control and configuration packets
3279	by spoofing ::1 addresses from the outside. Note Well: This is
3280	not really a bug in NTP, it's a problem with some OSes. If you
3281	have one of these OSes where ::1 can be spoofed, ALL ::1 -based
3282	ACL restrictions on any application can be bypassed!
3283    Mitigation:
3284        Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
3285	or the NTP Public Services Project Download Page
3286        Install firewall rules to block packets claiming to come from
3287	::1 from inappropriate network interfaces.
3288    Credit: This vulnerability was discovered by Stephen Roettger of
3289	the Google Security Team.
3290
3291Additionally, over 30 bugfixes and improvements were made to the codebase.
3292See the ChangeLog for more information.
3293
3294---
3295NTP 4.2.8 (Harlan Stenn <stenn@ntp.org>, 2014/12/18)
3296
3297Focus: Security and Bug fixes, enhancements.
3298
3299Severity: HIGH
3300
3301In addition to bug fixes and enhancements, this release fixes the
3302following high-severity vulnerabilities:
3303
3304************************** vv NOTE WELL vv *****************************
3305
3306The vulnerabilities listed below can be significantly mitigated by
3307following the BCP of putting
3308
3309 restrict default ... noquery
3310
3311in the ntp.conf file.  With the exception of:
3312
3313   receive(): missing return on error
3314   References: Sec 2670 / CVE-2014-9296 / VU#852879
3315
3316below (which is a limited-risk vulnerability), none of the recent
3317vulnerabilities listed below can be exploited if the source IP is
3318restricted from sending a 'query'-class packet by your ntp.conf file.
3319
3320************************** ^^ NOTE WELL ^^ *****************************
3321
3322* Weak default key in config_auth().
3323
3324  References: [Sec 2665] / CVE-2014-9293 / VU#852879
3325  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
3326  Vulnerable Versions: all releases prior to 4.2.7p11
3327  Date Resolved: 28 Jan 2010
3328
3329  Summary: If no 'auth' key is set in the configuration file, ntpd
3330	would generate a random key on the fly.  There were two
3331	problems with this: 1) the generated key was 31 bits in size,
3332	and 2) it used the (now weak) ntp_random() function, which was
3333	seeded with a 32-bit value and could only provide 32 bits of
3334	entropy.  This was sufficient back in the late 1990s when the
3335	code was written.  Not today.
3336
3337  Mitigation - any of:
3338	- Upgrade to 4.2.7p11 or later.
3339	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
3340
3341  Credit: This vulnerability was noticed in ntp-4.2.6 by Neel Mehta
3342  	of the Google Security Team.
3343
3344* Non-cryptographic random number generator with weak seed used by
3345  ntp-keygen to generate symmetric keys.
3346
3347  References: [Sec 2666] / CVE-2014-9294 / VU#852879
3348  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
3349  Vulnerable Versions: All NTP4 releases before 4.2.7p230
3350  Date Resolved: Dev (4.2.7p230) 01 Nov 2011
3351
3352  Summary: Prior to ntp-4.2.7p230 ntp-keygen used a weak seed to
3353  	prepare a random number generator that was of good quality back
3354	in the late 1990s. The random numbers produced was then used to
3355	generate symmetric keys. In ntp-4.2.8 we use a current-technology
3356	cryptographic random number generator, either RAND_bytes from
3357	OpenSSL, or arc4random().
3358
3359  Mitigation - any of:
3360  	- Upgrade to 4.2.7p230 or later.
3361	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
3362
3363  Credit:  This vulnerability was discovered in ntp-4.2.6 by
3364  	Stephen Roettger of the Google Security Team.
3365
3366* Buffer overflow in crypto_recv()
3367
3368  References: Sec 2667 / CVE-2014-9295 / VU#852879
3369  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
3370  Versions: All releases before 4.2.8
3371  Date Resolved: Stable (4.2.8) 18 Dec 2014
3372
3373  Summary: When Autokey Authentication is enabled (i.e. the ntp.conf
3374  	file contains a 'crypto pw ...' directive) a remote attacker
3375	can send a carefully crafted packet that can overflow a stack
3376	buffer and potentially allow malicious code to be executed
3377	with the privilege level of the ntpd process.
3378
3379  Mitigation - any of:
3380  	- Upgrade to 4.2.8, or later, or
3381	- Disable Autokey Authentication by removing, or commenting out,
3382	  all configuration directives beginning with the crypto keyword
3383	  in your ntp.conf file.
3384
3385  Credit: This vulnerability was discovered by Stephen Roettger of the
3386  	Google Security Team.
3387
3388* Buffer overflow in ctl_putdata()
3389
3390  References: Sec 2668 / CVE-2014-9295 / VU#852879
3391  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
3392  Versions: All NTP4 releases before 4.2.8
3393  Date Resolved: Stable (4.2.8) 18 Dec 2014
3394
3395  Summary: A remote attacker can send a carefully crafted packet that
3396  	can overflow a stack buffer and potentially allow malicious
3397	code to be executed with the privilege level of the ntpd process.
3398
3399  Mitigation - any of:
3400  	- Upgrade to 4.2.8, or later.
3401	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
3402
3403  Credit: This vulnerability was discovered by Stephen Roettger of the
3404  	Google Security Team.
3405
3406* Buffer overflow in configure()
3407
3408  References: Sec 2669 / CVE-2014-9295 / VU#852879
3409  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
3410  Versions: All NTP4 releases before 4.2.8
3411  Date Resolved: Stable (4.2.8) 18 Dec 2014
3412
3413  Summary: A remote attacker can send a carefully crafted packet that
3414	can overflow a stack buffer and potentially allow malicious
3415	code to be executed with the privilege level of the ntpd process.
3416
3417  Mitigation - any of:
3418  	- Upgrade to 4.2.8, or later.
3419	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
3420
3421  Credit: This vulnerability was discovered by Stephen Roettger of the
3422	Google Security Team.
3423
3424* receive(): missing return on error
3425
3426  References: Sec 2670 / CVE-2014-9296 / VU#852879
3427  CVSS: (AV:N/AC:L/Au:N/C:N/I:N/A:P) Base Score: 5.0
3428  Versions: All NTP4 releases before 4.2.8
3429  Date Resolved: Stable (4.2.8) 18 Dec 2014
3430
3431  Summary: Code in ntp_proto.c:receive() was missing a 'return;' in
3432  	the code path where an error was detected, which meant
3433	processing did not stop when a specific rare error occurred.
3434	We haven't found a way for this bug to affect system integrity.
3435	If there is no way to affect system integrity the base CVSS
3436	score for this bug is 0. If there is one avenue through which
3437	system integrity can be partially affected, the base score
3438	becomes a 5. If system integrity can be partially affected
3439	via all three integrity metrics, the CVSS base score become 7.5.
3440
3441  Mitigation - any of:
3442        - Upgrade to 4.2.8, or later,
3443        - Remove or comment out all configuration directives
3444	  beginning with the crypto keyword in your ntp.conf file.
3445
3446  Credit: This vulnerability was discovered by Stephen Roettger of the
3447  	Google Security Team.
3448
3449See http://support.ntp.org/security for more information.
3450
3451New features / changes in this release:
3452
3453Important Changes
3454
3455* Internal NTP Era counters
3456
3457The internal counters that track the "era" (range of years) we are in
3458rolls over every 136 years'.  The current "era" started at the stroke of
3459midnight on 1 Jan 1900, and ends just before the stroke of midnight on
34601 Jan 2036.
3461In the past, we have used the "midpoint" of the  range to decide which
3462era we were in.  Given the longevity of some products, it became clear
3463that it would be more functional to "look back" less, and "look forward"
3464more.  We now compile a timestamp into the ntpd executable and when we
3465get a timestamp we us the "built-on" to tell us what era we are in.
3466This check "looks back" 10 years, and "looks forward" 126 years.
3467
3468* ntpdc responses disabled by default
3469
3470Dave Hart writes:
3471
3472For a long time, ntpq and its mostly text-based mode 6 (control)
3473protocol have been preferred over ntpdc and its mode 7 (private
3474request) protocol for runtime queries and configuration.  There has
3475been a goal of deprecating ntpdc, previously held back by numerous
3476capabilities exposed by ntpdc with no ntpq equivalent.  I have been
3477adding commands to ntpq to cover these cases, and I believe I've
3478covered them all, though I've not compared command-by-command
3479recently.
3480
3481As I've said previously, the binary mode 7 protocol involves a lot of
3482hand-rolled structure layout and byte-swapping code in both ntpd and
3483ntpdc which is hard to get right.  As ntpd grows and changes, the
3484changes are difficult to expose via ntpdc while maintaining forward
3485and backward compatibility between ntpdc and ntpd.  In contrast,
3486ntpq's text-based, label=value approach involves more code reuse and
3487allows compatible changes without extra work in most cases.
3488
3489Mode 7 has always been defined as vendor/implementation-specific while
3490mode 6 is described in RFC 1305 and intended to be open to interoperate
3491with other implementations.  There is an early draft of an updated
3492mode 6 description that likely will join the other NTPv4 RFCs
3493eventually. (http://tools.ietf.org/html/draft-odonoghue-ntpv4-control-01)
3494
3495For these reasons, ntpd 4.2.7p230 by default disables processing of
3496ntpdc queries, reducing ntpd's attack surface and functionally
3497deprecating ntpdc.  If you are in the habit of using ntpdc for certain
3498operations, please try the ntpq equivalent.  If there's no equivalent,
3499please open a bug report at http://bugs.ntp.org./
3500
3501In addition to the above, over 1100 issues have been resolved between
3502the 4.2.6 branch and 4.2.8.  The ChangeLog file in the distribution
3503lists these.
3504
3505---
3506NTP 4.2.6p5 (Harlan Stenn <stenn@ntp.org>, 2011/12/24)
3507
3508Focus: Bug fixes
3509
3510Severity: Medium
3511
3512This is a recommended upgrade.
3513
3514This release updates sys_rootdisp and sys_jitter calculations to match the
3515RFC specification, fixes a potential IPv6 address matching error for the
3516"nic" and "interface" configuration directives, suppresses the creation of
3517extraneous ephemeral associations for certain broadcastclient and
3518multicastclient configurations, cleans up some ntpq display issues, and
3519includes improvements to orphan mode, minor bugs fixes and code clean-ups.
3520
3521New features / changes in this release:
3522
3523ntpd
3524
3525 * Updated "nic" and "interface" IPv6 address handling to prevent
3526   mismatches with localhost [::1] and wildcard [::] which resulted from
3527   using the address/prefix format (e.g. fe80::/64)
3528 * Fix orphan mode stratum incorrectly counting to infinity
3529 * Orphan parent selection metric updated to includes missing ntohl()
3530 * Non-printable stratum 16 refid no longer sent to ntp
3531 * Duplicate ephemeral associations suppressed for broadcastclient and
3532   multicastclient without broadcastdelay
3533 * Exclude undetermined sys_refid from use in loopback TEST12
3534 * Exclude MODE_SERVER responses from KoD rate limiting
3535 * Include root delay in clock_update() sys_rootdisp calculations
3536 * get_systime() updated to exclude sys_residual offset (which only
3537   affected bits "below" sys_tick, the precision threshold)
3538 * sys.peer jitter weighting corrected in sys_jitter calculation
3539
3540ntpq
3541
3542 * -n option extended to include the billboard "server" column
3543 * IPv6 addresses in the local column truncated to prevent overruns
3544
3545---
3546NTP 4.2.6p4 (Harlan Stenn <stenn@ntp.org>, 2011/09/22)
3547
3548Focus: Bug fixes and portability improvements
3549
3550Severity: Medium
3551
3552This is a recommended upgrade.
3553
3554This release includes build infrastructure updates, code
3555clean-ups, minor bug fixes, fixes for a number of minor
3556ref-clock issues, and documentation revisions.
3557
3558Portability improvements affect AIX, HP-UX, Linux, OS X and 64-bit time_t.
3559
3560New features / changes in this release:
3561
3562Build system
3563
3564* Fix checking for struct rtattr
3565* Update config.guess and config.sub for AIX
3566* Upgrade required version of autogen and libopts for building
3567  from our source code repository
3568
3569ntpd
3570
3571* Back-ported several fixes for Coverity warnings from ntp-dev
3572* Fix a rare boundary condition in UNLINK_EXPR_SLIST()
3573* Allow "logconfig =allall" configuration directive
3574* Bind tentative IPv6 addresses on Linux
3575* Correct WWVB/Spectracom driver to timestamp CR instead of LF
3576* Improved tally bit handling to prevent incorrect ntpq peer status reports
3577* Exclude the Undisciplined Local Clock and ACTS drivers from the initial
3578  candidate list unless they are designated a "prefer peer"
3579* Prevent the consideration of Undisciplined Local Clock or ACTS drivers for
3580  selection during the 'tos orphanwait' period
3581* Prefer an Orphan Mode Parent over the Undisciplined Local Clock or ACTS
3582  drivers
3583* Improved support of the Parse Refclock trusttime flag in Meinberg mode
3584* Back-port utility routines from ntp-dev: mprintf(), emalloc_zero()
3585* Added the NTPD_TICKADJ_PPM environment variable for specifying baseline
3586  clock slew on Microsoft Windows
3587* Code cleanup in libntpq
3588
3589ntpdc
3590
3591* Fix timerstats reporting
3592
3593ntpdate
3594
3595* Reduce time required to set clock
3596* Allow a timeout greater than 2 seconds
3597
3598sntp
3599
3600* Backward incompatible command-line option change:
3601  -l/--filelog changed -l/--logfile (to be consistent with ntpd)
3602
3603Documentation
3604
3605* Update html2man. Fix some tags in the .html files
3606* Distribute ntp-wait.html
3607
3608---
3609NTP 4.2.6p3 (Harlan Stenn <stenn@ntp.org>, 2011/01/03)
3610
3611Focus: Bug fixes and portability improvements
3612
3613Severity: Medium
3614
3615This is a recommended upgrade.
3616
3617This release includes build infrastructure updates, code
3618clean-ups, minor bug fixes, fixes for a number of minor
3619ref-clock issues, and documentation revisions.
3620
3621Portability improvements in this release affect AIX, Atari FreeMiNT,
3622FreeBSD4, Linux and Microsoft Windows.
3623
3624New features / changes in this release:
3625
3626Build system
3627* Use lsb_release to get information about Linux distributions.
3628* 'test' is in /usr/bin (instead of /bin) on some systems.
3629* Basic sanity checks for the ChangeLog file.
3630* Source certain build files with ./filename for systems without . in PATH.
3631* IRIX portability fix.
3632* Use a single copy of the "libopts" code.
3633* autogen/libopts upgrade.
3634* configure.ac m4 quoting cleanup.
3635
3636ntpd
3637* Do not bind to IN6_IFF_ANYCAST addresses.
3638* Log the reason for exiting under Windows.
3639* Multicast fixes for Windows.
3640* Interpolation fixes for Windows.
3641* IPv4 and IPv6 Multicast fixes.
3642* Manycast solicitation fixes and general repairs.
3643* JJY refclock cleanup.
3644* NMEA refclock improvements.
3645* Oncore debug message cleanup.
3646* Palisade refclock now builds under Linux.
3647* Give RAWDCF more baud rates.
3648* Support Truetime Satellite clocks under Windows.
3649* Support Arbiter 1093C Satellite clocks under Windows.
3650* Make sure that the "filegen" configuration command defaults to "enable".
3651* Range-check the status codes (plus other cleanup) in the RIPE-NCC driver.
3652* Prohibit 'includefile' directive in remote configuration command.
3653* Fix 'nic' interface bindings.
3654* Fix the way we link with openssl if openssl is installed in the base
3655  system.
3656
3657ntp-keygen
3658* Fix -V coredump.
3659* OpenSSL version display cleanup.
3660
3661ntpdc
3662* Many counters should be treated as unsigned.
3663
3664ntpdate
3665* Do not ignore replies with equal receive and transmit timestamps.
3666
3667ntpq
3668* libntpq warning cleanup.
3669
3670ntpsnmpd
3671* Correct SNMP type for "precision" and "resolution".
3672* Update the MIB from the draft version to RFC-5907.
3673
3674sntp
3675* Display timezone offset when showing time for sntp in the local
3676  timezone.
3677* Pay proper attention to RATE KoD packets.
3678* Fix a miscalculation of the offset.
3679* Properly parse empty lines in the key file.
3680* Logging cleanup.
3681* Use tv_usec correctly in set_time().
3682* Documentation cleanup.
3683
3684---
3685NTP 4.2.6p2 (Harlan Stenn <stenn@ntp.org>, 2010/07/08)
3686
3687Focus: Bug fixes and portability improvements
3688
3689Severity: Medium
3690
3691This is a recommended upgrade.
3692
3693This release includes build infrastructure updates, code
3694clean-ups, minor bug fixes, fixes for a number of minor
3695ref-clock issues, improved KOD handling, OpenSSL related
3696updates and documentation revisions.
3697
3698Portability improvements in this release affect Irix, Linux,
3699Mac OS, Microsoft Windows, OpenBSD and QNX6
3700
3701New features / changes in this release:
3702
3703ntpd
3704* Range syntax for the trustedkey configuration directive
3705* Unified IPv4 and IPv6 restrict lists
3706
3707ntpdate
3708* Rate limiting and KOD handling
3709
3710ntpsnmpd
3711* default connection to net-snmpd via a unix-domain socket
3712* command-line 'socket name' option
3713
3714ntpq / ntpdc
3715* support for the "passwd ..." syntax
3716* key-type specific password prompts
3717
3718sntp
3719* MD5 authentication of an ntpd
3720* Broadcast and crypto
3721* OpenSSL support
3722
3723---
3724NTP 4.2.6p1 (Harlan Stenn <stenn@ntp.org>, 2010/04/09)
3725
3726Focus: Bug fixes, portability fixes, and documentation improvements
3727
3728Severity: Medium
3729
3730This is a recommended upgrade.
3731
3732---
3733NTP 4.2.6 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
3734
3735Focus: enhancements and bug fixes.
3736
3737---
3738NTP 4.2.4p8 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
3739
3740Focus: Security Fixes
3741
3742Severity: HIGH
3743
3744This release fixes the following high-severity vulnerability:
3745
3746* [Sec 1331] DoS with mode 7 packets - CVE-2009-3563.
3747
3748  See http://support.ntp.org/security for more information.
3749
3750  NTP mode 7 (MODE_PRIVATE) is used by the ntpdc query and control utility.
3751  In contrast, ntpq uses NTP mode 6 (MODE_CONTROL), while routine NTP time
3752  transfers use modes 1 through 5.  Upon receipt of an incorrect mode 7
3753  request or a mode 7 error response from an address which is not listed
3754  in a "restrict ... noquery" or "restrict ... ignore" statement, ntpd will
3755  reply with a mode 7 error response (and log a message).  In this case:
3756
3757	* If an attacker spoofs the source address of ntpd host A in a
3758	  mode 7 response packet sent to ntpd host B, both A and B will
3759	  continuously send each other error responses, for as long as
3760	  those packets get through.
3761
3762	* If an attacker spoofs an address of ntpd host A in a mode 7
3763	  response packet sent to ntpd host A, A will respond to itself
3764	  endlessly, consuming CPU and logging excessively.
3765
3766  Credit for finding this vulnerability goes to Robin Park and Dmitri
3767  Vinokurov of Alcatel-Lucent.
3768
3769THIS IS A STRONGLY RECOMMENDED UPGRADE.
3770
3771---
3772ntpd now syncs to refclocks right away.
3773
3774Backward-Incompatible changes:
3775
3776ntpd no longer accepts '-v name' or '-V name' to define internal variables.
3777Use '--var name' or '--dvar name' instead. (Bug 817)
3778
3779---
3780NTP 4.2.4p7 (Harlan Stenn <stenn@ntp.org>, 2009/05/04)
3781
3782Focus: Security and Bug Fixes
3783
3784Severity: HIGH
3785
3786This release fixes the following high-severity vulnerability:
3787
3788* [Sec 1151] Remote exploit if autokey is enabled.  CVE-2009-1252
3789
3790  See http://support.ntp.org/security for more information.
3791
3792  If autokey is enabled (if ntp.conf contains a "crypto pw whatever"
3793  line) then a carefully crafted packet sent to the machine will cause
3794  a buffer overflow and possible execution of injected code, running
3795  with the privileges of the ntpd process (often root).
3796
3797  Credit for finding this vulnerability goes to Chris Ries of CMU.
3798
3799This release fixes the following low-severity vulnerabilities:
3800
3801* [Sec 1144] limited (two byte) buffer overflow in ntpq.  CVE-2009-0159
3802  Credit for finding this vulnerability goes to Geoff Keating of Apple.
3803
3804* [Sec 1149] use SO_EXCLUSIVEADDRUSE on Windows
3805  Credit for finding this issue goes to Dave Hart.
3806
3807This release fixes a number of bugs and adds some improvements:
3808
3809* Improved logging
3810* Fix many compiler warnings
3811* Many fixes and improvements for Windows
3812* Adds support for AIX 6.1
3813* Resolves some issues under MacOS X and Solaris
3814
3815THIS IS A STRONGLY RECOMMENDED UPGRADE.
3816
3817---
3818NTP 4.2.4p6 (Harlan Stenn <stenn@ntp.org>, 2009/01/07)
3819
3820Focus: Security Fix
3821
3822Severity: Low
3823
3824This release fixes oCERT.org's CVE-2009-0021, a vulnerability affecting
3825the OpenSSL library relating to the incorrect checking of the return
3826value of EVP_VerifyFinal function.
3827
3828Credit for finding this issue goes to the Google Security Team for
3829finding the original issue with OpenSSL, and to ocert.org for finding
3830the problem in NTP and telling us about it.
3831
3832This is a recommended upgrade.
3833---
3834NTP 4.2.4p5 (Harlan Stenn <stenn@ntp.org>, 2008/08/17)
3835
3836Focus: Minor Bugfixes
3837
3838This release fixes a number of Windows-specific ntpd bugs and
3839platform-independent ntpdate bugs. A logging bugfix has been applied
3840to the ONCORE driver.
3841
3842The "dynamic" keyword and is now obsolete and deferred binding to local
3843interfaces is the new default. The minimum time restriction for the
3844interface update interval has been dropped.
3845
3846A number of minor build system and documentation fixes are included.
3847
3848This is a recommended upgrade for Windows.
3849
3850---
3851NTP 4.2.4p4 (Harlan Stenn <stenn@ntp.org>, 2007/09/10)
3852
3853Focus: Minor Bugfixes
3854
3855This release updates certain copyright information, fixes several display
3856bugs in ntpdc, avoids SIGIO interrupting malloc(), cleans up file descriptor
3857shutdown in the parse refclock driver, removes some lint from the code,
3858stops accessing certain buffers immediately after they were freed, fixes
3859a problem with non-command-line specification of -6, and allows the loopback
3860interface to share addresses with other interfaces.
3861
3862---
3863NTP 4.2.4p3 (Harlan Stenn <stenn@ntp.org>, 2007/06/29)
3864
3865Focus: Minor Bugfixes
3866
3867This release fixes a bug in Windows that made it difficult to
3868terminate ntpd under windows.
3869This is a recommended upgrade for Windows.
3870
3871---
3872NTP 4.2.4p2 (Harlan Stenn <stenn@ntp.org>, 2007/06/19)
3873
3874Focus: Minor Bugfixes
3875
3876This release fixes a multicast mode authentication problem,
3877an error in NTP packet handling on Windows that could lead to
3878ntpd crashing, and several other minor bugs. Handling of
3879multicast interfaces and logging configuration were improved.
3880The required versions of autogen and libopts were incremented.
3881This is a recommended upgrade for Windows and multicast users.
3882
3883---
3884NTP 4.2.4 (Harlan Stenn <stenn@ntp.org>, 2006/12/31)
3885
3886Focus: enhancements and bug fixes.
3887
3888Dynamic interface rescanning was added to simplify the use of ntpd in
3889conjunction with DHCP. GNU AutoGen is used for its command-line options
3890processing. Separate PPS devices are supported for PARSE refclocks, MD5
3891signatures are now provided for the release files. Drivers have been
3892added for some new ref-clocks and have been removed for some older
3893ref-clocks. This release also includes other improvements, documentation
3894and bug fixes.
3895
3896K&R C is no longer supported as of NTP-4.2.4. We are now aiming for ANSI
3897C support.
3898
3899---
3900NTP 4.2.0 (Harlan Stenn <stenn@ntp.org>, 2003/10/15)
3901
3902Focus: enhancements and bug fixes.
3903---
3904NTP 4.2.8p17 (Harlan Stenn <stenn@ntp.org>, 2023 Jun 06)
3905
3906Focus: Bug fixes
3907
3908Severity: HIGH (for people running 4.2.8p16)
3909
3910This release:
3911
3912- fixes 3 bugs, including a regression
3913- adds new unit tests
3914
3915Details below:
3916
3917* [Bug 3824] Spurious "ntpd: daemon failed to notify parent!" logged at
3918             event_sync.  Reported by Edward McGuire.  <hart@ntp.org>
3919* [Bug 3822] ntpd significantly delays first poll of servers specified by name.
3920             <hart@ntp.org>  Miroslav Lichvar identified regression in 4.2.8p16.
3921* [Bug 3821] 4.2.8p16 misreads hex authentication keys, won't interop with
3922             4.2.8p15 or earlier.  Reported by Matt Nordhoff, thanks to
3923	     Miroslav Lichvar and Matt for rapid testing and identifying the
3924	     problem. <hart@ntp.org>
3925* Add tests/libntp/digests.c to catch regressions reading keys file or with
3926  symmetric authentication digest output.
3927
3928---
3929NTP 4.2.8p16 (Harlan Stenn <stenn@ntp.org>, 2023 May 30)
3930
3931Focus: Security, Bug fixes
3932
3933Severity: LOW
3934
3935This release:
3936
3937- fixes 4 vulnerabilities (3 LOW and 1 None severity),
3938- fixes 46 bugs
3939- includes 15 general improvements
3940- adds support for OpenSSL-3.0
3941
3942Details below:
3943
3944* [Sec 3808] Assertion failure in ntpq on malformed RT-11 date <perlinger@ntp.org>
3945* [Sec 3807] praecis_parse() in the Palisade refclock driver has a
3946             hypothetical input buffer overflow. Reported by ... stenn@
3947* [Sec 3806] libntp/mstolfp.c needs bounds checking <perlinger@ntp.org>
3948  - solved numerically instead of using string manipulation
3949* [Sec 3767] An OOB KoD RATE value triggers an assertion when debug is enabled.
3950             <stenn@ntp.org>
3951* [Bug 3819] Updated libopts/Makefile.am was missing NTP_HARD_* values. <stenn@>
3952* [Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
3953* [Bug 3814] First poll delay of new or cleared associations miscalculated.
3954             <hart@ntp.org>
3955* [Bug 3802] ntp-keygen -I default identity modulus bits too small for
3956             OpenSSL 3.  Reported by rmsh1216@163.com <hart@ntp.org>
3957* [Bug 3801] gpsdjson refclock gps_open() device name mishandled. <hart@ntp.org>
3958* [Bug 3800] libopts-42.1.17 does not compile with Microsoft C. <hart@ntp.org>
3959* [Bug 3799] Enable libopts noreturn compiler advice for MSC. <hart@ntp.org>
3960* [Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when
3961             disconnected, breaking ntpq and ntpdc. <hart@ntp.org>
3962* [Bug 3795] pollskewlist documentation uses | when it shouldn't.
3963  - ntp.conf manual page and miscopt.html corrections. <hart@ntp.org>
3964* [Bug 3793] Wrong variable type passed to record_raw_stats(). <hart@ntp.org>
3965  - Report and patch by Yuezhen LUAN <wei6410@sina.com>.
3966* [Bug 3786] Timer starvation on high-load Windows ntpd. <hart@ntp.org>
3967* [Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded.
3968             <hart@ntp.org>
3969* [Bug 3781] log "Unable to listen for broadcasts" for IPv4 <hart@ntp.org>
3970* [Bug 3774] mode 6 packets corrupted in rawstats file <hart@ntp.org>
3971  - Reported by Edward McGuire, fix identified by <wei6410@sina.com>.
3972* [Bug 3758] Provide a 'device' config statement for refclocks <perlinger@ntp.org>
3973* [Bug 3757] Improve handling of Linux-PPS in NTPD <perlinger@ntp.org>
3974* [Bug 3741] 4.2.8p15 can't build with glibc 2.34 <perlinger@ntp.org>
3975* [Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
3976             Philippe De Muyter <phdm@macqel.be>
3977* [Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows <perlinger@ntp.org>
3978  - openssl applink needed again for openSSL-1.1.1
3979* [Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
3980             Reported by Brian Utterback, broken in 2010 by <hart@ntp.org>
3981* [Bug 3699] Problems handling drift file and restoring previous drifts <perlinger@ntp.org>
3982  - command line options override config statements where applicable
3983  - make initial frequency settings idempotent and reversible
3984  - make sure kernel PLL gets a recovered drift componsation
3985* [Bug 3695] Fix memory leak with ntpq on Windows Server 2019 <perlinger@ntp.org>
3986* [Bug 3694] NMEA refclock seems to unnecessarily require location in messages
3987  - misleading title; essentially a request to ignore the receiver status.
3988    Added a mode bit for this. <perlinger@ntp.org>
3989* [Bug 3693] Improvement of error handling key lengths <perlinger@ntp.org>
3990  - original patch by Richard Schmidt, with mods & unit test fixes
3991* [Bug 3692] /dev/gpsN requirement prevents KPPS <perlinger@ntp.org>
3992  - implement/wrap 'realpath()' to resolve symlinks in device names
3993* [Bug 3691] Buffer Overflow reading GPSD output
3994  - original patch by matt<ntpbr@mattcorallo.com>
3995  - increased max PDU size to 4k to avoid truncation
3996* [Bug 3690] newline in ntp clock variable (parse) <perlinger@ntp.org>
3997  - patch by Frank Kardel
3998* [Bug 3689] Extension for MD5, SHA-1 and other keys <perlinger@ntp.org>
3999  - ntp{q,dc} now use the same password processing as ntpd does in the key
4000    file, so having a binary secret >= 11 bytes is possible for all keys.
4001    (This is a different approach to the problem than suggested)
4002* [Bug 3688] GCC 10 build errors in testsuite <perlinger@ntp.org>
4003* [Bug 3687] ntp_crypto_rand RNG status not known <perlinger@ntp.org>
4004  - patch by Gerry Garvey
4005* [Bug 3682] Fixes for warnings when compiled without OpenSSL <perlinger@ntp.org>
4006  - original patch by Gerry Garvey
4007* [Bug 3677] additional peer events not decoded in associations listing <perlinger@ntp.org>
4008  - original patch by Gerry Garvey
4009* [Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
4010  - applied patches by Gerry Garvey
4011* [Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
4012* [Bug 3674] ntpq command 'execute only' using '~' prefix <perlinger@ntp.org>
4013  - idea+patch by Gerry Garvey
4014* [Bug 3672] fix biased selection in median cut <perlinger@ntp.org>
4015* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
4016  - follow-up: fix inverted sense in check, reset shortfall counter
4017* [Bug 3660] Revert 4.2.8p15 change to manycast. <hart@ntp.org>
4018* [Bug 3640] document "discard monitor" and fix the code. <hart@ntp.org>
4019  - fixed bug identified by Edward McGuire <perlinger@ntp.org>
4020* [Bug 3626] (SNTP) UTC offset calculation needs dst flag <perlinger@ntp.org>
4021  - applied patch by Gerry Garvey
4022* [Bug 3432] refclocks that 'write()' should check the result <perlinger@ntp.org>
4023  - backport from -dev, plus some more work on warnings for unchecked results
4024* [Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
4025             Reported by Israel G. Lugo. <hart@ntp.org>
4026* [Bug 3103] libopts zsave_warn format string too few arguments <bkorb@gnu.org>
4027* [Bug 2990] multicastclient incorrectly causes bind to broadcast address.
4028             Integrated patch from Brian Utterback. <hart@ntp.org>
4029* [Bug 2525] Turn on automake subdir-objects across the project. <hart@ntp.org>
4030* [Bug 2410] syslog an error message on panic exceeded. <brian.utterback@oracle.com>
4031* Use correct rounding in mstolfp(). perlinger/hart
4032* M_ADDF should use u_int32.  <hart@ntp.org>
4033* Only define tv_fmt_libbuf() if we will use it. <stenn@ntp.org>
4034* Use recv_buffer instead of the longer recv_space.X_recv_buffer. hart/stenn
4035* Make sure the value returned by refid_str() prints cleanly. <stenn@ntp.org>
4036* If DEBUG is enabled, the startup banner now says that debug assertions
4037  are in force and that ntpd will abort if any are violated. <stenn@ntp.org>
4038* syslog valid incoming KoDs.  <stenn@ntp.org>
4039* Rename a poorly-named variable.  <stenn@ntp.org>
4040* Disable "embedded NUL in string" messages in libopts, when we can. <stenn@>
4041* Use https in the AC_INIT URLs in configure.ac.  <stenn@ntp.org>
4042* Implement NTP_FUNC_REALPATH.  <stenn@ntp.org>
4043* Lose a gmake construct in ntpd/Makefile.am.  <stenn@ntp.org>
4044* upgrade to: autogen-5.18.16
4045* upgrade to: libopts-42.1.17
4046* upgrade to: autoconf-2.71
4047* upgrade to: automake-1.16.15
4048* Upgrade to libevent-2.1.12-stable <stenn@ntp.org>
4049* Support OpenSSL-3.0
4050
4051---
4052NTP 4.2.8p15 (Harlan Stenn <stenn@ntp.org>, 2020 Jun 23)
4053
4054Focus: Security, Bug fixes
4055
4056Severity: MEDIUM
4057
4058This release fixes one vulnerability: Associations that use CMAC
4059authentication between ntpd from versions 4.2.8p11/4.3.97 and
40604.2.8p14/4.3.100 will leak a small amount of memory for each packet.
4061Eventually, ntpd will run out of memory and abort.
4062
4063It also fixes 13 other bugs.
4064
4065* [Sec 3661] memory leak with AES128CMAC keys <perlinger@ntp.org>
4066* [Bug 3670] Regression from bad merger between 3592 and 3596 <perlinger@>
4067  - Thanks to Sylar Tao
4068* [Bug 3667] decodenetnum fails with numeric port <perlinger@ntp.org>
4069  - rewrite 'decodenetnum()' in terms of inet_pton
4070* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
4071  - limit number of receive buffers, with an iron reserve for refclocks
4072* [Bug 3664] Enable openSSL CMAC support on Windows <burnicki@ntp.org>
4073* [Bug 3662] Fix build errors on Windows with VS2008 <burnicki@ntp.org>
4074* [Bug 3660] Manycast orphan mode startup discovery problem. <stenn@ntp.org>
4075  - integrated patch from Charles Claggett
4076* [Bug 3659] Move definition of psl[] from ntp_config.h to
4077  ntp_config.h <perlinger@ntp.org>
4078* [Bug 3657] Wrong "Autokey group mismatch" debug message <perlinger@ntp.org>
4079* [Bug 3655] ntpdc memstats hash counts <perlinger@ntp.org>
4080  - fix by Gerry garvey
4081* [Bug 3653] Refclock jitter RMS calculation <perlinger@ntp.org>
4082  - thanks to Gerry Garvey
4083* [Bug 3646] Avoid sync with unsync orphan <perlinger@ntp.org>
4084  - patch by Gerry Garvey
4085* [Bug 3644] Unsynchronized server [...] selected as candidate <perlinger@ntp.org>
4086* [Bug 3639] refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply. <abe@ntp.org>
4087  - applied patch by Takao Abe
4088
4089---
4090NTP 4.2.8p14 (Harlan Stenn <stenn@ntp.org>, 2020 Mar 03)
4091
4092Focus: Security, Bug fixes, enhancements.
4093
4094Severity: MEDIUM
4095
4096This release fixes three vulnerabilities: a bug that causes causes an ntpd
4097instance that is explicitly configured to override the default and allow
4098ntpdc (mode 7) connections to be made to a server to read some uninitialized
4099memory; fixes the case where an unmonitored ntpd using an unauthenticated
4100association to its servers may be susceptible to a forged packet DoS attack;
4101and fixes an attack against a client instance that uses a single
4102unauthenticated time source.  It also fixes 46 other bugs and addresses
41034 other issues.
4104
4105* [Sec 3610] process_control() should bail earlier on short packets. stenn@
4106  - Reported by Philippe Antoine
4107* [Sec 3596] Highly predictable timestamp attack. <stenn@ntp.org>
4108  - Reported by Miroslav Lichvar
4109* [Sec 3592] DoS attack on client ntpd <perlinger@ntp.org>
4110  - Reported by Miroslav Lichvar
4111* [Bug 3637] Emit the version of ntpd in saveconfig.  stenn@
4112* [Bug 3636] NMEA: combine time/date from multiple sentences <perlinger@ntp.org>
4113* [Bug 3635] Make leapsecond file hash check optional <perlinger@ntp.org>
4114* [Bug 3634] Typo in discipline.html, reported by Jason Harrison.  stenn@
4115* [Bug 3628] raw DCF decoding - improve robustness with Zeller's congruence
4116  - implement Zeller's congruence in libparse and libntp <perlinger@ntp.org>
4117* [Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap <perlinger@ntp.org>
4118  - integrated patch by Cy Schubert
4119* [Bug 3620] memory leak in ntpq sysinfo <perlinger@ntp.org>
4120  - applied patch by Gerry Garvey
4121* [Bug 3619] Honour drefid setting in cooked mode and sysinfo <perlinger@ntp.org>
4122  - applied patch by Gerry Garvey
4123* [Bug 3617] Add support for ACE III and Copernicus II receivers <perlinger@ntp.org>
4124  - integrated patch by Richard Steedman
4125* [Bug 3615] accelerate refclock startup <perlinger@ntp.org>
4126* [Bug 3613] Propagate noselect to mobilized pool servers <stenn@ntp.org>
4127  - Reported by Martin Burnicki
4128* [Bug 3612] Use-of-uninitialized-value in receive function <perlinger@ntp.org>
4129  - Reported by Philippe Antoine
4130* [Bug 3611] NMEA time interpreted incorrectly <perlinger@ntp.org>
4131  - officially document new "trust date" mode bit for NMEA driver
4132  - restore the (previously undocumented) "trust date" feature lost with [bug 3577]
4133* [Bug 3609] Fixing wrong falseticker in case of non-statistic jitter <perlinger@ntp.org>
4134  - mostly based on a patch by Michael Haardt, implementing 'fudge minjitter'
4135* [Bug 3608] libparse fails to compile on S11.4SRU13 and later <perlinger@ntp.org>
4136  - removed ffs() and fls() prototypes as per Brian Utterback
4137* [Bug 3604] Wrong param byte order passing into record_raw_stats() in
4138	ntp_io.c <perlinger@ntp.org>
4139  - fixed byte and paramter order as suggested by wei6410@sina.com
4140* [Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no <perlinger@ntp.org>
4141* [Bug 3599] Build fails on linux-m68k due to alignment issues <perlinger@ntp.org>
4142  - added padding as suggested by John Paul Adrian Glaubitz
4143* [Bug 3594] ntpd discards messages coming through nmead <perlinger@ntp.org>
4144* [Bug 3593] ntpd discards silently nmea messages after the 5th string <perlinger@ntp.org>
4145* [Bug 3590] Update refclock_oncore.c to the new GPS date API <perlinger@ntp.org>
4146* [Bug 3585] Unity tests mix buffered and unbuffered output <perlinger@ntp.org>
4147  - stdout+stderr are set to line buffered during test setup now
4148* [Bug 3583] synchronization error <perlinger@ntp.org>
4149  - set clock to base date if system time is before that limit
4150* [Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled <perlinger@ntp.org>
4151* [Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc) <perlinger@ntp.org>
4152  - Reported by Paulo Neves
4153* [Bug 3577] Update refclock_zyfer.c to the new GPS date API <perlinger@ntp.org>
4154  - also updates for refclock_nmea.c and refclock_jupiter.c
4155* [Bug 3576] New GPS date function API <perlinger@ntp.org>
4156* [Bug 3573] nptdate: missleading error message <perlinger@ntp.org>
4157* [Bug 3570] NMEA driver docs: talker ID not mentioned, typo <perlinger@ntp.org>
4158* [Bug 3569] cleanup MOD_NANO/STA_NANO handling for 'ntpadjtimex()' <perlinger@ntp.org>
4159  - sidekick: service port resolution in 'ntpdate'
4160* [Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH <perlinger@ntp.org>
4161  - applied patch by Douglas Royds
4162* [Bug 3542] ntpdc monlist parameters cannot be set <perlinger@ntp.org>
4163* [Bug 3533] ntpdc peer_info ipv6 issues <perlinger@ntp.org>
4164  - applied patch by Gerry Garvey
4165* [Bug 3531] make check: test-decodenetnum fails <perlinger@ntp.org>
4166  - try to harden 'decodenetnum()' against 'getaddrinfo()' errors
4167  - fix wrong cond-compile tests in unit tests
4168* [Bug 3517] Reducing build noise <perlinger@ntp.org>
4169* [Bug 3516] Require tooling from this decade <perlinger@ntp.org>
4170  - patch by Philipp Prindeville
4171* [Bug 3515] Refactor ntpdmain() dispatcher loop and group common code <perlinger@ntp.org>
4172  - patch by Philipp Prindeville
4173* [Bug 3511] Get rid of AC_LANG_SOURCE() warnings <perlinger@ntp.org>
4174  - patch by Philipp Prindeville
4175* [Bug 3510] Flatten out the #ifdef nesting in ntpdmain() <perlinger@ntp.org>
4176  - partial application of patch by Philipp Prindeville
4177* [Bug 3491] Signed values of LFP datatypes should always display a sign
4178  - applied patch by Gerry Garvey & fixed unit tests <perlinger@ntp.org>
4179* [Bug 3490] Patch to support Trimble Resolution Receivers <perlinger@ntp.org>
4180  - applied (modified) patch by Richard Steedman
4181* [Bug 3473] RefID of refclocks should always be text format <perlinger@ntp.org>
4182  - applied patch by Gerry Garvey (with minor formatting changes)
4183* [Bug 3132] Building 4.2.8p8 with disabled local libopts fails <perlinger@ntp.org>
4184  - applied patch by Miroslav Lichvar
4185* [Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
4186  <perlinger@ntp.org>
4187* [Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user
4188             is specified with -u <perlinger@ntp.org>
4189  - monitor daemon child startup & propagate exit codes
4190* [Bug 1433] runtime check whether the kernel really supports capabilities
4191  - (modified) patch by Kurt Roeckx <perlinger@ntp.org>
4192* Clean up sntp/networking.c:sendpkt() error message.  <stenn@ntp.org>
4193* Provide more detail on unrecognized config file parser tokens. <stenn@ntp.org>
4194* Startup log improvements. <stenn@ntp.org>
4195* Update the copyright year.
4196
4197---
4198NTP 4.2.8p13 (Harlan Stenn <stenn@ntp.org>, 2019 Mar 07)
4199
4200Focus: Security, Bug fixes, enhancements.
4201
4202Severity: MEDIUM
4203
4204This release fixes a bug that allows an attacker with access to an
4205explicitly trusted source to send a crafted malicious mode 6 (ntpq)
4206packet that can trigger a NULL pointer dereference, crashing ntpd.
4207It also provides 17 other bugfixes and 1 other improvement:
4208
4209* [Sec 3565] Crafted null dereference attack in authenticated
4210	     mode 6 packet <perlinger@ntp.org>
4211  - reported by Magnus Stubman
4212* [Bug 3560] Fix build when HAVE_DROPROOT is not defined <perlinger@ntp.org>
4213  - applied patch by Ian Lepore
4214* [Bug 3558] Crash and integer size bug <perlinger@ntp.org>
4215  - isolate and fix linux/windows specific code issue
4216* [Bug 3556] ntp_loopfilter.c snprintf compilation warnings <perlinger@ntp.org>
4217  - provide better function for incremental string formatting
4218* [Bug 3555] Tidy up print alignment of debug output from ntpdate <perlinger@ntp.org>
4219  - applied patch by Gerry Garvey
4220* [Bug 3554] config revoke stores incorrect value <perlinger@ntp.org>
4221  - original finding by Gerry Garvey, additional cleanup needed
4222* [Bug 3549] Spurious initgroups() error message <perlinger@ntp.org>
4223  - patch by Christous Zoulas
4224* [Bug 3548] Signature not verified on windows system <perlinger@ntp.org>
4225  - finding by Chen Jiabin, plus another one by me
4226* [Bug 3541] patch to fix STA_NANO struct timex units <perlinger@ntp.org>
4227  - applied patch by Maciej Szmigiero
4228* [Bug 3540] Cannot set minsane to 0 anymore <perlinger@ntp.org>
4229  - applied patch by Andre Charbonneau
4230* [Bug 3539] work_fork build fails when droproot is not supported <perlinger@ntp.org>
4231  - applied patch by Baruch Siach
4232* [Bug 3538] Build fails for no-MMU targets <perlinger@ntp.org>
4233  - applied patch by Baruch Siach
4234* [Bug 3535] libparse won't handle GPS week rollover <perlinger@ntp.org>
4235  - refactored handling of GPS era based on 'tos basedate' for
4236    parse (TSIP) and JUPITER clocks
4237* [Bug 3529] Build failures on Mac OS X 10.13 (High Sierra) <perlinger@ntp.org>
4238  - patch by Daniel J. Luke; this does not fix a potential linker
4239    regression issue on MacOS.
4240* [Bug 3527 - Backward Incompatible] mode7 clockinfo fudgeval2 packet
4241  anomaly <perlinger@ntp.org>, reported by GGarvey.
4242  - --enable-bug3527-fix support by HStenn
4243* [Bug 3526] Incorrect poll interval in packet <perlinger@ntp.org>
4244  - applied patch by Gerry Garvey
4245* [Bug 3471] Check for openssl/[ch]mac.h.  <perlinger@ntp.org>
4246  - added missing check, reported by Reinhard Max <perlinger@ntp.org>
4247* [Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
4248  - this is a variant of [bug 3558] and should be fixed with it
4249* Implement 'configure --disable-signalled-io'
4250
4251--
4252NTP 4.2.8p12 (Harlan Stenn <stenn@ntp.org>, 2018/14/09)
4253
4254Focus: Security, Bug fixes, enhancements.
4255
4256Severity: MEDIUM
4257
4258This release fixes a "hole" in the noepeer capability introduced to ntpd
4259in ntp-4.2.8p11, and a buffer overflow in the openhost() function used by
4260ntpq and ntpdc.  It also provides 26 other bugfixes, and 4 other improvements:
4261
4262* [Sec 3505] Buffer overflow in the openhost() call of ntpq and ntpdc.
4263
4264* [Sec 3012] Fix a hole in the new "noepeer" processing.
4265
4266* Bug Fixes:
4267 [Bug 3521] Fix a logic bug in the INVALIDNAK checks.  <stenn@ntp.org>
4268 [Bug 3509] Add support for running as non-root on FreeBSD, Darwin,
4269            other TrustedBSD platforms
4270 - applied patch by Ian Lepore <perlinger@ntp.org>
4271 [Bug 3506] Service Control Manager interacts poorly with NTPD <perlinger@ntp.org>
4272 - changed interaction with SCM to signal pending startup
4273 [Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags() <perlinger@ntp.org>
4274 - applied patch by Gerry Garvey
4275 [Bug 3485] Undefined sockaddr used in error messages in ntp_config.c <perlinger@ntp.org>
4276 - applied patch by Gerry Garvey
4277 [Bug 3484] ntpq response from ntpd is incorrect when REFID is null <perlinger@ntp.org>
4278 - rework of ntpq 'nextvar()' key/value parsing
4279 [Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c) <perlinger@ntp.org>
4280 - applied patch by Gerry Garvey (with mods)
4281 [Bug 3480] Refclock sample filter not cleared on clock STEP <perlinger@ntp.org>
4282 - applied patch by Gerry Garvey
4283 [Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq <perlinger@ntp.org>
4284 - applied patch by Gerry Garvey (with mods)
4285 [Bug 3476]ctl_putstr() sends empty unquoted string [...] <perlinger@ntp.org>
4286 - applied patch by Gerry Garvey (with mods); not sure if that's bug or feature, though
4287 [Bug 3475] modify prettydate() to suppress output of zero time <perlinger@ntp.org>
4288 - applied patch by Gerry Garvey
4289 [Bug 3474] Missing pmode in mode7 peer info response <perlinger@ntp.org>
4290 - applied patch by Gerry Garvey
4291 [Bug 3471] Check for openssl/[ch]mac.h.  HStenn.
4292 - add #define ENABLE_CMAC support in configure.  HStenn.
4293 [Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL <perlinger@ntp.org>
4294 [Bug 3469] Incomplete string compare [...] in is_refclk_addr <perlinger@ntp.org>
4295 - patch by Stephen Friedl
4296 [Bug 3467] Potential memory fault in ntpq [...] <perlinger@ntp.org>
4297 - fixed IO redirection and CTRL-C handling in ntq and ntpdc
4298 [Bug 3465] Default TTL values cannot be used <perlinger@ntp.org>
4299 [Bug 3461] refclock_shm.c: clear error status on clock recovery <perlinger@ntp.org>
4300 - initial patch by Hal Murray; also fixed refclock_report() trouble
4301 [Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph.  <stenn@ntp.org>
4302 [Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
4303 - According to Brooks Davis, there was only one location <perlinger@ntp.org>
4304 [Bug 3449] ntpq - display "loop" instead of refid [...] <perlinger@ntp.org>
4305 - applied patch by Gerry Garvey
4306 [Bug 3445] Symmetric peer won't sync on startup <perlinger@ntp.org>
4307 - applied patch by Gerry Garvey
4308 [Bug 3442] Fixes for ntpdate as suggested by Gerry Garvey,
4309 with modifications
4310 New macro REFID_ISTEXT() which is also used in ntpd/ntp_control.c.
4311 [Bug 3434] ntpd clears STA_UNSYNC on start <perlinger@ntp.org>
4312 - applied patch by Miroslav Lichvar
4313 [Bug 3426] ntpdate.html -t default is 2 seconds.  Leonid Evdokimov.
4314 [Bug 3121] Drop root privileges for the forked DNS worker <perlinger@ntp.org>
4315 - integrated patch by  Reinhard Max
4316 [Bug 2821] minor build issues <perlinger@ntp.org>
4317 - applied patches by Christos Zoulas, including real bug fixes
4318 html/authopt.html: cleanup, from <stenn@ntp.org>
4319 ntpd/ntpd.c: DROPROOT cleanup.  <stenn@ntp.org>
4320 Symmetric key range is 1-65535.  Update docs.   <stenn@ntp.org>
4321
4322--
4323NTP 4.2.8p11 (Harlan Stenn <stenn@ntp.org>, 2018/02/27)
4324
4325Focus: Security, Bug fixes, enhancements.
4326
4327Severity: MEDIUM
4328
4329This release fixes 2 low-/medium-, 1 informational/medum-, and 2 low-severity
4330vulnerabilities in ntpd, one medium-severity vulernability in ntpq, and
4331provides 65 other non-security fixes and improvements:
4332
4333* NTP Bug 3454: Unauthenticated packet can reset authenticated interleaved
4334	association (LOW/MED)
4335   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
4336   References: Sec 3454 / CVE-2018-7185 / VU#961909
4337   Affects: ntp-4.2.6, up to but not including ntp-4.2.8p11.
4338   CVSS2: MED 4.3 (AV:N/AC:M/Au:N/C:N/I:N/A:P) This could score between
4339	2.9 and 6.8.
4340   CVSS3: LOW 3.1 CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L This could
4341	score between 2.6 and 3.1
4342   Summary:
4343	The NTP Protocol allows for both non-authenticated and
4344	authenticated associations, in client/server, symmetric (peer),
4345	and several broadcast modes. In addition to the basic NTP
4346	operational modes, symmetric mode and broadcast servers can
4347	support an interleaved mode of operation. In ntp-4.2.8p4 a bug
4348	was inadvertently introduced into the protocol engine that
4349	allows a non-authenticated zero-origin (reset) packet to reset
4350	an authenticated interleaved peer association. If an attacker
4351	can send a packet with a zero-origin timestamp and the source
4352	IP address of the "other side" of an interleaved association,
4353	the 'victim' ntpd will reset its association. The attacker must
4354	continue sending these packets in order to maintain the
4355	disruption of the association. In ntp-4.0.0 thru ntp-4.2.8p6,
4356	interleave mode could be entered dynamically. As of ntp-4.2.8p7,
4357	interleaved mode must be explicitly configured/enabled.
4358   Mitigation:
4359	Implement BCP-38.
4360	Upgrade to 4.2.8p11, or later, from the NTP Project Download Page
4361	    or the NTP Public Services Project Download Page.
4362	If you are unable to upgrade to 4.2.8p11 or later and have
4363	    'peer HOST xleave' lines in your ntp.conf file, remove the
4364	    'xleave' option.
4365	Have enough sources of time.
4366	Properly monitor your ntpd instances.
4367	If ntpd stops running, auto-restart it without -g .
4368   Credit:
4369   	This weakness was discovered by Miroslav Lichvar of Red Hat.
4370
4371* NTP Bug 3453: Interleaved symmetric mode cannot recover from bad
4372	state (LOW/MED)
4373   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
4374   References: Sec 3453 / CVE-2018-7184 / VU#961909
4375   Affects: ntpd in ntp-4.2.8p4, up to but not including ntp-4.2.8p11.
4376   CVSS2: MED 4.3 (AV:N/AC:M/Au:N/C:P/I:N/A:N)
4377	Could score between 2.9 and 6.8.
4378   CVSS3: LOW 3.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
4379	Could score between 2.6 and 6.0.
4380   Summary:
4381   	The fix for NtpBug2952 was incomplete, and while it fixed one
4382	problem it created another.  Specifically, it drops bad packets
4383	before updating the "received" timestamp.  This means a
4384	third-party can inject a packet with a zero-origin timestamp,
4385	meaning the sender wants to reset the association, and the
4386	transmit timestamp in this bogus packet will be saved as the
4387	most recent "received" timestamp.  The real remote peer does
4388	not know this value and this will disrupt the association until
4389	the association resets.
4390   Mitigation:
4391	Implement BCP-38.
4392	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
4393	    or the NTP Public Services Project Download Page.
4394	Use authentication with 'peer' mode.
4395	Have enough sources of time.
4396	Properly monitor your ntpd instances.
4397	If ntpd stops running, auto-restart it without -g .
4398   Credit:
4399   	This weakness was discovered by Miroslav Lichvar of Red Hat.
4400
4401* NTP Bug 3415: Provide a way to prevent authenticated symmetric passive
4402	peering (LOW)
4403   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
4404   References: Sec 3415 / CVE-2018-7170 / VU#961909
4405   	       Sec 3012 / CVE-2016-1549 / VU#718152
4406   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4407   	4.3.0 up to, but not including 4.3.92.  Resolved in 4.2.8p11.
4408   CVSS2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
4409   CVSS3: LOW 3.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
4410   Summary:
4411	ntpd can be vulnerable to Sybil attacks.  If a system is set up to
4412	use a trustedkey and if one is not using the feature introduced in
4413	ntp-4.2.8p6 allowing an optional 4th field in the ntp.keys file to
4414	specify which IPs can serve time, a malicious authenticated peer
4415	-- i.e. one where the attacker knows the private symmetric key --
4416	can create arbitrarily-many ephemeral associations in order to win
4417	the clock selection of ntpd and modify a victim's clock.  Three
4418	additional protections are offered in ntp-4.2.8p11.  One is the
4419	new 'noepeer' directive, which disables symmetric passive
4420	ephemeral peering. Another is the new 'ippeerlimit' directive,
4421	which limits the number of peers that can be created from an IP.
4422	The third extends the functionality of the 4th field in the
4423	ntp.keys file to include specifying a subnet range.
4424   Mitigation:
4425	Implement BCP-38.
4426	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
4427	    or the NTP Public Services Project Download Page.
4428	Use the 'noepeer' directive to prohibit symmetric passive
4429	    ephemeral associations.
4430	Use the 'ippeerlimit' directive to limit the number of peers
4431	    that can be created from an IP.
4432	Use the 4th argument in the ntp.keys file to limit the IPs and
4433	    subnets that can be time servers.
4434	Have enough sources of time.
4435	Properly monitor your ntpd instances.
4436	If ntpd stops running, auto-restart it without -g .
4437   Credit:
4438	This weakness was reported as Bug 3012 by Matthew Van Gundy of
4439	Cisco ASIG, and separately by Stefan Moser as Bug 3415.
4440
4441* ntpq Bug 3414: decodearr() can write beyond its 'buf' limits (Medium)
4442   Date Resolved: 27 Feb 2018
4443   References: Sec 3414 / CVE-2018-7183 / VU#961909
4444   Affects: ntpq in ntp-4.2.8p6, up to but not including ntp-4.2.8p11.
4445   CVSS2: MED 6.8 (AV:N/AC:M/Au:N/C:P/I:P/A:P)
4446   CVSS3: MED 5.0 CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L
4447   Summary:
4448   	ntpq is a monitoring and control program for ntpd.  decodearr()
4449	is an internal function of ntpq that is used to -- wait for it --
4450	decode an array in a response string when formatted data is being
4451	displayed.  This is a problem in affected versions of ntpq if a
4452	maliciously-altered ntpd returns an array result that will trip this
4453	bug, or if a bad actor is able to read an ntpq request on its way to
4454	a remote ntpd server and forge and send a response before the remote
4455	ntpd sends its response.  It's potentially possible that the
4456	malicious data could become injectable/executable code.
4457   Mitigation:
4458	Implement BCP-38.
4459	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
4460	    or the NTP Public Services Project Download Page.
4461   Credit:
4462	This weakness was discovered by Michael Macnair of Thales e-Security.
4463
4464* NTP Bug 3412: ctl_getitem(): buffer read overrun leads to undefined
4465	behavior and information leak (Info/Medium)
4466   Date Resolved: 27 Feb 2018
4467   References: Sec 3412 / CVE-2018-7182 / VU#961909
4468   Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p11.
4469   CVSS2: INFO 0.0 - MED 5.0 (AV:N/AC:L/Au:N/C:P/I:N/A:N) 0.0 if C:N
4470   CVSS3: NONE 0.0 - MED 5.3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4471	0.0 if C:N
4472   Summary:
4473	ctl_getitem()  is used by ntpd to process incoming mode 6 packets.
4474	A malicious mode 6 packet can be sent to an ntpd instance, and
4475	if the ntpd instance is from 4.2.8p6 thru 4.2.8p10, that will
4476	cause ctl_getitem() to read past the end of its buffer.
4477   Mitigation:
4478	Implement BCP-38.
4479	Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
4480	    or the NTP Public Services Project Download Page.
4481	Have enough sources of time.
4482	Properly monitor your ntpd instances.
4483	If ntpd stops running, auto-restart it without -g .
4484   Credit:
4485   	This weakness was discovered by Yihan Lian of Qihoo 360.
4486
4487* NTP Bug 3012: Sybil vulnerability: ephemeral association attack
4488   Also see Bug 3415, above.
4489   Date Mitigated: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
4490   Date Resolved: Stable (4.2.8p11) 27 Feb 2018
4491   References: Sec 3012 / CVE-2016-1549 / VU#718152
4492   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4493	4.3.0 up to, but not including 4.3.92.  Resolved in 4.2.8p11.
4494   CVSS2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
4495   CVSS3: MED 5.3 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
4496   Summary:
4497	ntpd can be vulnerable to Sybil attacks.  If a system is set up
4498	to use a trustedkey and if one is not using the feature
4499	introduced in ntp-4.2.8p6 allowing an optional 4th field in the
4500	ntp.keys file to specify which IPs can serve time, a malicious
4501	authenticated peer -- i.e. one where the attacker knows the
4502	private symmetric key -- can create arbitrarily-many ephemeral
4503	associations in order to win the clock selection of ntpd and
4504	modify a victim's clock.  Two additional protections are
4505	offered in ntp-4.2.8p11.  One is the 'noepeer' directive, which
4506	disables symmetric passive ephemeral peering. The other extends
4507	the functionality of the 4th field in the ntp.keys file to
4508	include specifying a subnet range.
4509   Mitigation:
4510	Implement BCP-38.
4511	Upgrade to 4.2.8p11, or later, from the NTP Project Download Page or
4512	    the NTP Public Services Project Download Page.
4513	Use the 'noepeer' directive to prohibit symmetric passive
4514	    ephemeral associations.
4515	Use the 'ippeerlimit' directive to limit the number of peer
4516	    associations from an IP.
4517	Use the 4th argument in the ntp.keys file to limit the IPs
4518	    and subnets that can be time servers.
4519	Properly monitor your ntpd instances.
4520   Credit:
4521   	This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
4522
4523* Bug fixes:
4524 [Bug 3457] OpenSSL FIPS mode regression <perlinger@ntp.org>
4525 [Bug 3455] ntpd doesn't use scope id when binding multicast <perlinger@ntp.org>
4526 - applied patch by Sean Haugh
4527 [Bug 3452] PARSE driver prints uninitialized memory. <perlinger@ntp.org>
4528 [Bug 3450] Dubious error messages from plausibility checks in get_systime()
4529 - removed error log caused by rounding/slew, ensured postcondition <perlinger@ntp.org>
4530 [Bug 3447] AES-128-CMAC (fixes) <perlinger@ntp.org>
4531 - refactoring the MAC code, too
4532 [Bug 3441] Validate the assumption that AF_UNSPEC is 0.  stenn@ntp.org
4533 [Bug 3439] When running multiple commands / hosts in ntpq... <perlinger@ntp.org>
4534 - applied patch by ggarvey
4535 [Bug 3438] Negative values and values > 999 days in... <perlinger@ntp.org>
4536 - applied patch by ggarvey (with minor mods)
4537 [Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
4538 - applied patch (with mods) by Miroslav Lichvar <perlinger@ntp.org>
4539 [Bug 3435] anchor NTP era alignment <perlinger@ntp.org>
4540 [Bug 3433] sntp crashes when run with -a.  <stenn@ntp.org>
4541 [Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
4542 - fixed several issues with hash algos in ntpd, sntp, ntpq,
4543   ntpdc and the test suites <perlinger@ntp.org>
4544 [Bug 3424] Trimble Thunderbolt 1024 week millenium bug <perlinger@ntp.org>
4545 - initial patch by Daniel Pouzzner
4546 [Bug 3423] QNX adjtime() implementation error checking is
4547 wrong <perlinger@ntp.org>
4548 [Bug 3417] ntpq ifstats packet counters can be negative
4549 made IFSTATS counter quantities unsigned <perlinger@ntp.org>
4550 [Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
4551 - raised receive buffer size to 1200 <perlinger@ntp.org>
4552 [Bug 3408] refclock_jjy.c: Avoid a wrong report of the coverity static
4553 analysis tool. <abe@ntp.org>
4554 [Bug 3405] update-leap.in: general cleanup, HTTPS support.  Paul McMath.
4555 [Bug 3404] Fix openSSL DLL usage under Windows <perlinger@ntp.org>
4556 - fix/drop assumptions on OpenSSL libs directory layout
4557 [Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
4558 - initial patch by timeflies@mail2tor.com  <perlinger@ntp.org>
4559 [Bug 3398] tests fail with core dump <perlinger@ntp.org>
4560 - patch contributed by Alexander Bluhm
4561 [Bug 3397] ctl_putstr() asserts that data fits in its buffer
4562 rework of formatting & data transfer stuff in 'ntp_control.c'
4563 avoids unecessary buffers and size limitations. <perlinger@ntp.org>
4564 [Bug 3394] Leap second deletion does not work on ntpd clients
4565 - fixed handling of dynamic deletion w/o leap file <perlinger@ntp.org>
4566 [Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
4567 - increased mimimum stack size to 32kB <perlinger@ntp.org>
4568 [Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8 <perlinger@ntp.org>
4569 - reverted handling of PPS kernel consumer to 4.2.6 behavior
4570 [Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
4571 [Bug 3358] Spurious KoD log messages in .INIT. phase.  HStenn.
4572 [Bug 3016] wrong error position reported for bad ":config pool"
4573 - fixed location counter & ntpq output <perlinger@ntp.org>
4574 [Bug 2900] libntp build order problem.  HStenn.
4575 [Bug 2878] Tests are cluttering up syslog <perlinger@ntp.org>
4576 [Bug 2737] Wrong phone number listed for USNO. ntp-bugs@bodosom.net,
4577 perlinger@ntp.org
4578 [Bug 2557] Fix Thunderbolt init. ntp-bugs@bodosom.net, perlinger@ntp.
4579 [Bug 948] Trustedkey config directive leaks memory. <perlinger@ntp.org>
4580 Use strlcpy() to copy strings, not memcpy().  HStenn.
4581 Typos.  HStenn.
4582 test_ntp_scanner_LDADD needs ntpd/ntp_io.o.  HStenn.
4583 refclock_jjy.c: Add missing "%s" to an msyslog() call.  HStenn.
4584 Build ntpq and libntpq.a with NTP_HARD_*FLAGS.  perlinger@ntp.org
4585 Fix trivial warnings from 'make check'. perlinger@ntp.org
4586 Fix bug in the override portion of the compiler hardening macro. HStenn.
4587 record_raw_stats(): Log entire packet.  Log writes.  HStenn.
4588 AES-128-CMAC support.  BInglis, HStenn, JPerlinger.
4589 sntp: tweak key file logging.  HStenn.
4590 sntp: pkt_output(): Improve debug output.  HStenn.
4591 update-leap: updates from Paul McMath.
4592 When using pkg-config, report --modversion.  HStenn.
4593 Clean up libevent configure checks.  HStenn.
4594 sntp: show the IP of who sent us a crypto-NAK.  HStenn.
4595 Allow .../N to specify subnet bits for IPs in ntp.keys.  HStenn, JPerlinger.
4596 authistrustedip() - use it in more places.  HStenn, JPerlinger.
4597 New sysstats: sys_lamport, sys_tsrounding.  HStenn.
4598 Update ntp.keys .../N documentation.  HStenn.
4599 Distribute testconf.yml.  HStenn.
4600 Add DPRINTF(2,...) lines to receive() for packet drops.  HStenn.
4601 Rename the configuration flag fifo variables.  HStenn.
4602 Improve saveconfig output.  HStenn.
4603 Decode restrict flags on receive() debug output.  HStenn.
4604 Decode interface flags on receive() debug output.  HStenn.
4605 Warn the user if deprecated "driftfile name WanderThreshold" is used.  HStenn.
4606 Update the documentation in ntp.conf.def .  HStenn.
4607 restrictions() must return restrict flags and ippeerlimit.  HStenn.
4608 Update ntpq peer documentation to describe the 'p' type.  HStenn.
4609 Rename restrict 'flags' to 'rflags.  Use an enum for the values.  HStenn.
4610 Provide dump_restricts() for debugging.  HStenn.
4611 Use consistent 4th arg type for [gs]etsockopt.  JPerlinger.
4612
4613* Other items:
4614
4615* update-leap needs the following perl modules:
4616	Net::SSLeay
4617	IO::Socket::SSL
4618
4619* New sysstats variables: sys_lamport, sys_tsrounding
4620See them with: ntpq -c "rv 0 ss_lamport,ss_tsrounding"
4621sys_lamport counts the number of observed Lamport violations, while
4622sys_tsrounding counts observed timestamp rounding events.
4623
4624* New ntp.conf items:
4625
4626- restrict ... noepeer
4627- restrict ... ippeerlimit N
4628
4629The 'noepeer' directive will disallow all ephemeral/passive peer
4630requests.
4631
4632The 'ippeerlimit' directive limits the number of time associations
4633for each IP in the designated set of addresses.  This limit does not
4634apply to explicitly-configured associations.  A value of -1, the current
4635default, means an unlimited number of associations may connect from a
4636single IP.  0 means "none", etc.  Ordinarily the only way multiple
4637associations would come from the same IP would be if the remote side
4638was using a proxy.  But a trusted machine might become compromised,
4639in which case an attacker might spin up multiple authenticated sessions
4640from different ports.  This directive should be helpful in this case.
4641
4642* New ntp.keys feature: Each IP in the optional list of IPs in the 4th
4643field may contain a /subnetbits specification, which identifies  the
4644scope of IPs that may use this key.  This IP/subnet restriction can be
4645used to limit the IPs that may use the key in most all situations where
4646a key is used.
4647--
4648NTP 4.2.8p10 (Harlan Stenn <stenn@ntp.org>, 2017/03/21)
4649
4650Focus: Security, Bug fixes, enhancements.
4651
4652Severity: MEDIUM
4653
4654This release fixes 5 medium-, 6 low-, and 4 informational-severity
4655vulnerabilities, and provides 15 other non-security fixes and improvements:
4656
4657* NTP-01-016 NTP: Denial of Service via Malformed Config (Medium)
4658   Date Resolved: 21 Mar 2017
4659   References: Sec 3389 / CVE-2017-6464 / VU#325339
4660   Affects: All versions of NTP-4, up to but not including ntp-4.2.8p10, and
4661	ntp-4.3.0 up to, but not including ntp-4.3.94.
4662   CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
4663   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
4664   Summary:
4665	A vulnerability found in the NTP server makes it possible for an
4666	authenticated remote user to crash ntpd via a malformed mode
4667	configuration directive.
4668   Mitigation:
4669	Implement BCP-38.
4670	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page or
4671	    the NTP Public Services Project Download Page
4672	Properly monitor your ntpd instances, and auto-restart
4673	    ntpd (without -g) if it stops running.
4674   Credit:
4675	This weakness was discovered by Cure53.
4676
4677* NTP-01-014 NTP: Buffer Overflow in DPTS Clock (Low)
4678    Date Resolved: 21 Mar 2017
4679    References: Sec 3388 / CVE-2017-6462 / VU#325339
4680    Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and ntp-4.3.0 up to, but not including ntp-4.3.94.
4681    CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
4682    CVSS3: Low 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
4683    Summary:
4684	There is a potential for a buffer overflow in the legacy Datum
4685	Programmable Time Server refclock driver.  Here the packets are
4686	processed from the /dev/datum device and handled in
4687	datum_pts_receive().  Since an attacker would be required to
4688	somehow control a malicious /dev/datum device, this does not
4689	appear to be a practical attack and renders this issue "Low" in
4690	terms of severity.
4691   Mitigation:
4692	If you have a Datum reference clock installed and think somebody
4693	    may maliciously change the device, upgrade to 4.2.8p10, or
4694	    later, from the NTP Project Download Page or the NTP Public
4695	    Services Project Download Page
4696	Properly monitor your ntpd instances, and auto-restart
4697	    ntpd (without -g) if it stops running.
4698   Credit:
4699	This weakness was discovered by Cure53.
4700
4701* NTP-01-012 NTP: Authenticated DoS via Malicious Config Option (Medium)
4702   Date Resolved: 21 Mar 2017
4703   References: Sec 3387 / CVE-2017-6463 / VU#325339
4704   Affects: All versions of ntp, up to but not including ntp-4.2.8p10, and
4705	ntp-4.3.0 up to, but not including ntp-4.3.94.
4706   CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
4707   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
4708   Summary:
4709	A vulnerability found in the NTP server allows an authenticated
4710	remote attacker to crash the daemon by sending an invalid setting
4711	via the :config directive.  The unpeer option expects a number or
4712	an address as an argument.  In case the value is "0", a
4713	segmentation fault occurs.
4714   Mitigation:
4715	Implement BCP-38.
4716	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4717	    or the NTP Public Services Project Download Page
4718	Properly monitor your ntpd instances, and auto-restart
4719	    ntpd (without -g) if it stops running.
4720   Credit:
4721	This weakness was discovered by Cure53.
4722
4723* NTP-01-011 NTP: ntpq_stripquotes() returns incorrect value (Informational)
4724   Date Resolved: 21 Mar 2017
4725   References: Sec 3386
4726   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
4727	ntp-4.3.0 up to, but not including ntp-4.3.94.
4728   CVSS2: None 0.0 (AV:N/AC:H/Au:N/C:N/I:N/A:N)
4729   CVSS3: None 0.0 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N
4730   Summary:
4731	The NTP Mode 6 monitoring and control client, ntpq, uses the
4732	function ntpq_stripquotes() to remove quotes and escape characters
4733	from a given string.  According to the documentation, the function
4734	is supposed to return the number of copied bytes but due to
4735	incorrect pointer usage this value is always zero.  Although the
4736	return value of this function is never used in the code, this
4737	flaw could lead to a vulnerability in the future.  Since relying
4738	on wrong return values when performing memory operations is a
4739	dangerous practice, it is recommended to return the correct value
4740	in accordance with the documentation pertinent to the code.
4741   Mitigation:
4742	Implement BCP-38.
4743	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4744	    or the NTP Public Services Project Download Page
4745	Properly monitor your ntpd instances, and auto-restart
4746	    ntpd (without -g) if it stops running.
4747   Credit:
4748	This weakness was discovered by Cure53.
4749
4750* NTP-01-010 NTP: ereallocarray()/eallocarray() underused (Info)
4751   Date Resolved: 21 Mar 2017
4752   References: Sec 3385
4753   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
4754	ntp-4.3.0 up to, but not including ntp-4.3.94.
4755   Summary:
4756	NTP makes use of several wrappers around the standard heap memory
4757	allocation functions that are provided by libc.  This is mainly
4758	done to introduce additional safety checks concentrated on
4759	several goals.  First, they seek to ensure that memory is not
4760	accidentally freed, secondly they verify that a correct amount
4761	is always allocated and, thirdly, that allocation failures are
4762	correctly handled.  There is an additional implementation for
4763	scenarios where memory for a specific amount of items of the
4764	same size needs to be allocated.  The handling can be found in
4765	the oreallocarray() function for which a further number-of-elements
4766	parameter needs to be provided.  Although no considerable threat
4767	was identified as tied to a lack of use of this function, it is
4768	recommended to correctly apply oreallocarray() as a preferred
4769	option across all of the locations where it is possible.
4770   Mitigation:
4771	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4772	    or the NTP Public Services Project Download Page
4773   Credit:
4774	This weakness was discovered by Cure53.
4775
4776* NTP-01-009 NTP: Privileged execution of User Library code (WINDOWS
4777	PPSAPI ONLY) (Low)
4778   Date Resolved: 21 Mar 2017
4779   References: Sec 3384 / CVE-2017-6455 / VU#325339
4780   Affects: All Windows versions of ntp-4 that use the PPSAPI, up to but
4781	not including ntp-4.2.8p10, and ntp-4.3.0 up to, but not
4782	including ntp-4.3.94.
4783   CVSS2: MED 3.8 (AV:L/AC:H/Au:S/C:N/I:N/A:C)
4784   CVSS3: MED 4.0 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
4785   Summary:
4786	The Windows NT port has the added capability to preload DLLs
4787	defined in the inherited global local environment variable
4788	PPSAPI_DLLS.  The code contained within those libraries is then
4789	called from the NTPD service, usually running with elevated
4790	privileges. Depending on how securely the machine is setup and
4791	configured, if ntpd is configured to use the PPSAPI under Windows
4792	this can easily lead to a code injection.
4793   Mitigation:
4794	Implement BCP-38.
4795	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4796	    or the NTP Public Services Project Download Page
4797   Credit:
4798   This weakness was discovered by Cure53.
4799
4800* NTP-01-008 NTP: Stack Buffer Overflow from Command Line (WINDOWS
4801	installer ONLY) (Low)
4802   Date Resolved: 21 Mar 2017
4803   References: Sec 3383 / CVE-2017-6452 / VU#325339
4804   Affects: WINDOWS installer ONLY: All versions of the ntp-4 Windows
4805	installer, up to but not including ntp-4.2.8p10, and ntp-4.3.0 up
4806	to, but not including ntp-4.3.94.
4807   CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
4808   CVSS3: Low 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
4809   Summary:
4810	The Windows installer for NTP calls strcat(), blindly appending
4811	the string passed to the stack buffer in the addSourceToRegistry()
4812	function.  The stack buffer is 70 bytes smaller than the buffer
4813	in the calling main() function.  Together with the initially
4814	copied Registry path, the combination causes a stack buffer
4815	overflow and effectively overwrites the stack frame.  The
4816	passed application path is actually limited to 256 bytes by the
4817	operating system, but this is not sufficient to assure that the
4818	affected stack buffer is consistently protected against
4819	overflowing at all times.
4820   Mitigation:
4821	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4822	or the NTP Public Services Project Download Page
4823   Credit:
4824	This weakness was discovered by Cure53.
4825
4826* NTP-01-007 NTP: Data Structure terminated insufficiently (WINDOWS
4827	installer ONLY) (Low)
4828   Date Resolved: 21 Mar 2017
4829   References: Sec 3382 / CVE-2017-6459 / VU#325339
4830   Affects: WINDOWS installer ONLY: All ntp-4 versions of the Windows
4831	installer, up to but not including ntp-4.2.8p10, and ntp-4.3.0
4832	up to, but not including ntp-4.3.94.
4833   CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
4834   CVSS3: Low 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
4835   Summary:
4836	The Windows installer for NTP calls strcpy() with an argument
4837	that specifically contains multiple null bytes.  strcpy() only
4838	copies a single terminating null character into the target
4839	buffer instead of copying the required double null bytes in the
4840	addKeysToRegistry() function.  As a consequence, a garbage
4841	registry entry can be created.  The additional arsize parameter
4842	is erroneously set to contain two null bytes and the following
4843	call to RegSetValueEx() claims to be passing in a multi-string
4844	value, though this may not be true.
4845   Mitigation:
4846	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4847	    or the NTP Public Services Project Download Page
4848   Credit:
4849	This weakness was discovered by Cure53.
4850
4851* NTP-01-006 NTP: Copious amounts of Unused Code (Informational)
4852   References: Sec 3381
4853   Summary:
4854	The report says: Statically included external projects
4855	potentially introduce several problems and the issue of having
4856	extensive amounts of code that is "dead" in the resulting binary
4857	must clearly be pointed out.  The unnecessary unused code may or
4858	may not contain bugs and, quite possibly, might be leveraged for
4859	code-gadget-based branch-flow redirection exploits.  Analogically,
4860	having source trees statically included as well means a failure
4861	in taking advantage of the free feature for periodical updates.
4862	This solution is offered by the system's Package Manager. The
4863	three libraries identified are libisc, libevent, and libopts.
4864   Resolution:
4865	For libisc, we already only use a portion of the original library.
4866	We've found and fixed bugs in the original implementation (and
4867	offered the patches to ISC), and plan to see what has changed
4868	since we last upgraded the code.  libisc is generally not
4869	installed, and when it it we usually only see the static libisc.a
4870	file installed.  Until we know for sure that the bugs we've found
4871	and fixed are fixed upstream, we're better off with the copy we
4872	are using.
4873
4874        Version 1 of libevent was the only production version available
4875	until recently, and we've been requiring version 2 for a long time.
4876	But if the build system has at least version 2 of libevent
4877	installed, we'll use the version that is installed on the system.
4878	Otherwise, we provide a copy of libevent that we know works.
4879
4880        libopts is provided by GNU AutoGen, and that library and package
4881	undergoes frequent API version updates.  The version of autogen
4882	used to generate the tables for the code must match the API
4883	version in libopts.  AutoGen can be ... difficult to build and
4884	install, and very few developers really need it.  So we have it
4885	on our build and development machines, and we provide the
4886	specific version of the libopts code in the distribution to make
4887	sure that the proper API version of libopts is available.
4888
4889        As for the point about there being code in these libraries that
4890	NTP doesn't use, OK.  But other packages used these libraries as
4891	well, and it is reasonable to assume that other people are paying
4892	attention to security and code quality issues for the overall
4893	libraries.  It takes significant resources to analyze and
4894	customize these libraries to only include what we need, and to
4895	date we believe the cost of this effort does not justify the benefit.
4896   Credit:
4897	This issue was discovered by Cure53.
4898
4899* NTP-01-005 NTP: Off-by-one in Oncore GPS Receiver (Low)
4900   Date Resolved: 21 Mar 2017
4901   References: Sec 3380
4902   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
4903   	ntp-4.3.0 up to, but not including ntp-4.3.94.
4904   CVSS2: None 0.0 (AV:L/AC:H/Au:N/C:N/I:N/A:N)
4905   CVSS3: None 0.0 CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N
4906   Summary:
4907	There is a fencepost error in a "recovery branch" of the code for
4908	the Oncore GPS receiver if the communication link to the ONCORE
4909	is weak / distorted and the decoding doesn't work.
4910   Mitigation:
4911        Upgrade to 4.2.8p10, or later, from the NTP Project Download Page or
4912	    the NTP Public Services Project Download Page
4913        Properly monitor your ntpd instances, and auto-restart
4914	    ntpd (without -g) if it stops running.
4915   Credit:
4916	This weakness was discovered by Cure53.
4917
4918* NTP-01-004 NTP: Potential Overflows in ctl_put() functions (Medium)
4919   Date Resolved: 21 Mar 2017
4920   References: Sec 3379 / CVE-2017-6458 / VU#325339
4921   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
4922	ntp-4.3.0 up to, but not including ntp-4.3.94.
4923   CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
4924   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
4925   Summary:
4926	ntpd makes use of different wrappers around ctl_putdata() to
4927	create name/value ntpq (mode 6) response strings.  For example,
4928	ctl_putstr() is usually used to send string data (variable names
4929	or string data).  The formatting code was missing a length check
4930	for variable names.  If somebody explicitly created any unusually
4931	long variable names in ntpd (longer than 200-512 bytes, depending
4932	on the type of variable), then if any of these variables are
4933	added to the response list it would overflow a buffer.
4934   Mitigation:
4935	Implement BCP-38.
4936	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4937	    or the NTP Public Services Project Download Page
4938	If you don't want to upgrade, then don't setvar variable names
4939	    longer than 200-512 bytes in your ntp.conf file.
4940	Properly monitor your ntpd instances, and auto-restart
4941	    ntpd (without -g) if it stops running.
4942   Credit:
4943	This weakness was discovered by Cure53.
4944
4945* NTP-01-003 NTP: Improper use of snprintf() in mx4200_send() (Low)
4946   Date Resolved: 21 Mar 2017
4947   References: Sec 3378 / CVE-2017-6451 / VU#325339
4948   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
4949	ntp-4.3.0 up to, but not including ntp-4.3.94.
4950   CVSS2: LOW 0.8 (AV:L/AC:H/Au:M/C:N/I:N/A:P)
4951   CVSS3: LOW 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N
4952   Summary:
4953	The legacy MX4200 refclock is only built if is specifically
4954	enabled, and furthermore additional code changes are required to
4955	compile and use it.  But it uses the libc functions snprintf()
4956	and vsnprintf() incorrectly, which can lead to an out-of-bounds
4957	memory write due to an improper handling of the return value of
4958	snprintf()/vsnprintf().  Since the return value is used as an
4959	iterator and it can be larger than the buffer's size, it is
4960	possible for the iterator to point somewhere outside of the
4961	allocated buffer space.  This results in an out-of-bound memory
4962	write.  This behavior can be leveraged to overwrite a saved
4963	instruction pointer on the stack and gain control over the
4964	execution flow.  During testing it was not possible to identify
4965	any malicious usage for this vulnerability.  Specifically, no
4966	way for an attacker to exploit this vulnerability was ultimately
4967	unveiled.  However, it has the potential to be exploited, so the
4968	code should be fixed.
4969   Mitigation, if you have a Magnavox MX4200 refclock:
4970	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4971	    or the NTP Public Services Project Download Page.
4972	Properly monitor your ntpd instances, and auto-restart
4973	    ntpd (without -g) if it stops running.
4974   Credit:
4975	This weakness was discovered by Cure53.
4976
4977* NTP-01-002 NTP: Buffer Overflow in ntpq when fetching reslist from a
4978	malicious ntpd (Medium)
4979   Date Resolved: 21 Mar 2017
4980   References: Sec 3377 / CVE-2017-6460 / VU#325339
4981   Affects: All versions of ntpq, up to but not including ntp-4.2.8p10, and
4982	ntp-4.3.0 up to, but not including ntp-4.3.94.
4983   CVSS2: MED 4.9 (AV:N/AC:H/Au:S/C:N/I:N/A:C)
4984   CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
4985   Summary:
4986	A stack buffer overflow in ntpq can be triggered by a malicious
4987	ntpd server when ntpq requests the restriction list from the server.
4988	This is due to a missing length check in the reslist() function.
4989	It occurs whenever the function parses the server's response and
4990	encounters a flagstr variable of an excessive length.  The string
4991	will be copied into a fixed-size buffer, leading to an overflow on
4992	the function's stack-frame.  Note well that this problem requires
4993	a malicious server, and affects ntpq, not ntpd.
4994   Mitigation:
4995	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
4996	    or the NTP Public Services Project Download Page
4997	If you can't upgrade your version of ntpq then if you want to know
4998	    the reslist of an instance of ntpd that you do not control,
4999	    know that if the target ntpd is malicious that it can send back
5000	    a response that intends to crash your ntpq process.
5001   Credit:
5002	This weakness was discovered by Cure53.
5003
5004* NTP-01-001 NTP: Makefile does not enforce Security Flags (Informational)
5005   Date Resolved: 21 Mar 2017
5006   References: Sec 3376
5007   Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
5008	ntp-4.3.0 up to, but not including ntp-4.3.94.
5009   CVSS2: N/A
5010   CVSS3: N/A
5011   Summary:
5012	The build process for NTP has not, by default, provided compile
5013	or link flags to offer "hardened" security options.  Package
5014	maintainers have always been able to provide hardening security
5015	flags for their builds.  As of ntp-4.2.8p10, the NTP build
5016	system has a way to provide OS-specific hardening flags.  Please
5017	note that this is still not a really great solution because it
5018	is specific to NTP builds.  It's inefficient to have every
5019	package supply, track and maintain this information for every
5020	target build.  It would be much better if there was a common way
5021	for OSes to provide this information in a way that arbitrary
5022	packages could benefit from it.
5023   Mitigation:
5024	Implement BCP-38.
5025	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
5026	    or the NTP Public Services Project Download Page
5027	Properly monitor your ntpd instances, and auto-restart
5028	    ntpd (without -g) if it stops running.
5029   Credit:
5030	This weakness was reported by Cure53.
5031
5032* 0rigin DoS (Medium)
5033   Date Resolved: 21 Mar 2017
5034   References: Sec 3361 / CVE-2016-9042 / VU#325339
5035   Affects: ntp-4.2.8p9 (21 Nov 2016), up to but not including ntp-4.2.8p10
5036   CVSS2: MED 4.9 (AV:N/AC:H/Au:N/C:N/I:N/A:C) (worst case)
5037   CVSS3: MED 4.4 CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H (worst case)
5038   Summary:
5039	An exploitable denial of service vulnerability exists in the
5040	origin timestamp check functionality of ntpd 4.2.8p9.  A specially
5041	crafted unauthenticated network packet can be used to reset the
5042	expected origin timestamp for target peers.  Legitimate replies
5043	from targeted peers will fail the origin timestamp check (TEST2)
5044	causing the reply to be dropped and creating a denial of service
5045	condition.  This vulnerability can only be exploited if the
5046	attacker can spoof all of the servers.
5047   Mitigation:
5048	Implement BCP-38.
5049	Configure enough servers/peers that an attacker cannot target
5050	    all of your time sources.
5051	Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
5052	    or the NTP Public Services Project Download Page
5053	Properly monitor your ntpd instances, and auto-restart
5054	    ntpd (without -g) if it stops running.
5055   Credit:
5056	This weakness was discovered by Matthew Van Gundy of Cisco.
5057
5058Other fixes:
5059
5060* [Bug 3393] clang scan-build findings <perlinger@ntp.org>
5061* [Bug 3363] Support for openssl-1.1.0 without compatibility modes
5062  - rework of patch set from <ntp.org@eroen.eu>. <perlinger@ntp.org>
5063* [Bug 3356] Bugfix 3072 breaks multicastclient <perlinger@ntp.org>
5064* [Bug 3216] libntp audio ioctl() args incorrectly cast to int
5065  on 4.4BSD-Lite derived platforms <perlinger@ntp.org>
5066  - original patch by Majdi S. Abbas
5067* [Bug 3215] 'make distcheck' fails with new BK repo format <perlinger@ntp.org>
5068* [Bug 3173] forking async worker: interrupted pipe I/O <perlinger@ntp.org>
5069  - initial patch by Christos Zoulas
5070* [Bug 3139] (...) time_pps_create: Exec format error <perlinger@ntp.org>
5071  - move loader API from 'inline' to proper source
5072  - augment pathless dlls with absolute path to NTPD
5073  - use 'msyslog()' instead of 'printf() 'for reporting trouble
5074* [Bug 3107] Incorrect Logic for Peer Event Limiting <perlinger@ntp.org>
5075  - applied patch by Matthew Van Gundy
5076* [Bug 3065] Quiet warnings on NetBSD <perlinger@ntp.org>
5077  - applied some of the patches provided by Havard. Not all of them
5078    still match the current code base, and I did not touch libopt.
5079* [Bug 3062] Change the process name of forked DNS worker <perlinger@ntp.org>
5080  - applied patch by Reinhard Max. See bugzilla for limitations.
5081* [Bug 2923] Trap Configuration Fail <perlinger@ntp.org>
5082  - fixed dependency inversion from [Bug 2837]
5083* [Bug 2896] Nothing happens if minsane < maxclock < minclock
5084  - produce ERROR log message about dysfunctional daemon. <perlinger@ntp.org>
5085* [Bug 2851] allow -4/-6 on restrict line with mask <perlinger@ntp.org>
5086  - applied patch by Miroslav Lichvar for ntp4.2.6 compat
5087* [Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
5088  - Fixed these and some more locations of this pattern.
5089    Probably din't get them all, though. <perlinger@ntp.org>
5090* Update copyright year.
5091
5092--
5093(4.2.8p9-win) 2017/02/01 Released by Harlan Stenn <stenn@ntp.org>
5094
5095* [Bug 3144] NTP does not build without openSSL. <perlinger@ntp.org>
5096  - added missed changeset for automatic openssl lib detection
5097  - fixed some minor warning issues
5098* [Bug 3095]  More compatibility with openssl 1.1. <perlinger@ntp.org>
5099* configure.ac cleanup.  stenn@ntp.org
5100* openssl configure cleanup.  stenn@ntp.org
5101
5102--
5103NTP 4.2.8p9 (Harlan Stenn <stenn@ntp.org>, 2016/11/21)
5104
5105Focus: Security, Bug fixes, enhancements.
5106
5107Severity: HIGH
5108
5109In addition to bug fixes and enhancements, this release fixes the
5110following 1 high- (Windows only), 2 medium-, 2 medium-/low, and
51115 low-severity vulnerabilities, and provides 28 other non-security
5112fixes and improvements:
5113
5114* Trap crash
5115   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5116   References: Sec 3119 / CVE-2016-9311 / VU#633847
5117   Affects: ntp-4.0.90 (21 July 1999), possibly earlier, up to but not
5118   	including 4.2.8p9, and ntp-4.3.0 up to but not including ntp-4.3.94.
5119   CVSS2: MED 4.9 (AV:N/AC:H/Au:N/C:N/I:N/A:C)
5120   CVSS3: MED 4.4 CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H
5121   Summary:
5122	ntpd does not enable trap service by default. If trap service
5123	has been explicitly enabled, an attacker can send a specially
5124	crafted packet to cause a null pointer dereference that will
5125	crash ntpd, resulting in a denial of service.
5126   Mitigation:
5127        Implement BCP-38.
5128	Use "restrict default noquery ..." in your ntp.conf file. Only
5129	    allow mode 6 queries from trusted networks and hosts.
5130        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5131	    or the NTP Public Services Project Download Page
5132        Properly monitor your ntpd instances, and auto-restart ntpd
5133	    (without -g) if it stops running.
5134   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
5135
5136* Mode 6 information disclosure and DDoS vector
5137   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5138   References: Sec 3118 / CVE-2016-9310 / VU#633847
5139   Affects: ntp-4.0.90 (21 July 1999), possibly earlier, up to but not
5140	including 4.2.8p9, and ntp-4.3.0 up to but not including ntp-4.3.94.
5141   CVSS2: MED 6.4 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
5142   CVSS3: MED 6.5 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
5143   Summary:
5144	An exploitable configuration modification vulnerability exists
5145	in the control mode (mode 6) functionality of ntpd. If, against
5146	long-standing BCP recommendations, "restrict default noquery ..."
5147	is not specified, a specially crafted control mode packet can set
5148	ntpd traps, providing information disclosure and DDoS
5149	amplification, and unset ntpd traps, disabling legitimate
5150	monitoring. A remote, unauthenticated, network attacker can
5151	trigger this vulnerability.
5152   Mitigation:
5153        Implement BCP-38.
5154	Use "restrict default noquery ..." in your ntp.conf file.
5155        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5156	    or the NTP Public Services Project Download Page
5157        Properly monitor your ntpd instances, and auto-restart ntpd
5158	    (without -g) if it stops running.
5159   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
5160
5161* Broadcast Mode Replay Prevention DoS
5162   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5163   References: Sec 3114 / CVE-2016-7427 / VU#633847
5164   Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p9, and
5165	ntp-4.3.90 up to, but not including ntp-4.3.94.
5166   CVSS2: LOW 3.3 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
5167   CVSS3: MED 4.3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
5168   Summary:
5169	The broadcast mode of NTP is expected to only be used in a
5170	trusted network. If the broadcast network is accessible to an
5171	attacker, a potentially exploitable denial of service
5172	vulnerability in ntpd's broadcast mode replay prevention
5173	functionality can be abused. An attacker with access to the NTP
5174	broadcast domain can periodically inject specially crafted
5175	broadcast mode NTP packets into the broadcast domain which,
5176	while being logged by ntpd, can cause ntpd to reject broadcast
5177	mode packets from legitimate NTP broadcast servers.
5178   Mitigation:
5179        Implement BCP-38.
5180        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5181	    or the NTP Public Services Project Download Page
5182        Properly monitor your ntpd instances, and auto-restart ntpd
5183	    (without -g) if it stops running.
5184   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
5185
5186* Broadcast Mode Poll Interval Enforcement DoS
5187   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5188   References: Sec 3113 / CVE-2016-7428 / VU#633847
5189   Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p9, and
5190	ntp-4.3.90 up to, but not including ntp-4.3.94
5191   CVSS2: LOW 3.3 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
5192   CVSS3: MED 4.3 CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
5193   Summary:
5194	The broadcast mode of NTP is expected to only be used in a
5195	trusted network. If the broadcast network is accessible to an
5196	attacker, a potentially exploitable denial of service
5197	vulnerability in ntpd's broadcast mode poll interval enforcement
5198	functionality can be abused. To limit abuse, ntpd restricts the
5199	rate at which each broadcast association will process incoming
5200	packets. ntpd will reject broadcast mode packets that arrive
5201	before the poll interval specified in the preceding broadcast
5202	packet expires. An attacker with access to the NTP broadcast
5203	domain can send specially crafted broadcast mode NTP packets to
5204	the broadcast domain which, while being logged by ntpd, will
5205	cause ntpd to reject broadcast mode packets from legitimate NTP
5206	broadcast servers.
5207   Mitigation:
5208        Implement BCP-38.
5209        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5210	    or the NTP Public Services Project Download Page
5211        Properly monitor your ntpd instances, and auto-restart ntpd
5212	    (without -g) if it stops running.
5213   Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
5214
5215* Windows: ntpd DoS by oversized UDP packet
5216   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5217   References: Sec 3110 / CVE-2016-9312 / VU#633847
5218   Affects Windows only: ntp-4.?.?, up to but not including ntp-4.2.8p9,
5219	and ntp-4.3.0 up to, but not including ntp-4.3.94.
5220   CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)
5221   CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
5222   Summary:
5223	If a vulnerable instance of ntpd on Windows receives a crafted
5224	malicious packet that is "too big", ntpd will stop working.
5225   Mitigation:
5226        Implement BCP-38.
5227        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5228	    or the NTP Public Services Project Download Page
5229        Properly monitor your ntpd instances, and auto-restart ntpd
5230	    (without -g) if it stops running.
5231   Credit: This weakness was discovered by Robert Pajak of ABB.
5232
5233* 0rigin (zero origin) issues
5234   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5235   References: Sec 3102 / CVE-2016-7431 / VU#633847
5236   Affects: ntp-4.2.8p8, and ntp-4.3.93.
5237   CVSS2: MED 5.0 (AV:N/AC:L/Au:N/C:N/I:P/A:N)
5238   CVSS3: MED 5.3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
5239   Summary:
5240	Zero Origin timestamp problems were fixed by Bug 2945 in
5241	ntp-4.2.8p6. However, subsequent timestamp validation checks
5242	introduced a regression in the handling of some Zero origin
5243	timestamp checks.
5244   Mitigation:
5245        Implement BCP-38.
5246        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5247	    or the NTP Public Services Project Download Page
5248        Properly monitor your ntpd instances, and auto-restart ntpd
5249	    (without -g) if it stops running.
5250   Credit: This weakness was discovered by Sharon Goldberg and Aanchal
5251	Malhotra of Boston University.
5252
5253* read_mru_list() does inadequate incoming packet checks
5254   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5255   References: Sec 3082 / CVE-2016-7434 / VU#633847
5256   Affects: ntp-4.2.7p22, up to but not including ntp-4.2.8p9, and
5257	ntp-4.3.0 up to, but not including ntp-4.3.94.
5258   CVSS2: LOW 3.8 (AV:L/AC:H/Au:S/C:N/I:N/A:C)
5259   CVSS3: LOW 3.8 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
5260   Summary:
5261	If ntpd is configured to allow mrulist query requests from a
5262	server that sends a crafted malicious packet, ntpd will crash
5263	on receipt of that crafted malicious mrulist query packet.
5264   Mitigation:
5265	Only allow mrulist query packets from trusted hosts.
5266        Implement BCP-38.
5267        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5268	    or the NTP Public Services Project Download Page
5269        Properly monitor your ntpd instances, and auto-restart ntpd
5270	    (without -g) if it stops running.
5271   Credit: This weakness was discovered by Magnus Stubman.
5272
5273* Attack on interface selection
5274   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5275   References: Sec 3072 / CVE-2016-7429 / VU#633847
5276   Affects: ntp-4.2.7p385, up to but not including ntp-4.2.8p9, and
5277	ntp-4.3.0 up to, but not including ntp-4.3.94
5278   CVSS2: LOW 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
5279   CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
5280   Summary:
5281	When ntpd receives a server response on a socket that corresponds
5282	to a different interface than was used for the request, the peer
5283	structure is updated to use the interface for new requests. If
5284	ntpd is running on a host with multiple interfaces in separate
5285	networks and the operating system doesn't check source address in
5286	received packets (e.g. rp_filter on Linux is set to 0), an
5287	attacker that knows the address of the source can send a packet
5288	with spoofed source address which will cause ntpd to select wrong
5289	interface for the source and prevent it from sending new requests
5290	until the list of interfaces is refreshed, which happens on
5291	routing changes or every 5 minutes by default. If the attack is
5292	repeated often enough (once per second), ntpd will not be able to
5293	synchronize with the source.
5294   Mitigation:
5295        Implement BCP-38.
5296        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5297	    or the NTP Public Services Project Download Page
5298	If you are going to configure your OS to disable source address
5299	    checks, also configure your firewall configuration to control
5300	    what interfaces can receive packets from what networks.
5301        Properly monitor your ntpd instances, and auto-restart ntpd
5302	    (without -g) if it stops running.
5303   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
5304
5305* Client rate limiting and server responses
5306   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5307   References: Sec 3071 / CVE-2016-7426 / VU#633847
5308   Affects: ntp-4.2.5p203, up to but not including ntp-4.2.8p9, and
5309	ntp-4.3.0 up to, but not including ntp-4.3.94
5310   CVSS2: LOW 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
5311   CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
5312   Summary:
5313	When ntpd is configured with rate limiting for all associations
5314	(restrict default limited in ntp.conf), the limits are applied
5315	also to responses received from its configured sources. An
5316	attacker who knows the sources (e.g., from an IPv4 refid in
5317	server response) and knows the system is (mis)configured in this
5318	way can periodically send packets with spoofed source address to
5319	keep the rate limiting activated and prevent ntpd from accepting
5320	valid responses from its sources.
5321
5322	While this blanket rate limiting can be useful to prevent
5323	brute-force attacks on the origin timestamp, it allows this DoS
5324	attack. Similarly, it allows the attacker to prevent mobilization
5325	of ephemeral associations.
5326   Mitigation:
5327        Implement BCP-38.
5328        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5329	    or the NTP Public Services Project Download Page
5330        Properly monitor your ntpd instances, and auto-restart ntpd
5331	    (without -g) if it stops running.
5332   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
5333
5334* Fix for bug 2085 broke initial sync calculations
5335   Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
5336   References: Sec 3067 / CVE-2016-7433 / VU#633847
5337   Affects: ntp-4.2.7p385, up to but not including ntp-4.2.8p9, and
5338	ntp-4.3.0 up to, but not including ntp-4.3.94. But the
5339	root-distance calculation in general is incorrect in all versions
5340	of ntp-4 until this release.
5341   CVSS2: LOW 1.2 (AV:L/AC:H/Au:N/C:N/I:N/A:P)
5342   CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
5343   Summary:
5344	Bug 2085 described a condition where the root delay was included
5345	twice, causing the jitter value to be higher than expected. Due
5346	to a misinterpretation of a small-print variable in The Book, the
5347	fix for this problem was incorrect, resulting in a root distance
5348	that did not include the peer dispersion. The calculations and
5349	formulae have been reviewed and reconciled, and the code has been
5350	updated accordingly.
5351   Mitigation:
5352        Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
5353	    or the NTP Public Services Project Download Page
5354        Properly monitor your ntpd instances, and auto-restart ntpd
5355	    (without -g) if it stops running.
5356   Credit: This weakness was discovered independently by Brian Utterback of
5357	Oracle, and Sharon Goldberg and Aanchal Malhotra of Boston University.
5358
5359Other fixes:
5360
5361* [Bug 3142] bug in netmask prefix length detection <perlinger@ntp.org>
5362* [Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
5363* [Bug 3129] Unknown hosts can put resolver thread into a hard loop
5364  - moved retry decision where it belongs. <perlinger@ntp.org>
5365* [Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order
5366  using the loopback-ppsapi-provider.dll <perlinger@ntp.org>
5367* [Bug 3116] unit tests for NTP time stamp expansion. <perlinger@ntp.org>
5368* [Bug 3100] ntpq can't retrieve daemon_version <perlinger@ntp.org>
5369  - fixed extended sysvar lookup (bug introduced with bug 3008 fix)
5370* [Bug 3095] Compatibility with openssl 1.1 <perlinger@ntp.org>
5371  - applied patches by Kurt Roeckx <kurt@roeckx.be> to source
5372  - added shim layer for SSL API calls with issues (both directions)
5373* [Bug 3089] Serial Parser does not work anymore for hopfser like device
5374  - simplified / refactored hex-decoding in driver. <perlinger@ntp.org>
5375* [Bug 3084] update-leap mis-parses the leapfile name.  HStenn.
5376* [Bug 3068] Linker warnings when building on Solaris. perlinger@ntp.org
5377  - applied patch thanks to Andrew Stormont <andyjstormont@gmail.com>
5378* [Bug 3067] Root distance calculation needs improvement.  HStenn
5379* [Bug 3066] NMEA clock ignores pps. perlinger@ntp.org
5380  - PPS-HACK works again.
5381* [Bug 3059] Potential buffer overrun from oversized hash <perlinger@ntp.org>
5382  - applied patch by Brian Utterback <brian.utterback@oracle.com>
5383* [Bug 3053] ntp_loopfilter.c frequency calc precedence error.  Sarah White.
5384* [Bug 3050] Fix for bug #2960 causes [...] spurious error message.
5385  <perlinger@ntp.org>
5386  - patches by Reinhard Max <max@suse.com> and Havard Eidnes <he@uninett.no>
5387* [Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
5388  - Patch provided by Kuramatsu.
5389* [Bug 3021] unity_fixture.c needs pragma weak <perlinger@ntp.org>
5390  - removed unnecessary & harmful decls of 'setUp()' & 'tearDown()'
5391* [Bug 3019] Windows: ERROR_HOST_UNREACHABLE block packet processing. DMayer
5392* [Bug 2998] sntp/tests/packetProcessing.c broken without openssl. JPerlinger
5393* [Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY.  HStenn.
5394* [Bug 2959] refclock_jupiter: gps week correction <perlinger@ntp.org>
5395  - fixed GPS week expansion to work based on build date. Special thanks
5396    to Craig Leres for initial patch and testing.
5397* [Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
5398  - fixed Makefile.am <perlinger@ntp.org>
5399* [Bug 2689] ATOM driver processes last PPS pulse at startup,
5400             even if it is very old <perlinger@ntp.org>
5401  - make sure PPS source is alive before processing samples
5402  - improve stability close to the 500ms phase jump (phase gate)
5403* Fix typos in include/ntp.h.
5404* Shim X509_get_signature_nid() if needed
5405* git author attribution cleanup
5406* bk ignore file cleanup
5407* remove locks in Windows IO, use rpc-like thread synchronisation instead
5408
5409---
5410NTP 4.2.8p8 (Harlan Stenn <stenn@ntp.org>, 2016/06/02)
5411
5412Focus: Security, Bug fixes, enhancements.
5413
5414Severity: HIGH
5415
5416In addition to bug fixes and enhancements, this release fixes the
5417following 1 high- and 4 low-severity vulnerabilities:
5418
5419* CRYPTO_NAK crash
5420   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
5421   References: Sec 3046 / CVE-2016-4957 / VU#321640
5422   Affects: ntp-4.2.8p7, and ntp-4.3.92.
5423   CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)
5424   CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
5425   Summary: The fix for Sec 3007 in ntp-4.2.8p7 contained a bug that
5426	could cause ntpd to crash.
5427   Mitigation:
5428        Implement BCP-38.
5429        Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
5430	    or the NTP Public Services Project Download Page
5431        If you cannot upgrade from 4.2.8p7, the only other alternatives
5432	    are to patch your code or filter CRYPTO_NAK packets.
5433        Properly monitor your ntpd instances, and auto-restart ntpd
5434	    (without -g) if it stops running.
5435   Credit: This weakness was discovered by Nicolas Edet of Cisco.
5436
5437* Bad authentication demobilizes ephemeral associations
5438   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
5439   References: Sec 3045 / CVE-2016-4953 / VU#321640
5440   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
5441	ntp-4.3.0 up to, but not including ntp-4.3.93.
5442   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
5443   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
5444   Summary: An attacker who knows the origin timestamp and can send a
5445	spoofed packet containing a CRYPTO-NAK to an ephemeral peer
5446	target before any other response is sent can demobilize that
5447	association.
5448   Mitigation:
5449	Implement BCP-38.
5450	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
5451	    or the NTP Public Services Project Download Page
5452	Properly monitor your ntpd instances.
5453	Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
5454
5455* Processing spoofed server packets
5456   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
5457   References: Sec 3044 / CVE-2016-4954 / VU#321640
5458   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
5459	ntp-4.3.0 up to, but not including ntp-4.3.93.
5460   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
5461   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
5462   Summary: An attacker who is able to spoof packets with correct origin
5463	timestamps from enough servers before the expected response
5464	packets arrive at the target machine can affect some peer
5465	variables and, for example, cause a false leap indication to be set.
5466   Mitigation:
5467	Implement BCP-38.
5468	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
5469	    or the NTP Public Services Project Download Page
5470	Properly monitor your ntpd instances.
5471   Credit: This weakness was discovered by Jakub Prokes of Red Hat.
5472
5473* Autokey association reset
5474   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
5475   References: Sec 3043 / CVE-2016-4955 / VU#321640
5476   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
5477	ntp-4.3.0 up to, but not including ntp-4.3.93.
5478   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
5479   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
5480   Summary: An attacker who is able to spoof a packet with a correct
5481	origin timestamp before the expected response packet arrives at
5482	the target machine can send a CRYPTO_NAK or a bad MAC and cause
5483	the association's peer variables to be cleared. If this can be
5484	done often enough, it will prevent that association from working.
5485   Mitigation:
5486	Implement BCP-38.
5487	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
5488	    or the NTP Public Services Project Download Page
5489	Properly monitor your ntpd instances.
5490   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
5491
5492* Broadcast interleave
5493   Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
5494   References: Sec 3042 / CVE-2016-4956 / VU#321640
5495   Affects: ntp-4, up to but not including ntp-4.2.8p8, and
5496   	ntp-4.3.0 up to, but not including ntp-4.3.93.
5497   CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
5498   CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
5499   Summary: The fix for NtpBug2978 does not cover broadcast associations,
5500   	so broadcast clients can be triggered to flip into interleave mode.
5501   Mitigation:
5502	Implement BCP-38.
5503	Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
5504	    or the NTP Public Services Project Download Page
5505	Properly monitor your ntpd instances.
5506   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
5507
5508Other fixes:
5509* [Bug 3038] NTP fails to build in VS2015. perlinger@ntp.org
5510  - provide build environment
5511  - 'wint_t' and 'struct timespec' defined by VS2015
5512  - fixed print()/scanf() format issues
5513* [Bug 3052] Add a .gitignore file.  Edmund Wong.
5514* [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
5515* [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback,
5516  JPerlinger, HStenn.
5517* Fix typo in ntp-wait and plot_summary.  HStenn.
5518* Make sure we have an "author" file for git imports.  HStenn.
5519* Update the sntp problem tests for MacOS.  HStenn.
5520
5521---
5522NTP 4.2.8p7 (Harlan Stenn <stenn@ntp.org>, 2016/04/26)
5523
5524Focus: Security, Bug fixes, enhancements.
5525
5526Severity: MEDIUM
5527
5528When building NTP from source, there is a new configure option
5529available, --enable-dynamic-interleave.  More information on this below.
5530
5531Also note that ntp-4.2.8p7 logs more "unexpected events" than previous
5532versions of ntp.  These events have almost certainly happened in the
5533past, it's just that they were silently counted and not logged.  With
5534the increasing awareness around security, we feel it's better to clearly
5535log these events to help detect abusive behavior.  This increased
5536logging can also help detect other problems, too.
5537
5538In addition to bug fixes and enhancements, this release fixes the
5539following 9 low- and medium-severity vulnerabilities:
5540
5541* Improve NTP security against buffer comparison timing attacks,
5542  AKA: authdecrypt-timing
5543   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5544   References: Sec 2879 / CVE-2016-1550
5545   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5546	4.3.0 up to, but not including 4.3.92
5547   CVSSv2: LOW 2.6 - (AV:L/AC:H/Au:N/C:P/I:P/A:N)
5548   CVSSv3: MED 4.0 - CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
5549   Summary: Packet authentication tests have been performed using
5550	memcmp() or possibly bcmp(), and it is potentially possible
5551	for a local or perhaps LAN-based attacker to send a packet with
5552	an authentication payload and indirectly observe how much of
5553	the digest has matched.
5554   Mitigation:
5555	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5556	    or the NTP Public Services Project Download Page.
5557	Properly monitor your ntpd instances.
5558   Credit: This weakness was discovered independently by Loganaden
5559   	Velvindron, and Matthew Van Gundy and Stephen Gray of Cisco ASIG.
5560
5561* Zero origin timestamp bypass: Additional KoD checks.
5562   References: Sec 2945 / Sec 2901 / CVE-2015-8138
5563   Affects: All ntp-4 releases up to, but not including 4.2.8p7,
5564   Summary: Improvements to the fixes incorporated in t 4.2.8p6 and 4.3.92.
5565
5566* peer associations were broken by the fix for NtpBug2899
5567   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5568   References: Sec 2952 / CVE-2015-7704
5569   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5570   	4.3.0 up to, but not including 4.3.92
5571   CVSSv2: MED 4.3 - (AV:N/AC:M/Au:N/C:N/I:N/A:P)
5572   Summary: The fix for NtpBug2952 in ntp-4.2.8p5 to address broken peer
5573   	associations did not address all of the issues.
5574   Mitigation:
5575        Implement BCP-38.
5576        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5577	    or the NTP Public Services Project Download Page
5578        If you can't upgrade, use "server" associations instead of
5579	    "peer" associations.
5580        Monitor your ntpd instances.
5581   Credit: This problem was discovered by Michael Tatarinov.
5582
5583* Validate crypto-NAKs, AKA: CRYPTO-NAK DoS
5584   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5585   References: Sec 3007 / CVE-2016-1547 / VU#718152
5586   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5587	4.3.0 up to, but not including 4.3.92
5588   CVSS2: MED 4.3 - (AV:N/AC:M/Au:N/C:N/I:N/A:P)
5589   CVSS3: MED 3.7 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
5590   Summary: For ntp-4 versions up to but not including ntp-4.2.8p7, an
5591	off-path attacker can cause a preemptable client association to
5592	be demobilized by sending a crypto NAK packet to a victim client
5593	with a spoofed source address of an existing associated peer.
5594	This is true even if authentication is enabled.
5595
5596	Furthermore, if the attacker keeps sending crypto NAK packets,
5597	for example one every second, the victim never has a chance to
5598	reestablish the association and synchronize time with that
5599	legitimate server.
5600
5601	For ntp-4.2.8 thru ntp-4.2.8p6 there is less risk because more
5602	stringent checks are performed on incoming packets, but there
5603	are still ways to exploit this vulnerability in versions before
5604	ntp-4.2.8p7.
5605   Mitigation:
5606	Implement BCP-38.
5607	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5608	    or the NTP Public Services Project Download Page
5609	Properly monitor your ntpd instances
5610   Credit: This weakness was discovered by Stephen Gray and
5611   	Matthew Van Gundy of Cisco ASIG.
5612
5613* ctl_getitem() return value not always checked
5614   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5615   References: Sec 3008 / CVE-2016-2519
5616   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5617	4.3.0 up to, but not including 4.3.92
5618   CVSSv2: MED 4.9 - (AV:N/AC:H/Au:S/C:N/I:N/A:C)
5619   CVSSv3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
5620   Summary: ntpq and ntpdc can be used to store and retrieve information
5621   	in ntpd. It is possible to store a data value that is larger
5622	than the size of the buffer that the ctl_getitem() function of
5623	ntpd uses to report the return value. If the length of the
5624	requested data value returned by ctl_getitem() is too large,
5625	the value NULL is returned instead. There are 2 cases where the
5626	return value from ctl_getitem() was not directly checked to make
5627	sure it's not NULL, but there are subsequent INSIST() checks
5628	that make sure the return value is not NULL. There are no data
5629	values ordinarily stored in ntpd that would exceed this buffer
5630	length. But if one has permission to store values and one stores
5631	a value that is "too large", then ntpd will abort if an attempt
5632	is made to read that oversized value.
5633    Mitigation:
5634        Implement BCP-38.
5635        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5636	    or the NTP Public Services Project Download Page
5637        Properly monitor your ntpd instances.
5638    Credit: This weakness was discovered by Yihan Lian of the Cloud
5639    	Security Team, Qihoo 360.
5640
5641* Crafted addpeer with hmode > 7 causes array wraparound with MATCH_ASSOC
5642   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5643   References: Sec 3009 / CVE-2016-2518 / VU#718152
5644   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5645	4.3.0 up to, but not including 4.3.92
5646   CVSS2: LOW 2.1 - (AV:N/AC:H/Au:S/C:N/I:N/A:P)
5647   CVSS3: LOW 2.0 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
5648   Summary: Using a crafted packet to create a peer association with
5649   	hmode > 7 causes the MATCH_ASSOC() lookup to make an
5650	out-of-bounds reference.
5651   Mitigation:
5652	Implement BCP-38.
5653	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5654	    or the NTP Public Services Project Download Page
5655	Properly monitor your ntpd instances
5656   Credit: This weakness was discovered by Yihan Lian of the Cloud
5657   	Security Team, Qihoo 360.
5658
5659* remote configuration trustedkey/requestkey/controlkey values are not
5660	properly validated
5661   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5662   References: Sec 3010 / CVE-2016-2517 / VU#718152
5663   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5664	4.3.0 up to, but not including 4.3.92
5665   CVSS2: MED 4.9 - (AV:N/AC:H/Au:S/C:N/I:N/A:C)
5666   CVSS3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
5667   Summary: If ntpd was expressly configured to allow for remote
5668   	configuration, a malicious user who knows the controlkey for
5669	ntpq or the requestkey for ntpdc (if mode7 is expressly enabled)
5670	can create a session with ntpd and then send a crafted packet to
5671	ntpd that will change the value of the trustedkey, controlkey,
5672	or requestkey to a value that will prevent any subsequent
5673	authentication with ntpd until ntpd is restarted.
5674   Mitigation:
5675	Implement BCP-38.
5676	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5677	    or the NTP Public Services Project Download Page
5678	Properly monitor your ntpd instances
5679   Credit: This weakness was discovered by Yihan Lian of the Cloud
5680   	Security Team, Qihoo 360.
5681
5682* Duplicate IPs on unconfig directives will cause an assertion botch in ntpd
5683   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5684   References: Sec 3011 / CVE-2016-2516 / VU#718152
5685   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5686   	4.3.0 up to, but not including 4.3.92
5687   CVSS2: MED 6.3 - (AV:N/AC:M/Au:S/C:N/I:N/A:C)
5688   CVSS3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
5689   Summary: If ntpd was expressly configured to allow for remote
5690   	configuration, a malicious user who knows the controlkey for
5691	ntpq or the requestkey for ntpdc (if mode7 is expressly enabled)
5692	can create a session with ntpd and if an existing association is
5693	unconfigured using the same IP twice on the unconfig directive
5694	line, ntpd will abort.
5695   Mitigation:
5696	Implement BCP-38.
5697	Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5698	    or the NTP Public Services Project Download Page
5699	Properly monitor your ntpd instances
5700   Credit: This weakness was discovered by Yihan Lian of the Cloud
5701   	Security Team, Qihoo 360.
5702
5703* Refclock impersonation vulnerability
5704   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5705   References: Sec 3020 / CVE-2016-1551
5706   Affects: On a very limited number of OSes, all NTP releases up to but
5707	not including 4.2.8p7, and 4.3.0 up to but not including 4.3.92.
5708	By "very limited number of OSes" we mean no general-purpose OSes
5709	have yet been identified that have this vulnerability.
5710   CVSSv2: LOW 2.6 - (AV:N/AC:H/Au:N/C:N/I:P/A:N)
5711   CVSSv3: LOW 3.7 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
5712   Summary: While most OSes implement martian packet filtering in their
5713   	network stack, at least regarding 127.0.0.0/8, some will allow
5714	packets claiming to be from 127.0.0.0/8 that arrive over a
5715	physical network. On these OSes, if ntpd is configured to use a
5716	reference clock an attacker can inject packets over the network
5717	that look like they are coming from that reference clock.
5718   Mitigation:
5719        Implement martian packet filtering and BCP-38.
5720        Configure ntpd to use an adequate number of time sources.
5721        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5722	    or the NTP Public Services Project Download Page
5723        If you are unable to upgrade and if you are running an OS that
5724	    has this vulnerability, implement martian packet filters and
5725	    lobby your OS vendor to fix this problem, or run your
5726	    refclocks on computers that use OSes that are not vulnerable
5727	    to these attacks and have your vulnerable machines get their
5728	    time from protected resources.
5729        Properly monitor your ntpd instances.
5730   Credit: This weakness was discovered by Matt Street and others of
5731   	Cisco ASIG.
5732
5733The following issues were fixed in earlier releases and contain
5734improvements in 4.2.8p7:
5735
5736* Clients that receive a KoD should validate the origin timestamp field.
5737   References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
5738   Affects: All ntp-4 releases up to, but not including 4.2.8p7,
5739   Summary: Improvements to the fixes incorporated into 4.2.8p4 and 4.3.77.
5740
5741* Skeleton key: passive server with trusted key can serve time.
5742   References: Sec 2936 / CVE-2015-7974
5743   Affects: All ntp-4 releases up to, but not including 4.2.8p7,
5744   Summary: Improvements to the fixes incorporated in t 4.2.8p6 and 4.3.90.
5745
5746Two other vulnerabilities have been reported, and the mitigations
5747for these are as follows:
5748
5749* Interleave-pivot
5750   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5751   References: Sec 2978 / CVE-2016-1548
5752   Affects: All ntp-4 releases.
5753   CVSSv2: MED 6.4 - (AV:N/AC:L/Au:N/C:N/I:P/A:P)
5754   CVSSv3: MED 7.2 - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L
5755   Summary: It is possible to change the time of an ntpd client or deny
5756   	service to an ntpd client by forcing it to change from basic
5757	client/server mode to interleaved symmetric mode. An attacker
5758	can spoof a packet from a legitimate ntpd server with an origin
5759	timestamp that matches the peer->dst timestamp recorded for that
5760	server. After making this switch, the client will reject all
5761	future legitimate server responses. It is possible to force the
5762	victim client to move time after the mode has been changed.
5763	ntpq gives no indication that the mode has been switched.
5764   Mitigation:
5765        Implement BCP-38.
5766        Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
5767	    or the NTP Public Services Project Download Page.  These
5768	    versions will not dynamically "flip" into interleave mode
5769	    unless configured to do so.
5770        Properly monitor your ntpd instances.
5771   Credit: This weakness was discovered by Miroslav Lichvar of RedHat
5772   	and separately by Jonathan Gardner of Cisco ASIG.
5773
5774* Sybil vulnerability: ephemeral association attack
5775   Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
5776   References: Sec 3012 / CVE-2016-1549
5777   Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
5778   	4.3.0 up to, but not including 4.3.92
5779   CVSSv2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
5780   CVSS3v: MED 5.3 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
5781   Summary: ntpd can be vulnerable to Sybil attacks. If one is not using
5782   	the feature introduced in ntp-4.2.8p6 allowing an optional 4th
5783	field in the ntp.keys file to specify which IPs can serve time,
5784	a malicious authenticated peer can create arbitrarily-many
5785	ephemeral associations in order to win the clock selection of
5786	ntpd and modify a victim's clock.
5787   Mitigation:
5788        Implement BCP-38.
5789        Use the 4th field in the ntp.keys file to specify which IPs
5790	    can be time servers.
5791        Properly monitor your ntpd instances.
5792   Credit: This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
5793
5794Other fixes:
5795
5796* [Bug 2831]  Segmentation Fault in DNS lookup during startup. perlinger@ntp.org
5797  - fixed yet another race condition in the threaded resolver code.
5798* [Bug 2858] bool support.  Use stdbool.h when available.  HStenn.
5799* [Bug 2879] Improve NTP security against timing attacks. perlinger@ntp.org
5800  - integrated patches by Loganaden Velvidron <logan@ntp.org>
5801    with some modifications & unit tests
5802* [Bug 2960] async name resolution fixes for chroot() environments.
5803  Reinhard Max.
5804* [Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile. perlinger@ntp.org
5805* [Bug 2995] Fixes to compile on Windows
5806* [Bug 2999] out-of-bounds access in 'is_safe_filename()'. perlinger@ntp.org
5807* [Bug 3013] Fix for ssl_init.c SHA1 test. perlinger@ntp.org
5808  - Patch provided by Ch. Weisgerber
5809* [Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
5810  - A change related to [Bug 2853] forbids trailing white space in
5811    remote config commands. perlinger@ntp.org
5812* [Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
5813  - report and patch from Aleksandr Kostikov.
5814  - Overhaul of Windows IO completion port handling. perlinger@ntp.org
5815* [Bug 3022] authkeys.c should be refactored. perlinger@ntp.org
5816  - fixed memory leak in access list (auth[read]keys.c)
5817  - refactored handling of key access lists (auth[read]keys.c)
5818  - reduced number of error branches (authreadkeys.c)
5819* [Bug 3023] ntpdate cannot correct dates in the future. perlinger@ntp.org
5820* [Bug 3030] ntpq needs a general way to specify refid output format.  HStenn.
5821* [Bug 3031] ntp broadcastclient unable to synchronize to an server
5822             when the time of server changed. perlinger@ntp.org
5823  - Check the initial delay calculation and reject/unpeer the broadcast
5824    server if the delay exceeds 50ms. Retry again after the next
5825    broadcast packet.
5826* [Bug 3036] autokey trips an INSIST in authistrustedip().  Harlan Stenn.
5827* Document ntp.key's optional IP list in authenetic.html.  Harlan Stenn.
5828* Update html/xleave.html documentation.  Harlan Stenn.
5829* Update ntp.conf documentation.  Harlan Stenn.
5830* Fix some Credit: attributions in the NEWS file.  Harlan Stenn.
5831* Fix typo in html/monopt.html.  Harlan Stenn.
5832* Add README.pullrequests.  Harlan Stenn.
5833* Cleanup to include/ntp.h.  Harlan Stenn.
5834
5835New option to 'configure':
5836
5837While looking in to the issues around Bug 2978, the "interleave pivot"
5838issue, it became clear that there are some intricate and unresolved
5839issues with interleave operations.  We also realized that the interleave
5840protocol was never added to the NTPv4 Standard, and it should have been.
5841
5842Interleave mode was first released in July of 2008, and can be engaged
5843in two ways.  Any 'peer' and 'broadcast' lines in the ntp.conf file may
5844contain the 'xleave' option, which will expressly enable interlave mode
5845for that association.  Additionally, if a time packet arrives and is
5846found inconsistent with normal protocol behavior but has certain
5847characteristics that are compatible with interleave mode, NTP will
5848dynamically switch to interleave mode.  With sufficient knowledge, an
5849attacker can send a crafted forged packet to an NTP instance that
5850triggers only one side to enter interleaved mode.
5851
5852To prevent this attack until we can thoroughly document, describe,
5853fix, and test the dynamic interleave mode, we've added a new
5854'configure' option to the build process:
5855
5856 --enable-dynamic-interleave
5857
5858This option controls whether or not NTP will, if conditions are right,
5859engage dynamic interleave mode.  Dynamic interleave mode is disabled by
5860default in ntp-4.2.8p7.
5861
5862---
5863NTP 4.2.8p6 (Harlan Stenn <stenn@ntp.org>, 2016/01/20)
5864
5865Focus: Security, Bug fixes, enhancements.
5866
5867Severity: MEDIUM
5868
5869In addition to bug fixes and enhancements, this release fixes the
5870following 1 low- and 8 medium-severity vulnerabilities:
5871
5872* Potential Infinite Loop in 'ntpq'
5873   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
5874   References: Sec 2548 / CVE-2015-8158
5875   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
5876	4.3.0 up to, but not including 4.3.90
5877   CVSS2: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
5878   CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
5879   Summary: 'ntpq' processes incoming packets in a loop in 'getresponse()'.
5880	The loop's only stopping conditions are receiving a complete and
5881	correct response or hitting a small number of error conditions.
5882	If the packet contains incorrect values that don't trigger one of
5883	the error conditions, the loop continues to receive new packets.
5884	Note well, this is an attack against an instance of 'ntpq', not
5885	'ntpd', and this attack requires the attacker to do one of the
5886	following:
5887	* Own a malicious NTP server that the client trusts
5888	* Prevent a legitimate NTP server from sending packets to
5889	    the 'ntpq' client
5890	* MITM the 'ntpq' communications between the 'ntpq' client
5891	    and the NTP server
5892   Mitigation:
5893	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
5894	or the NTP Public Services Project Download Page
5895   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
5896
5897* 0rigin: Zero Origin Timestamp Bypass
5898   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
5899   References: Sec 2945 / CVE-2015-8138
5900   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
5901	4.3.0 up to, but not including 4.3.90
5902   CVSS2: (AV:N/AC:L/Au:N/C:N/I:P/A:N) Base Score: 5.0 - MEDIUM
5903   CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
5904	(3.7 - LOW if you score AC:L)
5905   Summary: To distinguish legitimate peer responses from forgeries, a
5906	client attempts to verify a response packet by ensuring that the
5907	origin timestamp in the packet matches the origin timestamp it
5908	transmitted in its last request.  A logic error exists that
5909	allows packets with an origin timestamp of zero to bypass this
5910	check whenever there is not an outstanding request to the server.
5911   Mitigation:
5912	Configure 'ntpd' to get time from multiple sources.
5913	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
5914	    or the NTP Public Services Project Download Page.
5915	Monitor your 'ntpd' instances.
5916   Credit: This weakness was discovered by Matthey Van Gundy and
5917	Jonathan Gardner of Cisco ASIG.
5918
5919* Stack exhaustion in recursive traversal of restriction list
5920   Date Resolved: Stable (4.2.8p6) 19 Jan 2016
5921   References: Sec 2940 / CVE-2015-7978
5922   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
5923	4.3.0 up to, but not including 4.3.90
5924   CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
5925   Summary: An unauthenticated 'ntpdc reslist' command can cause a
5926   	segmentation fault in ntpd by exhausting the call stack.
5927   Mitigation:
5928	Implement BCP-38.
5929	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
5930	    or the NTP Public Services Project Download Page.
5931	If you are unable to upgrade:
5932            In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
5933	    If you must enable mode 7:
5934		configure the use of a 'requestkey' to control who can
5935		    issue mode 7 requests.
5936		configure 'restrict noquery' to further limit mode 7
5937		    requests to trusted sources.
5938		Monitor your ntpd instances.
5939   Credit: This weakness was discovered by Stephen Gray at Cisco ASIG.
5940
5941* Off-path Denial of Service (!DoS) attack on authenticated broadcast mode
5942   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
5943   References: Sec 2942 / CVE-2015-7979
5944   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
5945	4.3.0 up to, but not including 4.3.90
5946   CVSS: (AV:N/AC:M/Au:N/C:N/I:P/A:P) Base Score: 5.8
5947   Summary: An off-path attacker can send broadcast packets with bad
5948	authentication (wrong key, mismatched key, incorrect MAC, etc)
5949	to broadcast clients. It is observed that the broadcast client
5950	tears down the association with the broadcast server upon
5951	receiving just one bad packet.
5952   Mitigation:
5953	Implement BCP-38.
5954	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
5955	or the NTP Public Services Project Download Page.
5956	Monitor your 'ntpd' instances.
5957	If this sort of attack is an active problem for you, you have
5958	    deeper problems to investigate.  In this case also consider
5959	    having smaller NTP broadcast domains.
5960   Credit: This weakness was discovered by Aanchal Malhotra of Boston
5961   	University.
5962
5963* reslist NULL pointer dereference
5964   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
5965   References: Sec 2939 / CVE-2015-7977
5966   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
5967	4.3.0 up to, but not including 4.3.90
5968   CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
5969   Summary: An unauthenticated 'ntpdc reslist' command can cause a
5970	segmentation fault in ntpd by causing a NULL pointer dereference.
5971   Mitigation:
5972	Implement BCP-38.
5973	Upgrade to 4.2.8p6, or later, from NTP Project Download Page or
5974	the NTP Public Services Project Download Page.
5975	If you are unable to upgrade:
5976	    mode 7 is disabled by default.  Don't enable it.
5977	    If you must enable mode 7:
5978		configure the use of a 'requestkey' to control who can
5979		    issue mode 7 requests.
5980		configure 'restrict noquery' to further limit mode 7
5981		    requests to trusted sources.
5982	Monitor your ntpd instances.
5983   Credit: This weakness was discovered by Stephen Gray of Cisco ASIG.
5984
5985* 'ntpq saveconfig' command allows dangerous characters in filenames.
5986   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
5987   References: Sec 2938 / CVE-2015-7976
5988   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
5989	4.3.0 up to, but not including 4.3.90
5990   CVSS: (AV:N/AC:L/Au:S/C:N/I:P/A:N) Base Score: 4.0 - MEDIUM
5991   Summary: The ntpq saveconfig command does not do adequate filtering
5992   	of special characters from the supplied filename.
5993	Note well: The ability to use the saveconfig command is controlled
5994	by the 'restrict nomodify' directive, and the recommended default
5995	configuration is to disable this capability.  If the ability to
5996	execute a 'saveconfig' is required, it can easily (and should) be
5997	limited and restricted to a known small number of IP addresses.
5998   Mitigation:
5999	Implement BCP-38.
6000	use 'restrict default nomodify' in your 'ntp.conf' file.
6001	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page.
6002	If you are unable to upgrade:
6003	    build NTP with 'configure --disable-saveconfig' if you will
6004	    	never need this capability, or
6005	    use 'restrict default nomodify' in your 'ntp.conf' file.  Be
6006		careful about what IPs have the ability to send 'modify'
6007		requests to 'ntpd'.
6008	Monitor your ntpd instances.
6009	'saveconfig' requests are logged to syslog - monitor your syslog files.
6010   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
6011
6012* nextvar() missing length check in ntpq
6013   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
6014   References: Sec 2937 / CVE-2015-7975
6015   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
6016	4.3.0 up to, but not including 4.3.90
6017   CVSS: (AV:L/AC:H/Au:N/C:N/I:N/A:P) Base Score: 1.2 - LOW
6018	If you score A:C, this becomes 4.0.
6019   CVSSv3: (CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) Base Score 2.9, LOW
6020   Summary: ntpq may call nextvar() which executes a memcpy() into the
6021	name buffer without a proper length check against its maximum
6022	length of 256 bytes. Note well that we're taking about ntpq here.
6023	The usual worst-case effect of this vulnerability is that the
6024	specific instance of ntpq will crash and the person or process
6025	that did this will have stopped themselves.
6026   Mitigation:
6027	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
6028	    or the NTP Public Services Project Download Page.
6029	If you are unable to upgrade:
6030	    If you have scripts that feed input to ntpq make sure there are
6031		some sanity checks on the input received from the "outside".
6032	    This is potentially more dangerous if ntpq is run as root.
6033   Credit: This weakness was discovered by Jonathan Gardner at Cisco ASIG.
6034
6035* Skeleton Key: Any trusted key system can serve time
6036   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
6037   References: Sec 2936 / CVE-2015-7974
6038   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
6039	4.3.0 up to, but not including 4.3.90
6040   CVSS: (AV:N/AC:H/Au:S/C:N/I:C/A:N) Base Score: 4.9
6041   Summary: Symmetric key encryption uses a shared trusted key. The
6042	reported title for this issue was "Missing key check allows
6043	impersonation between authenticated peers" and the report claimed
6044	"A key specified only for one server should only work to
6045	authenticate that server, other trusted keys should be refused."
6046	Except there has never been any correlation between this trusted
6047	key and server v. clients machines and there has never been any
6048	way to specify a key only for one server. We have treated this as
6049	an enhancement request, and ntp-4.2.8p6 includes other checks and
6050	tests to strengthen clients against attacks coming from broadcast
6051	servers.
6052   Mitigation:
6053	Implement BCP-38.
6054	If this scenario represents a real or a potential issue for you,
6055	    upgrade to 4.2.8p6, or later, from the NTP Project Download
6056	    Page or the NTP Public Services Project Download Page, and
6057	    use the new field in the ntp.keys file that specifies the list
6058	    of IPs that are allowed to serve time. Note that this alone
6059	    will not protect against time packets with forged source IP
6060	    addresses, however other changes in ntp-4.2.8p6 provide
6061	    significant mitigation against broadcast attacks. MITM attacks
6062	    are a different story.
6063	If you are unable to upgrade:
6064	    Don't use broadcast mode if you cannot monitor your client
6065	    	servers.
6066	    If you choose to use symmetric keys to authenticate time
6067	    	packets in a hostile environment where ephemeral time
6068		servers can be created, or if it is expected that malicious
6069		time servers will participate in an NTP broadcast domain,
6070		limit the number of participating systems that participate
6071		in the shared-key group.
6072	Monitor your ntpd instances.
6073   Credit: This weakness was discovered by Matt Street of Cisco ASIG.
6074
6075* Deja Vu: Replay attack on authenticated broadcast mode
6076   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
6077   References: Sec 2935 / CVE-2015-7973
6078   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
6079   	4.3.0 up to, but not including 4.3.90
6080   CVSS: (AV:A/AC:M/Au:N/C:N/I:P/A:P) Base Score: 4.3 - MEDIUM
6081   Summary: If an NTP network is configured for broadcast operations then
6082   	either a man-in-the-middle attacker or a malicious participant
6083	that has the same trusted keys as the victim can replay time packets.
6084   Mitigation:
6085	Implement BCP-38.
6086	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
6087	    or the NTP Public Services Project Download Page.
6088	If you are unable to upgrade:
6089	    Don't use broadcast mode if you cannot monitor your client servers.
6090	Monitor your ntpd instances.
6091   Credit: This weakness was discovered by Aanchal Malhotra of Boston
6092	University.
6093
6094Other fixes:
6095
6096* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
6097* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
6098  - applied patch by shenpeng11@huawei.com with minor adjustments
6099* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
6100* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
6101* [Bug 2892] Several test cases assume IPv6 capabilities even when
6102             IPv6 is disabled in the build. perlinger@ntp.org
6103  - Found this already fixed, but validation led to cleanup actions.
6104* [Bug 2905] DNS lookups broken. perlinger@ntp.org
6105  - added limits to stack consumption, fixed some return code handling
6106* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
6107  - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
6108  - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
6109* [Bug 2980] reduce number of warnings. perlinger@ntp.org
6110  - integrated several patches from Havard Eidnes (he@uninett.no)
6111* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
6112  - implement 'auth_log2()' using integer bithack instead of float calculation
6113* Make leapsec_query debug messages less verbose.  Harlan Stenn.
6114
6115---
6116NTP 4.2.8p5 (Harlan Stenn <stenn@ntp.org>, 2016/01/07)
6117
6118Focus: Security, Bug fixes, enhancements.
6119
6120Severity: MEDIUM
6121
6122In addition to bug fixes and enhancements, this release fixes the
6123following medium-severity vulnerability:
6124
6125* Small-step/big-step.  Close the panic gate earlier.
6126    References: Sec 2956, CVE-2015-5300
6127    Affects: All ntp-4 releases up to, but not including 4.2.8p5, and
6128	4.3.0 up to, but not including 4.3.78
6129    CVSS3: (AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:N/A:L) Base Score: 4.0, MEDIUM
6130    Summary: If ntpd is always started with the -g option, which is
6131	common and against long-standing recommendation, and if at the
6132	moment ntpd is restarted an attacker can immediately respond to
6133	enough requests from enough sources trusted by the target, which
6134	is difficult and not common, there is a window of opportunity
6135	where the attacker can cause ntpd to set the time to an
6136	arbitrary value. Similarly, if an attacker is able to respond
6137	to enough requests from enough sources trusted by the target,
6138	the attacker can cause ntpd to abort and restart, at which
6139	point it can tell the target to set the time to an arbitrary
6140	value if and only if ntpd was re-started against long-standing
6141	recommendation with the -g flag, or if ntpd was not given the
6142	-g flag, the attacker can move the target system's time by at
6143	most 900 seconds' time per attack.
6144    Mitigation:
6145	Configure ntpd to get time from multiple sources.
6146	Upgrade to 4.2.8p5, or later, from the NTP Project Download
6147	    Page or the NTP Public Services Project Download Page
6148	As we've long documented, only use the -g option to ntpd in
6149	    cold-start situations.
6150	Monitor your ntpd instances.
6151    Credit: This weakness was discovered by Aanchal Malhotra,
6152	Isaac E. Cohen, and Sharon Goldberg at Boston University.
6153
6154    NOTE WELL: The -g flag disables the limit check on the panic_gate
6155	in ntpd, which is 900 seconds by default. The bug identified by
6156	the researchers at Boston University is that the panic_gate
6157	check was only re-enabled after the first change to the system
6158	clock that was greater than 128 milliseconds, by default. The
6159	correct behavior is that the panic_gate check should be
6160	re-enabled after any initial time correction.
6161
6162	If an attacker is able to inject consistent but erroneous time
6163	responses to your systems via the network or "over the air",
6164	perhaps by spoofing radio, cellphone, or navigation satellite
6165	transmissions, they are in a great position to affect your
6166	system's clock. There comes a point where your very best
6167	defenses include:
6168
6169	    Configure ntpd to get time from multiple sources.
6170	    Monitor your ntpd instances.
6171
6172Other fixes:
6173
6174* Coverity submission process updated from Coverity 5 to Coverity 7.
6175  The NTP codebase has been undergoing regular Coverity scans on an
6176  ongoing basis since 2006.  As part of our recent upgrade from
6177  Coverity 5 to Coverity 7, Coverity identified 16 nits in some of
6178  the newly-written Unity test programs.  These were fixed.
6179* [Bug 2829] Clean up pipe_fds in ntpd.c  perlinger@ntp.org
6180* [Bug 2887] stratum -1 config results as showing value 99
6181  - fudge stratum should only accept values [0..16]. perlinger@ntp.org
6182* [Bug 2932] Update leapsecond file info in miscopt.html.  CWoodbury, HStenn.
6183* [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in.  HMurray
6184* [Bug 2944] errno is not preserved properly in ntpdate after sendto call.
6185  - applied patch by Christos Zoulas.  perlinger@ntp.org
6186* [Bug 2952] Peer associations broken by fix for Bug 2901/CVE-2015-7704.
6187* [Bug 2954] Version 4.2.8p4 crashes on startup on some OSes.
6188  - fixed data race conditions in threaded DNS worker. perlinger@ntp.org
6189  - limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
6190* [Bug 2957] 'unsigned int' vs 'size_t' format clash. perlinger@ntp.org
6191  - accept key file only if there are no parsing errors
6192  - fixed size_t/u_int format clash
6193  - fixed wrong use of 'strlcpy'
6194* [Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
6195* [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets. perlinger@ntp.org
6196  - fixed several other warnings (cast-alignment, missing const, missing prototypes)
6197  - promote use of 'size_t' for values that express a size
6198  - use ptr-to-const for read-only arguments
6199  - make sure SOCKET values are not truncated (win32-specific)
6200  - format string fixes
6201* [Bug 2965] Local clock didn't work since 4.2.8p4.  Martin Burnicki.
6202* [Bug 2967] ntpdate command suffers an assertion failure
6203  - fixed ntp_rfc2553.c to return proper address length. perlinger@ntp.org
6204* [Bug 2969]  Seg fault from ntpq/mrulist when looking at server with
6205              lots of clients. perlinger@ntp.org
6206* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
6207  - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
6208* Unity cleanup for FreeBSD-6.4.  Harlan Stenn.
6209* Unity test cleanup.  Harlan Stenn.
6210* Libevent autoconf pthread fixes for FreeBSD-10.  Harlan Stenn.
6211* Header cleanup in tests/sandbox/uglydate.c.  Harlan Stenn.
6212* Header cleanup in tests/libntp/sfptostr.c.  Harlan Stenn.
6213* Quiet a warning from clang.  Harlan Stenn.
6214
6215---
6216NTP 4.2.8p4 (Harlan Stenn <stenn@ntp.org>, 2015/10/21)
6217
6218Focus: Security, Bug fixes, enhancements.
6219
6220Severity: MEDIUM
6221
6222In addition to bug fixes and enhancements, this release fixes the
6223following 13 low- and medium-severity vulnerabilities:
6224
6225* Incomplete vallen (value length) checks in ntp_crypto.c, leading
6226  to potential crashes or potential code injection/information leakage.
6227
6228    References: Sec 2899, Sec 2671, CVE-2015-7691, CVE-2015-7692, CVE-2015-7702
6229    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
6230    	and 4.3.0 up to, but not including 4.3.77
6231    CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
6232    Summary: The fix for CVE-2014-9750 was incomplete in that there were
6233    	certain code paths where a packet with particular autokey operations
6234	that contained malicious data was not always being completely
6235	validated. Receipt of these packets can cause ntpd to crash.
6236    Mitigation:
6237        Don't use autokey.
6238	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6239	    Page or the NTP Public Services Project Download Page
6240	Monitor your ntpd instances.
6241	Credit: This weakness was discovered by Tenable Network Security.
6242
6243* Clients that receive a KoD should validate the origin timestamp field.
6244
6245    References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
6246    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
6247	and 4.3.0 up to, but not including 4.3.77
6248    CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3-5.0 at worst
6249    Summary: An ntpd client that honors Kiss-of-Death responses will honor
6250    	KoD messages that have been forged by an attacker, causing it to
6251	delay or stop querying its servers for time updates. Also, an
6252	attacker can forge packets that claim to be from the target and
6253	send them to servers often enough that a server that implements
6254	KoD rate limiting will send the target machine a KoD response to
6255	attempt to reduce the rate of incoming packets, or it may also
6256	trigger a firewall block at the server for packets from the target
6257	machine. For either of these attacks to succeed, the attacker must
6258	know what servers the target is communicating with. An attacker
6259	can be anywhere on the Internet and can frequently learn the
6260	identity of the target's time source by sending the target a
6261	time query.
6262    Mitigation:
6263        Implement BCP-38.
6264	Upgrade to 4.2.8p4, or later, from the NTP Project Download Page
6265	    or the NTP Public Services Project Download Page
6266	If you can't upgrade, restrict who can query ntpd to learn who
6267	    its servers are, and what IPs are allowed to ask your system
6268	    for the time. This mitigation is heavy-handed.
6269	Monitor your ntpd instances.
6270    Note:
6271    	4.2.8p4 protects against the first attack. For the second attack,
6272    	all we can do is warn when it is happening, which we do in 4.2.8p4.
6273    Credit: This weakness was discovered by Aanchal Malhotra,
6274    	Issac E. Cohen, and Sharon Goldberg of Boston University.
6275
6276* configuration directives to change "pidfile" and "driftfile" should
6277  only be allowed locally.
6278
6279  References: Sec 2902 / CVE-2015-5196
6280  Affects: All ntp-4 releases up to, but not including 4.2.8p4,
6281	and 4.3.0 up to, but not including 4.3.77
6282   CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.2 worst case
6283   Summary: If ntpd is configured to allow for remote configuration,
6284	and if the (possibly spoofed) source IP address is allowed to
6285	send remote configuration requests, and if the attacker knows
6286	the remote configuration password, it's possible for an attacker
6287	to use the "pidfile" or "driftfile" directives to potentially
6288	overwrite other files.
6289   Mitigation:
6290	Implement BCP-38.
6291	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6292	    Page or the NTP Public Services Project Download Page
6293	If you cannot upgrade, don't enable remote configuration.
6294	If you must enable remote configuration and cannot upgrade,
6295	    remote configuration of NTF's ntpd requires:
6296	    - an explicitly configured trustedkey, and you should also
6297	    	configure a controlkey.
6298	    - access from a permitted IP. You choose the IPs.
6299	    - authentication. Don't disable it. Practice secure key safety.
6300	Monitor your ntpd instances.
6301   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
6302
6303* Slow memory leak in CRYPTO_ASSOC
6304
6305  References: Sec 2909 / CVE-2015-7701
6306  Affects: All ntp-4 releases that use autokey up to, but not
6307    including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
6308  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 0.0 best/usual case,
6309  	4.6 otherwise
6310  Summary: If ntpd is configured to use autokey, then an attacker can
6311	send packets to ntpd that will, after several days of ongoing
6312	attack, cause it to run out of memory.
6313  Mitigation:
6314	Don't use autokey.
6315	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6316	    Page or the NTP Public Services Project Download Page
6317	Monitor your ntpd instances.
6318  Credit: This weakness was discovered by Tenable Network Security.
6319
6320* mode 7 loop counter underrun
6321
6322  References:  Sec 2913 / CVE-2015-7848 / TALOS-CAN-0052
6323  Affects: All ntp-4 releases up to, but not including 4.2.8p4,
6324  	and 4.3.0 up to, but not including 4.3.77
6325  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
6326  Summary: If ntpd is configured to enable mode 7 packets, and if the
6327	use of mode 7 packets is not properly protected thru the use of
6328	the available mode 7 authentication and restriction mechanisms,
6329	and if the (possibly spoofed) source IP address is allowed to
6330	send mode 7 queries, then an attacker can send a crafted packet
6331	to ntpd that will cause it to crash.
6332  Mitigation:
6333	Implement BCP-38.
6334	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6335	    Page or the NTP Public Services Project Download Page.
6336	      If you are unable to upgrade:
6337	In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
6338	If you must enable mode 7:
6339	    configure the use of a requestkey to control who can issue
6340		mode 7 requests.
6341	    configure restrict noquery to further limit mode 7 requests
6342		to trusted sources.
6343	Monitor your ntpd instances.
6344Credit: This weakness was discovered by Aleksandar Nikolic of Cisco Talos.
6345
6346* memory corruption in password store
6347
6348  References: Sec 2916 / CVE-2015-7849 / TALOS-CAN-0054
6349  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
6350  CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.8, worst case
6351  Summary: If ntpd is configured to allow remote configuration, and if
6352	the (possibly spoofed) source IP address is allowed to send
6353	remote configuration requests, and if the attacker knows the
6354	remote configuration password or if ntpd was configured to
6355	disable authentication, then an attacker can send a set of
6356	packets to ntpd that may cause a crash or theoretically
6357	perform a code injection attack.
6358  Mitigation:
6359	Implement BCP-38.
6360	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6361	    Page or the NTP Public Services Project Download Page.
6362	If you are unable to upgrade, remote configuration of NTF's
6363	    ntpd requires:
6364		an explicitly configured "trusted" key. Only configure
6365			this if you need it.
6366		access from a permitted IP address. You choose the IPs.
6367		authentication. Don't disable it. Practice secure key safety.
6368	Monitor your ntpd instances.
6369  Credit: This weakness was discovered by Yves Younan of Cisco Talos.
6370
6371* Infinite loop if extended logging enabled and the logfile and
6372  keyfile are the same.
6373
6374    References: Sec 2917 / CVE-2015-7850 / TALOS-CAN-0055
6375    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
6376	and 4.3.0 up to, but not including 4.3.77
6377    CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
6378    Summary: If ntpd is configured to allow remote configuration, and if
6379	the (possibly spoofed) source IP address is allowed to send
6380	remote configuration requests, and if the attacker knows the
6381	remote configuration password or if ntpd was configured to
6382	disable authentication, then an attacker can send a set of
6383	packets to ntpd that will cause it to crash and/or create a
6384	potentially huge log file. Specifically, the attacker could
6385	enable extended logging, point the key file at the log file,
6386	and cause what amounts to an infinite loop.
6387    Mitigation:
6388	Implement BCP-38.
6389	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6390	    Page or the NTP Public Services Project Download Page.
6391	If you are unable to upgrade, remote configuration of NTF's ntpd
6392	  requires:
6393            an explicitly configured "trusted" key. Only configure this
6394	    	if you need it.
6395            access from a permitted IP address. You choose the IPs.
6396            authentication. Don't disable it. Practice secure key safety.
6397        Monitor your ntpd instances.
6398    Credit: This weakness was discovered by Yves Younan of Cisco Talos.
6399
6400* Potential path traversal vulnerability in the config file saving of
6401  ntpd on VMS.
6402
6403  References: Sec 2918 / CVE-2015-7851 / TALOS-CAN-0062
6404  Affects: All ntp-4 releases running under VMS up to, but not
6405	including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
6406  CVSS: (AV:N/AC:H/Au:M/C:N/I:P/A:C) Base Score: 5.2, worst case
6407  Summary: If ntpd is configured to allow remote configuration, and if
6408	the (possibly spoofed) IP address is allowed to send remote
6409	configuration requests, and if the attacker knows the remote
6410	configuration password or if ntpd was configured to disable
6411	authentication, then an attacker can send a set of packets to
6412	ntpd that may cause ntpd to overwrite files.
6413  Mitigation:
6414	Implement BCP-38.
6415	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6416	    Page or the NTP Public Services Project Download Page.
6417	If you are unable to upgrade, remote configuration of NTF's ntpd
6418	    requires:
6419		an explicitly configured "trusted" key. Only configure
6420			this if you need it.
6421		access from permitted IP addresses. You choose the IPs.
6422		authentication. Don't disable it. Practice key security safety.
6423        Monitor your ntpd instances.
6424    Credit: This weakness was discovered by Yves Younan of Cisco Talos.
6425
6426* ntpq atoascii() potential memory corruption
6427
6428  References: Sec 2919 / CVE-2015-7852 / TALOS-CAN-0063
6429  Affects: All ntp-4 releases running up to, but not including 4.2.8p4,
6430	and 4.3.0 up to, but not including 4.3.77
6431  CVSS: (AV:N/AC:H/Au:N/C:N/I:P/A:P) Base Score: 4.0, worst case
6432  Summary: If an attacker can figure out the precise moment that ntpq
6433	is listening for data and the port number it is listening on or
6434	if the attacker can provide a malicious instance ntpd that
6435	victims will connect to then an attacker can send a set of
6436	crafted mode 6 response packets that, if received by ntpq,
6437	can cause ntpq to crash.
6438  Mitigation:
6439	Implement BCP-38.
6440	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6441	    Page or the NTP Public Services Project Download Page.
6442	If you are unable to upgrade and you run ntpq against a server
6443	    and ntpq crashes, try again using raw mode. Build or get a
6444	    patched ntpq and see if that fixes the problem. Report new
6445	    bugs in ntpq or abusive servers appropriately.
6446	If you use ntpq in scripts, make sure ntpq does what you expect
6447	    in your scripts.
6448  Credit: This weakness was discovered by Yves Younan and
6449  	Aleksander Nikolich of Cisco Talos.
6450
6451* Invalid length data provided by a custom refclock driver could cause
6452  a buffer overflow.
6453
6454  References: Sec 2920 / CVE-2015-7853 / TALOS-CAN-0064
6455  Affects: Potentially all ntp-4 releases running up to, but not
6456	including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
6457	that have custom refclocks
6458  CVSS: (AV:L/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 usual case,
6459	5.9 unusual worst case
6460  Summary: A negative value for the datalen parameter will overflow a
6461	data buffer. NTF's ntpd driver implementations always set this
6462	value to 0 and are therefore not vulnerable to this weakness.
6463	If you are running a custom refclock driver in ntpd and that
6464	driver supplies a negative value for datalen (no custom driver
6465	of even minimal competence would do this) then ntpd would
6466	overflow a data buffer. It is even hypothetically possible
6467	in this case that instead of simply crashing ntpd the attacker
6468	could effect a code injection attack.
6469  Mitigation:
6470	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6471	    Page or the NTP Public Services Project Download Page.
6472	If you are unable to upgrade:
6473		If you are running custom refclock drivers, make sure
6474			the signed datalen value is either zero or positive.
6475	Monitor your ntpd instances.
6476  Credit: This weakness was discovered by Yves Younan of Cisco Talos.
6477
6478* Password Length Memory Corruption Vulnerability
6479
6480  References: Sec 2921 / CVE-2015-7854 / TALOS-CAN-0065
6481  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
6482  	4.3.0 up to, but not including 4.3.77
6483  CVSS: (AV:N/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 best case,
6484  	1.7 usual case, 6.8, worst case
6485  Summary: If ntpd is configured to allow remote configuration, and if
6486	the (possibly spoofed) source IP address is allowed to send
6487	remote configuration requests, and if the attacker knows the
6488	remote configuration password or if ntpd was (foolishly)
6489	configured to disable authentication, then an attacker can
6490	send a set of packets to ntpd that may cause it to crash,
6491	with the hypothetical possibility of a small code injection.
6492  Mitigation:
6493	Implement BCP-38.
6494	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6495	    Page or the NTP Public Services Project Download Page.
6496	If you are unable to upgrade, remote configuration of NTF's
6497	    ntpd requires:
6498		an explicitly configured "trusted" key. Only configure
6499			this if you need it.
6500		access from a permitted IP address. You choose the IPs.
6501		authentication. Don't disable it. Practice secure key safety.
6502	Monitor your ntpd instances.
6503  Credit: This weakness was discovered by Yves Younan and
6504  	Aleksander Nikolich of Cisco Talos.
6505
6506* decodenetnum() will ASSERT botch instead of returning FAIL on some
6507  bogus values.
6508
6509  References: Sec 2922 / CVE-2015-7855
6510  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
6511	4.3.0 up to, but not including 4.3.77
6512  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
6513  Summary: If ntpd is fed a crafted mode 6 or mode 7 packet containing
6514	an unusually long data value where a network address is expected,
6515	the decodenetnum() function will abort with an assertion failure
6516	instead of simply returning a failure condition.
6517  Mitigation:
6518	Implement BCP-38.
6519	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6520	    Page or the NTP Public Services Project Download Page.
6521	If you are unable to upgrade:
6522		mode 7 is disabled by default. Don't enable it.
6523		Use restrict noquery to limit who can send mode 6
6524			and mode 7 requests.
6525		Configure and use the controlkey and requestkey
6526			authentication directives to limit who can
6527			send mode 6 and mode 7 requests.
6528	Monitor your ntpd instances.
6529  Credit: This weakness was discovered by John D "Doug" Birdwell of IDA.org.
6530
6531* NAK to the Future: Symmetric association authentication bypass via
6532  crypto-NAK.
6533
6534  References: Sec 2941 / CVE-2015-7871
6535  Affects: All ntp-4 releases between 4.2.5p186 up to but not including
6536  	4.2.8p4, and 4.3.0 up to but not including 4.3.77
6537  CVSS: (AV:N/AC:L/Au:N/C:N/I:P/A:P) Base Score: 6.4
6538  Summary: Crypto-NAK packets can be used to cause ntpd to accept time
6539	from unauthenticated ephemeral symmetric peers by bypassing the
6540	authentication required to mobilize peer associations. This
6541	vulnerability appears to have been introduced in ntp-4.2.5p186
6542	when the code handling mobilization of new passive symmetric
6543	associations (lines 1103-1165) was refactored.
6544  Mitigation:
6545	Implement BCP-38.
6546	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6547	    Page or the NTP Public Services Project Download Page.
6548	If you are unable to upgrade:
6549		Apply the patch to the bottom of the "authentic" check
6550			block around line 1136 of ntp_proto.c.
6551	Monitor your ntpd instances.
6552  Credit: This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
6553
6554Backward-Incompatible changes:
6555* [Bug 2817] Default on Linux is now "rlimit memlock -1".
6556  While the general default of 32M is still the case, under Linux
6557  the default value has been changed to -1 (do not lock ntpd into
6558  memory).  A value of 0 means "lock ntpd into memory with whatever
6559  memory it needs." If your ntp.conf file has an explicit "rlimit memlock"
6560  value in it, that value will continue to be used.
6561
6562* [Bug 2886] Misspelling: "outlyer" should be "outlier".
6563  If you've written a script that looks for this case in, say, the
6564  output of ntpq, you probably want to change your regex matches
6565  from 'outlyer' to 'outl[iy]er'.
6566
6567New features in this release:
6568* 'rlimit memlock' now has finer-grained control.  A value of -1 means
6569  "don't lock ntpd into memore".  This is the default for Linux boxes.
6570  A value of 0 means "lock ntpd into memory" with no limits.  Otherwise
6571  the value is the number of megabytes of memory to lock.  The default
6572  is 32 megabytes.
6573
6574* The old Google Test framework has been replaced with a new framework,
6575  based on http://www.throwtheswitch.org/unity/ .
6576
6577Bug Fixes and Improvements:
6578* [Bug 2332] (reopened) Exercise thread cancellation once before dropping
6579  privileges and limiting resources in NTPD removes the need to link
6580  forcefully against 'libgcc_s' which does not always work. J.Perlinger
6581* [Bug 2595] ntpdate man page quirks.  Hal Murray, Harlan Stenn.
6582* [Bug 2625] Deprecate flag1 in local refclock.  Hal Murray, Harlan Stenn.
6583* [Bug 2817] Stop locking ntpd into memory by default under Linux.  H.Stenn.
6584* [Bug 2821] minor build issues: fixed refclock_gpsdjson.c.  perlinger@ntp.org
6585* [Bug 2823] ntpsweep with recursive peers option doesn't work.  H.Stenn.
6586* [Bug 2849] Systems with more than one default route may never
6587  synchronize.  Brian Utterback.  Note that this patch might need to
6588  be reverted once Bug 2043 has been fixed.
6589* [Bug 2864] 4.2.8p3 fails to compile on Windows. Juergen Perlinger
6590* [Bug 2866] segmentation fault at initgroups().  Harlan Stenn.
6591* [Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'. J.Perlinger
6592* [Bug 2873] libevent should not include .deps/ in the tarball.  H.Stenn
6593* [Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
6594* [Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS.  libevent must
6595  be configured for the distribution targets.  Harlan Stenn.
6596* [Bug 2883] ntpd crashes on exit with empty driftfile.  Miroslav Lichvar.
6597* [Bug 2886] Mis-spelling: "outlyer" should be "outlier".  dave@horsfall.org
6598* [Bug 2888] streamline calendar functions.  perlinger@ntp.org
6599* [Bug 2889] ntp-dev-4.3.67 does not build on Windows.  perlinger@ntp.org
6600* [Bug 2890] Ignore ENOBUFS on routing netlink socket.  Konstantin Khlebnikov.
6601* [Bug 2906] make check needs better support for pthreads.  Harlan Stenn.
6602* [Bug 2907] dist* build targets require our libevent/ to be enabled.  HStenn.
6603* [Bug 2912] no munlockall() under Windows.  David Taylor, Harlan Stenn.
6604* libntp/emalloc.c: Remove explicit include of stdint.h.  Harlan Stenn.
6605* Put Unity CPPFLAGS items in unity_config.h.  Harlan Stenn.
6606* tests/ntpd/g_leapsec.cpp typo fix.  Harlan Stenn.
6607* Phase 1 deprecation of google test in sntp/tests/.  Harlan Stenn.
6608* On some versions of HP-UX, inttypes.h does not include stdint.h.  H.Stenn.
6609* top_srcdir can change based on ntp v. sntp.  Harlan Stenn.
6610* sntp/tests/ function parameter list cleanup.  Damir Tomić.
6611* tests/libntp/ function parameter list cleanup.  Damir Tomić.
6612* tests/ntpd/ function parameter list cleanup.  Damir Tomić.
6613* sntp/unity/unity_config.h: handle stdint.h.  Harlan Stenn.
6614* sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris.  H.Stenn.
6615* tests/libntp/timevalops.c and timespecops.c fixed error printing.  D.Tomić.
6616* tests/libntp/ improvements in code and fixed error printing.  Damir Tomić.
6617* tests/libntp: a_md5encrypt.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
6618  caltontp.c, clocktime.c, humandate.c, hextolfp.c, decodenetnum.c - fixed
6619  formatting; first declaration, then code (C90); deleted unnecessary comments;
6620  changed from sprintf to snprintf; fixed order of includes. Tomasz Flendrich
6621* tests/libntp/lfpfunc.c remove unnecessary include, remove old comments,
6622  fix formatting, cleanup. Tomasz Flendrich
6623* tests/libntp/lfptostr.c remove unnecessary include, add consts, fix formatting.
6624  Tomasz Flendrich
6625* tests/libntp/statestr.c remove empty functions, remove unnecessary include,
6626  fix formatting. Tomasz Flendrich
6627* tests/libntp/modetoa.c fixed formatting. Tomasz Flendrich
6628* tests/libntp/msyslog.c fixed formatting. Tomasz Flendrich
6629* tests/libntp/numtoa.c deleted unnecessary empty functions, fixed formatting.
6630  Tomasz Flendrich
6631* tests/libntp/numtohost.c added const, fixed formatting. Tomasz Flendrich
6632* tests/libntp/refnumtoa.c fixed formatting. Tomasz Flendrich
6633* tests/libntp/ssl_init.c fixed formatting. Tomasz Flendrich
6634* tests/libntp/tvtots.c fixed a bug, fixed formatting. Tomasz Flendrich
6635* tests/libntp/uglydate.c removed an unnecessary include. Tomasz Flendrich
6636* tests/libntp/vi64ops.c removed an unnecessary comment, fixed formatting.
6637* tests/libntp/ymd3yd.c removed an empty function and an unnecessary include,
6638fixed formatting. Tomasz Flendrich
6639* tests/libntp/timespecops.c fixed formatting, fixed the order of includes,
6640  removed unnecessary comments, cleanup. Tomasz Flendrich
6641* tests/libntp/timevalops.c fixed the order of includes, deleted unnecessary
6642  comments, cleanup. Tomasz Flendrich
6643* tests/libntp/sockaddrtest.h making it agree to NTP's conventions of formatting.
6644  Tomasz Flendrich
6645* tests/libntp/lfptest.h cleanup. Tomasz Flendrich
6646* tests/libntp/test-libntp.c fix formatting. Tomasz Flendrich
6647* sntp/tests/crypto.c is now using proper Unity's assertions, fixed formatting.
6648  Tomasz Flendrich
6649* sntp/tests/kodDatabase.c added consts, deleted empty function,
6650  fixed formatting. Tomasz Flendrich
6651* sntp/tests/kodFile.c cleanup, fixed formatting. Tomasz Flendrich
6652* sntp/tests/packetHandling.c is now using proper Unity's assertions,
6653  fixed formatting, deleted unused variable. Tomasz Flendrich
6654* sntp/tests/keyFile.c is now using proper Unity's assertions, fixed formatting.
6655  Tomasz Flendrich
6656* sntp/tests/packetProcessing.c changed from sprintf to snprintf,
6657  fixed formatting. Tomasz Flendrich
6658* sntp/tests/utilities.c is now using proper Unity's assertions, changed
6659  the order of includes, fixed formatting, removed unnecessary comments.
6660  Tomasz Flendrich
6661* sntp/tests/sntptest.h fixed formatting. Tomasz Flendrich
6662* sntp/tests/fileHandlingTest.h.in fixed a possible buffer overflow problem,
6663  made one function do its job, deleted unnecessary prints, fixed formatting.
6664  Tomasz Flendrich
6665* sntp/unity/Makefile.am added a missing header. Tomasz Flendrich
6666* sntp/unity/unity_config.h: Distribute it.  Harlan Stenn.
6667* sntp/libevent/evconfig-private.h: remove generated filefrom SCM.  H.Stenn.
6668* sntp/unity/Makefile.am: fix some broken paths.  Harlan Stenn.
6669* sntp/unity/unity.c: Clean up a printf().  Harlan Stenn.
6670* Phase 1 deprecation of google test in tests/libntp/.  Harlan Stenn.
6671* Don't build sntp/libevent/sample/.  Harlan Stenn.
6672* tests/libntp/test_caltontp needs -lpthread.  Harlan Stenn.
6673* br-flock: --enable-local-libevent.  Harlan Stenn.
6674* Wrote tests for ntpd/ntp_prio_q.c. Tomasz Flendrich
6675* scripts/lib/NTP/Util.pm: stratum output is version-dependent.  Harlan Stenn.
6676* Get rid of the NTP_ prefix on our assertion macros.  Harlan Stenn.
6677* Code cleanup.  Harlan Stenn.
6678* libntp/icom.c: Typo fix.  Harlan Stenn.
6679* util/ntptime.c: initialization nit.  Harlan Stenn.
6680* ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr).  Harlan Stenn.
6681* Add std_unity_tests to various Makefile.am files.  Harlan Stenn.
6682* ntpd/ntp_restrict.c: added a few assertions, created tests for this file.
6683  Tomasz Flendrich
6684* Changed progname to be const in many files - now it's consistent. Tomasz
6685  Flendrich
6686* Typo fix for GCC warning suppression.  Harlan Stenn.
6687* Added tests/ntpd/ntp_scanner.c test. Damir Tomić.
6688* Added declarations to all Unity tests, and did minor fixes to them.
6689  Reduced the number of warnings by half. Damir Tomić.
6690* Updated generate_test_runner.rb and updated the sntp/unity/auto directory
6691  with the latest Unity updates from Mark. Damir Tomić.
6692* Retire google test - phase I.  Harlan Stenn.
6693* Unity test cleanup: move declaration of 'initializing'.  Harlan Stenn.
6694* Update the NEWS file.  Harlan Stenn.
6695* Autoconf cleanup.  Harlan Stenn.
6696* Unit test dist cleanup. Harlan Stenn.
6697* Cleanup various test Makefile.am files.  Harlan Stenn.
6698* Pthread autoconf macro cleanup.  Harlan Stenn.
6699* Fix progname definition in unity runner scripts.  Harlan Stenn.
6700* Clean trailing whitespace in tests/ntpd/Makefile.am.  Harlan Stenn.
6701* Update the patch for bug 2817.  Harlan Stenn.
6702* More updates for bug 2817.  Harlan Stenn.
6703* Fix bugs in tests/ntpd/ntp_prio_q.c.  Harlan Stenn.
6704* gcc on older HPUX may need +allowdups.  Harlan Stenn.
6705* Adding missing MCAST protection.  Harlan Stenn.
6706* Disable certain test programs on certain platforms.  Harlan Stenn.
6707* Implement --enable-problem-tests (on by default).  Harlan Stenn.
6708* build system tweaks.  Harlan Stenn.
6709
6710---
6711NTP 4.2.8p3 (Harlan Stenn <stenn@ntp.org>, 2015/06/29)
6712
6713Focus: 1 Security fix.  Bug fixes and enhancements.  Leap-second improvements.
6714
6715Severity: MEDIUM
6716
6717Security Fix:
6718
6719* [Sec 2853] Crafted remote config packet can crash some versions of
6720  ntpd.  Aleksis Kauppinen, Juergen Perlinger, Harlan Stenn.
6721
6722Under specific circumstances an attacker can send a crafted packet to
6723cause a vulnerable ntpd instance to crash. This requires each of the
6724following to be true:
6725
67261) ntpd set up to allow remote configuration (not allowed by default), and
67272) knowledge of the configuration password, and
67283) access to a computer entrusted to perform remote configuration.
6729
6730This vulnerability is considered low-risk.
6731
6732New features in this release:
6733
6734Optional (disabled by default) support to have ntpd provide smeared
6735leap second time.  A specially built and configured ntpd will only
6736offer smeared time in response to client packets.  These response
6737packets will also contain a "refid" of 254.a.b.c, where the 24 bits
6738of a, b, and c encode the amount of smear in a 2:22 integer:fraction
6739format.  See README.leapsmear and http://bugs.ntp.org/2855 for more
6740information.
6741
6742   *IF YOU CHOOSE TO CONFIGURE NTPD TO PROVIDE LEAP SMEAR TIME*
6743   *BE SURE YOU DO NOT OFFER THAT TIME ON PUBLIC TIMESERVERS.*
6744
6745We've imported the Unity test framework, and have begun converting
6746the existing google-test items to this new framework.  If you want
6747to write new tests or change old ones, you'll need to have ruby
6748installed.  You don't need ruby to run the test suite.
6749
6750Bug Fixes and Improvements:
6751
6752* CID 739725: Fix a rare resource leak in libevent/listener.c.
6753* CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776.
6754* CID 1296235: Fix refclock_jjy.c and correcting type of the driver40-ja.html
6755* CID 1269537: Clean up a line of dead code in getShmTime().
6756* [Bug 1060] Buffer overruns in libparse/clk_rawdcf.c.  Helge Oldach.
6757* [Bug 2590] autogen-5.18.5.
6758* [Bug 2612] restrict: Warn when 'monitor' can't be disabled because
6759  of 'limited'.
6760* [Bug 2650] fix includefile processing.
6761* [Bug 2745] ntpd -x steps clock on leap second
6762   Fixed an initial-value problem that caused misbehaviour in absence of
6763   any leapsecond information.
6764   Do leap second stepping only of the step adjustment is beyond the
6765   proper jump distance limit and step correction is allowed at all.
6766* [Bug 2750] build for Win64
6767  Building for 32bit of loopback ppsapi needs def file
6768* [Bug 2776] Improve ntpq's 'help keytype'.
6769* [Bug 2778] Implement "apeers"  ntpq command to include associd.
6770* [Bug 2782] Refactor refclock_shm.c, add memory barrier protection.
6771* [Bug 2792] If the IFF_RUNNING interface flag is supported then an
6772  interface is ignored as long as this flag is not set since the
6773  interface is not usable (e.g., no link).
6774* [Bug 2794] Clean up kernel clock status reports.
6775* [Bug 2800] refclock_true.c true_debug() can't open debug log because
6776  of incompatible open/fdopen parameters.
6777* [Bug 2804] install-local-data assumes GNU 'find' semantics.
6778* [Bug 2805] ntpd fails to join multicast group.
6779* [Bug 2806] refclock_jjy.c supports the Telephone JJY.
6780* [Bug 2808] GPSD_JSON driver enhancements, step 1.
6781  Fix crash during cleanup if GPS device not present and char device.
6782  Increase internal token buffer to parse all JSON data, even SKY.
6783  Defer logging of errors during driver init until the first unit is
6784  started, so the syslog is not cluttered when the driver is not used.
6785  Various improvements, see http://bugs.ntp.org/2808 for details.
6786  Changed libjsmn to a more recent version.
6787* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX.
6788* [Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h.
6789* [Bug 2815] net-snmp before v5.4 has circular library dependencies.
6790* [Bug 2821] Add a missing NTP_PRINTF and a missing const.
6791* [Bug 2822] New leap column in sntp broke NTP::Util.pm.
6792* [Bug 2824] Convert update-leap to perl. (also see 2769)
6793* [Bug 2825] Quiet file installation in html/ .
6794* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
6795   NTPD transfers the current TAI (instead of an announcement) now.
6796   This might still needed improvement.
6797   Update autokey data ASAP when 'sys_tai' changes.
6798   Fix unit test that was broken by changes for autokey update.
6799   Avoid potential signature length issue and use DPRINTF where possible
6800     in ntp_crypto.c.
6801* [Bug 2832] refclock_jjy.c supports the TDC-300.
6802* [Bug 2834] Correct a broken html tag in html/refclock.html
6803* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
6804  robust, and require 2 consecutive timestamps to be consistent.
6805* [Bug 2837] Allow a configurable DSCP value.
6806* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
6807* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
6808* [Bug 2842] Bug in mdoc2man.
6809* [Bug 2843] make check fails on 4.3.36
6810   Fixed compiler warnings about numeric range overflow
6811   (The original topic was fixed in a byplay to bug#2830)
6812* [Bug 2845] Harden memory allocation in ntpd.
6813* [Bug 2852] 'make check' can't find unity.h.  Hal Murray.
6814* [Bug 2854] Missing brace in libntp/strdup.c.  Masanari Iida.
6815* [Bug 2855] Parser fix for conditional leap smear code.  Harlan Stenn.
6816* [Bug 2855] Report leap smear in the REFID.  Harlan Stenn.
6817* [Bug 2855] Implement conditional leap smear code.  Martin Burnicki.
6818* [Bug 2856] ntpd should wait() on terminated child processes.  Paul Green.
6819* [Bug 2857] Stratus VOS does not support SIGIO.  Paul Green.
6820* [Bug 2859] Improve raw DCF77 robustness deconding.  Frank Kardel.
6821* [Bug 2860] ntpq ifstats sanity check is too stringent.  Frank Kardel.
6822* html/drivers/driver22.html: typo fix.  Harlan Stenn.
6823* refidsmear test cleanup.  Tomasz Flendrich.
6824* refidsmear function support and tests.  Harlan Stenn.
6825* sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested
6826  something that was only in the 4.2.6 sntp.  Harlan Stenn.
6827* Modified tests/bug-2803/Makefile.am so it builds Unity framework tests.
6828  Damir Tomić
6829* Modified tests/libtnp/Makefile.am so it builds Unity framework tests.
6830  Damir Tomić
6831* Modified sntp/tests/Makefile.am so it builds Unity framework tests.
6832  Damir Tomić
6833* tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
6834* Converted from gtest to Unity: tests/bug-2803/. Damir Tomić
6835* Converted from gtest to Unity: tests/libntp/ a_md5encrypt, atoint.c,
6836  atouint.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
6837  calyearstart.c, clocktime.c, hextoint.c, lfpfunc.c, modetoa.c,
6838  numtoa.c, numtohost.c, refnumtoa.c, ssl_init.c, statestr.c,
6839  timespecops.c, timevalops.c, uglydate.c, vi64ops.c, ymd2yd.c.
6840  Damir Tomić
6841* Converted from gtest to Unity: sntp/tests/ kodDatabase.c, kodFile.c,
6842  networking.c, keyFile.c, utilities.cpp, sntptest.h,
6843  fileHandlingTest.h. Damir Tomić
6844* Initial support for experimental leap smear code.  Harlan Stenn.
6845* Fixes to sntp/tests/fileHandlingTest.h.in.  Harlan Stenn.
6846* Report select() debug messages at debug level 3 now.
6847* sntp/scripts/genLocInfo: treat raspbian as debian.
6848* Unity test framework fixes.
6849  ** Requires ruby for changes to tests.
6850* Initial support for PACKAGE_VERSION tests.
6851* sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS.
6852* tests/bug-2803/Makefile.am must distribute bug-2803.h.
6853* Add an assert to the ntpq ifstats code.
6854* Clean up the RLIMIT_STACK code.
6855* Improve the ntpq documentation around the controlkey keyid.
6856* ntpq.c cleanup.
6857* Windows port build cleanup.
6858
6859---
6860NTP 4.2.8p2 (Harlan Stenn <stenn@ntp.org>, 2015/04/07)
6861
6862Focus: Security and Bug fixes, enhancements.
6863
6864Severity: MEDIUM
6865
6866In addition to bug fixes and enhancements, this release fixes the
6867following medium-severity vulnerabilities involving private key
6868authentication:
6869
6870* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
6871
6872    References: Sec 2779 / CVE-2015-1798 / VU#374268
6873    Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not
6874	including ntp-4.2.8p2 where the installation uses symmetric keys
6875	to authenticate remote associations.
6876    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
6877    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
6878    Summary: When ntpd is configured to use a symmetric key to authenticate
6879	a remote NTP server/peer, it checks if the NTP message
6880	authentication code (MAC) in received packets is valid, but not if
6881	there actually is any MAC included. Packets without a MAC are
6882	accepted as if they had a valid MAC. This allows a MITM attacker to
6883	send false packets that are accepted by the client/peer without
6884	having to know the symmetric key. The attacker needs to know the
6885	transmit timestamp of the client to match it in the forged reply
6886	and the false reply needs to reach the client before the genuine
6887	reply from the server. The attacker doesn't necessarily need to be
6888	relaying the packets between the client and the server.
6889
6890	Authentication using autokey doesn't have this problem as there is
6891	a check that requires the key ID to be larger than NTP_MAXKEY,
6892	which fails for packets without a MAC.
6893    Mitigation:
6894        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
6895	or the NTP Public Services Project Download Page
6896        Configure ntpd with enough time sources and monitor it properly.
6897    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
6898
6899* [Sec 2781] Authentication doesn't protect symmetric associations against
6900  DoS attacks.
6901
6902    References: Sec 2781 / CVE-2015-1799 / VU#374268
6903    Affects: All NTP releases starting with at least xntp3.3wy up to but
6904	not including ntp-4.2.8p2 where the installation uses symmetric
6905	key authentication.
6906    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
6907    Note: the CVSS base Score for this issue could be 4.3 or lower, and
6908	it could be higher than 5.4.
6909    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
6910    Summary: An attacker knowing that NTP hosts A and B are peering with
6911	each other (symmetric association) can send a packet to host A
6912	with source address of B which will set the NTP state variables
6913	on A to the values sent by the attacker. Host A will then send
6914	on its next poll to B a packet with originate timestamp that
6915	doesn't match the transmit timestamp of B and the packet will
6916	be dropped. If the attacker does this periodically for both
6917	hosts, they won't be able to synchronize to each other. This is
6918	a known denial-of-service attack, described at
6919	https://www.eecis.udel.edu/~mills/onwire.html .
6920
6921	According to the document the NTP authentication is supposed to
6922	protect symmetric associations against this attack, but that
6923	doesn't seem to be the case. The state variables are updated even
6924	when authentication fails and the peers are sending packets with
6925	originate timestamps that don't match the transmit timestamps on
6926	the receiving side.
6927
6928	This seems to be a very old problem, dating back to at least
6929	xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905)
6930	specifications, so other NTP implementations with support for
6931	symmetric associations and authentication may be vulnerable too.
6932	An update to the NTP RFC to correct this error is in-process.
6933    Mitigation:
6934        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
6935	or the NTP Public Services Project Download Page
6936        Note that for users of autokey, this specific style of MITM attack
6937	is simply a long-known potential problem.
6938        Configure ntpd with appropriate time sources and monitor ntpd.
6939	Alert your staff if problems are detected.
6940    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
6941
6942* New script: update-leap
6943The update-leap script will verify and if necessary, update the
6944leap-second definition file.
6945It requires the following commands in order to work:
6946
6947	wget logger tr sed shasum
6948
6949Some may choose to run this from cron.  It needs more portability testing.
6950
6951Bug Fixes and Improvements:
6952
6953* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
6954* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument.
6955* [Bug 2346] "graceful termination" signals do not do peer cleanup.
6956* [Bug 2728] See if C99-style structure initialization works.
6957* [Bug 2747] Upgrade libevent to 2.1.5-beta.
6958* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. .
6959* [Bug 2751] jitter.h has stale copies of l_fp macros.
6960* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
6961* [Bug 2757] Quiet compiler warnings.
6962* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
6963* [Bug 2763] Allow different thresholds for forward and backward steps.
6964* [Bug 2766] ntp-keygen output files should not be world-readable.
6965* [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
6966* [Bug 2771] nonvolatile value is documented in wrong units.
6967* [Bug 2773] Early leap announcement from Palisade/Thunderbolt
6968* [Bug 2774] Unreasonably verbose printout - leap pending/warning
6969* [Bug 2775] ntp-keygen.c fails to compile under Windows.
6970* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info.
6971  Removed non-ASCII characters from some copyright comments.
6972  Removed trailing whitespace.
6973  Updated definitions for Meinberg clocks from current Meinberg header files.
6974  Now use C99 fixed-width types and avoid non-ASCII characters in comments.
6975  Account for updated definitions pulled from Meinberg header files.
6976  Updated comments on Meinberg GPS receivers which are not only called GPS16x.
6977  Replaced some constant numbers by defines from ntp_calendar.h
6978  Modified creation of parse-specific variables for Meinberg devices
6979  in gps16x_message().
6980  Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
6981  Modified mbg_tm_str() which now expexts an additional parameter controlling
6982  if the time status shall be printed.
6983* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
6984* [Sec 2781] Authentication doesn't protect symmetric associations against
6985  DoS attacks.
6986* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE.
6987* [Bug 2789] Quiet compiler warnings from libevent.
6988* [Bug 2790] If ntpd sets the Windows MM timer highest resolution
6989  pause briefly before measuring system clock precision to yield
6990  correct results.
6991* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer.
6992* Use predefined function types for parse driver functions
6993  used to set up function pointers.
6994  Account for changed prototype of parse_inp_fnc_t functions.
6995  Cast parse conversion results to appropriate types to avoid
6996  compiler warnings.
6997  Let ioctl() for Windows accept a (void *) to avoid compiler warnings
6998  when called with pointers to different types.
6999
7000---
7001NTP 4.2.8p1 (Harlan Stenn <stenn@ntp.org>, 2015/02/04)
7002
7003Focus: Security and Bug fixes, enhancements.
7004
7005Severity: HIGH
7006
7007In addition to bug fixes and enhancements, this release fixes the
7008following high-severity vulnerabilities:
7009
7010* vallen is not validated in several places in ntp_crypto.c, leading
7011  to a potential information leak or possibly a crash
7012
7013    References: Sec 2671 / CVE-2014-9297 / VU#852879
7014    Affects: All NTP4 releases before 4.2.8p1 that are running autokey.
7015    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
7016    Date Resolved: Stable (4.2.8p1) 04 Feb 2015
7017    Summary: The vallen packet value is not validated in several code
7018             paths in ntp_crypto.c which can lead to information leakage
7019	     or perhaps a crash of the ntpd process.
7020    Mitigation - any of:
7021	Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
7022		or the NTP Public Services Project Download Page.
7023	Disable Autokey Authentication by removing, or commenting out,
7024		all configuration directives beginning with the "crypto"
7025		keyword in your ntp.conf file.
7026    Credit: This vulnerability was discovered by Stephen Roettger of the
7027    	Google Security Team, with additional cases found by Sebastian
7028	Krahmer of the SUSE Security Team and Harlan Stenn of Network
7029	Time Foundation.
7030
7031* ::1 can be spoofed on some OSes, so ACLs based on IPv6 ::1 addresses
7032  can be bypassed.
7033
7034    References: Sec 2672 / CVE-2014-9298 / VU#852879
7035    Affects: All NTP4 releases before 4.2.8p1, under at least some
7036	versions of MacOS and Linux. *BSD has not been seen to be vulnerable.
7037    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:C) Base Score: 9
7038    Date Resolved: Stable (4.2.8p1) 04 Feb 2014
7039    Summary: While available kernels will prevent 127.0.0.1 addresses
7040	from "appearing" on non-localhost IPv4 interfaces, some kernels
7041	do not offer the same protection for ::1 source addresses on
7042	IPv6 interfaces. Since NTP's access control is based on source
7043	address and localhost addresses generally have no restrictions,
7044	an attacker can send malicious control and configuration packets
7045	by spoofing ::1 addresses from the outside. Note Well: This is
7046	not really a bug in NTP, it's a problem with some OSes. If you
7047	have one of these OSes where ::1 can be spoofed, ALL ::1 -based
7048	ACL restrictions on any application can be bypassed!
7049    Mitigation:
7050        Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
7051	or the NTP Public Services Project Download Page
7052        Install firewall rules to block packets claiming to come from
7053	::1 from inappropriate network interfaces.
7054    Credit: This vulnerability was discovered by Stephen Roettger of
7055	the Google Security Team.
7056
7057Additionally, over 30 bugfixes and improvements were made to the codebase.
7058See the ChangeLog for more information.
7059
7060---
7061NTP 4.2.8 (Harlan Stenn <stenn@ntp.org>, 2014/12/18)
7062
7063Focus: Security and Bug fixes, enhancements.
7064
7065Severity: HIGH
7066
7067In addition to bug fixes and enhancements, this release fixes the
7068following high-severity vulnerabilities:
7069
7070************************** vv NOTE WELL vv *****************************
7071
7072The vulnerabilities listed below can be significantly mitigated by
7073following the BCP of putting
7074
7075 restrict default ... noquery
7076
7077in the ntp.conf file.  With the exception of:
7078
7079   receive(): missing return on error
7080   References: Sec 2670 / CVE-2014-9296 / VU#852879
7081
7082below (which is a limited-risk vulnerability), none of the recent
7083vulnerabilities listed below can be exploited if the source IP is
7084restricted from sending a 'query'-class packet by your ntp.conf file.
7085
7086************************** ^^ NOTE WELL ^^ *****************************
7087
7088* Weak default key in config_auth().
7089
7090  References: [Sec 2665] / CVE-2014-9293 / VU#852879
7091  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
7092  Vulnerable Versions: all releases prior to 4.2.7p11
7093  Date Resolved: 28 Jan 2010
7094
7095  Summary: If no 'auth' key is set in the configuration file, ntpd
7096	would generate a random key on the fly.  There were two
7097	problems with this: 1) the generated key was 31 bits in size,
7098	and 2) it used the (now weak) ntp_random() function, which was
7099	seeded with a 32-bit value and could only provide 32 bits of
7100	entropy.  This was sufficient back in the late 1990s when the
7101	code was written.  Not today.
7102
7103  Mitigation - any of:
7104	- Upgrade to 4.2.7p11 or later.
7105	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
7106
7107  Credit: This vulnerability was noticed in ntp-4.2.6 by Neel Mehta
7108  	of the Google Security Team.
7109
7110* Non-cryptographic random number generator with weak seed used by
7111  ntp-keygen to generate symmetric keys.
7112
7113  References: [Sec 2666] / CVE-2014-9294 / VU#852879
7114  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
7115  Vulnerable Versions: All NTP4 releases before 4.2.7p230
7116  Date Resolved: Dev (4.2.7p230) 01 Nov 2011
7117
7118  Summary: Prior to ntp-4.2.7p230 ntp-keygen used a weak seed to
7119  	prepare a random number generator that was of good quality back
7120	in the late 1990s. The random numbers produced was then used to
7121	generate symmetric keys. In ntp-4.2.8 we use a current-technology
7122	cryptographic random number generator, either RAND_bytes from
7123	OpenSSL, or arc4random().
7124
7125  Mitigation - any of:
7126  	- Upgrade to 4.2.7p230 or later.
7127	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
7128
7129  Credit:  This vulnerability was discovered in ntp-4.2.6 by
7130  	Stephen Roettger of the Google Security Team.
7131
7132* Buffer overflow in crypto_recv()
7133
7134  References: Sec 2667 / CVE-2014-9295 / VU#852879
7135  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
7136  Versions: All releases before 4.2.8
7137  Date Resolved: Stable (4.2.8) 18 Dec 2014
7138
7139  Summary: When Autokey Authentication is enabled (i.e. the ntp.conf
7140  	file contains a 'crypto pw ...' directive) a remote attacker
7141	can send a carefully crafted packet that can overflow a stack
7142	buffer and potentially allow malicious code to be executed
7143	with the privilege level of the ntpd process.
7144
7145  Mitigation - any of:
7146  	- Upgrade to 4.2.8, or later, or
7147	- Disable Autokey Authentication by removing, or commenting out,
7148	  all configuration directives beginning with the crypto keyword
7149	  in your ntp.conf file.
7150
7151  Credit: This vulnerability was discovered by Stephen Roettger of the
7152  	Google Security Team.
7153
7154* Buffer overflow in ctl_putdata()
7155
7156  References: Sec 2668 / CVE-2014-9295 / VU#852879
7157  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
7158  Versions: All NTP4 releases before 4.2.8
7159  Date Resolved: Stable (4.2.8) 18 Dec 2014
7160
7161  Summary: A remote attacker can send a carefully crafted packet that
7162  	can overflow a stack buffer and potentially allow malicious
7163	code to be executed with the privilege level of the ntpd process.
7164
7165  Mitigation - any of:
7166  	- Upgrade to 4.2.8, or later.
7167	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
7168
7169  Credit: This vulnerability was discovered by Stephen Roettger of the
7170  	Google Security Team.
7171
7172* Buffer overflow in configure()
7173
7174  References: Sec 2669 / CVE-2014-9295 / VU#852879
7175  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
7176  Versions: All NTP4 releases before 4.2.8
7177  Date Resolved: Stable (4.2.8) 18 Dec 2014
7178
7179  Summary: A remote attacker can send a carefully crafted packet that
7180	can overflow a stack buffer and potentially allow malicious
7181	code to be executed with the privilege level of the ntpd process.
7182
7183  Mitigation - any of:
7184  	- Upgrade to 4.2.8, or later.
7185	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
7186
7187  Credit: This vulnerability was discovered by Stephen Roettger of the
7188	Google Security Team.
7189
7190* receive(): missing return on error
7191
7192  References: Sec 2670 / CVE-2014-9296 / VU#852879
7193  CVSS: (AV:N/AC:L/Au:N/C:N/I:N/A:P) Base Score: 5.0
7194  Versions: All NTP4 releases before 4.2.8
7195  Date Resolved: Stable (4.2.8) 18 Dec 2014
7196
7197  Summary: Code in ntp_proto.c:receive() was missing a 'return;' in
7198  	the code path where an error was detected, which meant
7199	processing did not stop when a specific rare error occurred.
7200	We haven't found a way for this bug to affect system integrity.
7201	If there is no way to affect system integrity the base CVSS
7202	score for this bug is 0. If there is one avenue through which
7203	system integrity can be partially affected, the base score
7204	becomes a 5. If system integrity can be partially affected
7205	via all three integrity metrics, the CVSS base score become 7.5.
7206
7207  Mitigation - any of:
7208        - Upgrade to 4.2.8, or later,
7209        - Remove or comment out all configuration directives
7210	  beginning with the crypto keyword in your ntp.conf file.
7211
7212  Credit: This vulnerability was discovered by Stephen Roettger of the
7213  	Google Security Team.
7214
7215See http://support.ntp.org/security for more information.
7216
7217New features / changes in this release:
7218
7219Important Changes
7220
7221* Internal NTP Era counters
7222
7223The internal counters that track the "era" (range of years) we are in
7224rolls over every 136 years'.  The current "era" started at the stroke of
7225midnight on 1 Jan 1900, and ends just before the stroke of midnight on
72261 Jan 2036.
7227In the past, we have used the "midpoint" of the  range to decide which
7228era we were in.  Given the longevity of some products, it became clear
7229that it would be more functional to "look back" less, and "look forward"
7230more.  We now compile a timestamp into the ntpd executable and when we
7231get a timestamp we us the "built-on" to tell us what era we are in.
7232This check "looks back" 10 years, and "looks forward" 126 years.
7233
7234* ntpdc responses disabled by default
7235
7236Dave Hart writes:
7237
7238For a long time, ntpq and its mostly text-based mode 6 (control)
7239protocol have been preferred over ntpdc and its mode 7 (private
7240request) protocol for runtime queries and configuration.  There has
7241been a goal of deprecating ntpdc, previously held back by numerous
7242capabilities exposed by ntpdc with no ntpq equivalent.  I have been
7243adding commands to ntpq to cover these cases, and I believe I've
7244covered them all, though I've not compared command-by-command
7245recently.
7246
7247As I've said previously, the binary mode 7 protocol involves a lot of
7248hand-rolled structure layout and byte-swapping code in both ntpd and
7249ntpdc which is hard to get right.  As ntpd grows and changes, the
7250changes are difficult to expose via ntpdc while maintaining forward
7251and backward compatibility between ntpdc and ntpd.  In contrast,
7252ntpq's text-based, label=value approach involves more code reuse and
7253allows compatible changes without extra work in most cases.
7254
7255Mode 7 has always been defined as vendor/implementation-specific while
7256mode 6 is described in RFC 1305 and intended to be open to interoperate
7257with other implementations.  There is an early draft of an updated
7258mode 6 description that likely will join the other NTPv4 RFCs
7259eventually. (http://tools.ietf.org/html/draft-odonoghue-ntpv4-control-01)
7260
7261For these reasons, ntpd 4.2.7p230 by default disables processing of
7262ntpdc queries, reducing ntpd's attack surface and functionally
7263deprecating ntpdc.  If you are in the habit of using ntpdc for certain
7264operations, please try the ntpq equivalent.  If there's no equivalent,
7265please open a bug report at http://bugs.ntp.org./
7266
7267In addition to the above, over 1100 issues have been resolved between
7268the 4.2.6 branch and 4.2.8.  The ChangeLog file in the distribution
7269lists these.
7270
7271---
7272NTP 4.2.6p5 (Harlan Stenn <stenn@ntp.org>, 2011/12/24)
7273
7274Focus: Bug fixes
7275
7276Severity: Medium
7277
7278This is a recommended upgrade.
7279
7280This release updates sys_rootdisp and sys_jitter calculations to match the
7281RFC specification, fixes a potential IPv6 address matching error for the
7282"nic" and "interface" configuration directives, suppresses the creation of
7283extraneous ephemeral associations for certain broadcastclient and
7284multicastclient configurations, cleans up some ntpq display issues, and
7285includes improvements to orphan mode, minor bugs fixes and code clean-ups.
7286
7287New features / changes in this release:
7288
7289ntpd
7290
7291 * Updated "nic" and "interface" IPv6 address handling to prevent
7292   mismatches with localhost [::1] and wildcard [::] which resulted from
7293   using the address/prefix format (e.g. fe80::/64)
7294 * Fix orphan mode stratum incorrectly counting to infinity
7295 * Orphan parent selection metric updated to includes missing ntohl()
7296 * Non-printable stratum 16 refid no longer sent to ntp
7297 * Duplicate ephemeral associations suppressed for broadcastclient and
7298   multicastclient without broadcastdelay
7299 * Exclude undetermined sys_refid from use in loopback TEST12
7300 * Exclude MODE_SERVER responses from KoD rate limiting
7301 * Include root delay in clock_update() sys_rootdisp calculations
7302 * get_systime() updated to exclude sys_residual offset (which only
7303   affected bits "below" sys_tick, the precision threshold)
7304 * sys.peer jitter weighting corrected in sys_jitter calculation
7305
7306ntpq
7307
7308 * -n option extended to include the billboard "server" column
7309 * IPv6 addresses in the local column truncated to prevent overruns
7310
7311---
7312NTP 4.2.6p4 (Harlan Stenn <stenn@ntp.org>, 2011/09/22)
7313
7314Focus: Bug fixes and portability improvements
7315
7316Severity: Medium
7317
7318This is a recommended upgrade.
7319
7320This release includes build infrastructure updates, code
7321clean-ups, minor bug fixes, fixes for a number of minor
7322ref-clock issues, and documentation revisions.
7323
7324Portability improvements affect AIX, HP-UX, Linux, OS X and 64-bit time_t.
7325
7326New features / changes in this release:
7327
7328Build system
7329
7330* Fix checking for struct rtattr
7331* Update config.guess and config.sub for AIX
7332* Upgrade required version of autogen and libopts for building
7333  from our source code repository
7334
7335ntpd
7336
7337* Back-ported several fixes for Coverity warnings from ntp-dev
7338* Fix a rare boundary condition in UNLINK_EXPR_SLIST()
7339* Allow "logconfig =allall" configuration directive
7340* Bind tentative IPv6 addresses on Linux
7341* Correct WWVB/Spectracom driver to timestamp CR instead of LF
7342* Improved tally bit handling to prevent incorrect ntpq peer status reports
7343* Exclude the Undisciplined Local Clock and ACTS drivers from the initial
7344  candidate list unless they are designated a "prefer peer"
7345* Prevent the consideration of Undisciplined Local Clock or ACTS drivers for
7346  selection during the 'tos orphanwait' period
7347* Prefer an Orphan Mode Parent over the Undisciplined Local Clock or ACTS
7348  drivers
7349* Improved support of the Parse Refclock trusttime flag in Meinberg mode
7350* Back-port utility routines from ntp-dev: mprintf(), emalloc_zero()
7351* Added the NTPD_TICKADJ_PPM environment variable for specifying baseline
7352  clock slew on Microsoft Windows
7353* Code cleanup in libntpq
7354
7355ntpdc
7356
7357* Fix timerstats reporting
7358
7359ntpdate
7360
7361* Reduce time required to set clock
7362* Allow a timeout greater than 2 seconds
7363
7364sntp
7365
7366* Backward incompatible command-line option change:
7367  -l/--filelog changed -l/--logfile (to be consistent with ntpd)
7368
7369Documentation
7370
7371* Update html2man. Fix some tags in the .html files
7372* Distribute ntp-wait.html
7373
7374---
7375NTP 4.2.6p3 (Harlan Stenn <stenn@ntp.org>, 2011/01/03)
7376
7377Focus: Bug fixes and portability improvements
7378
7379Severity: Medium
7380
7381This is a recommended upgrade.
7382
7383This release includes build infrastructure updates, code
7384clean-ups, minor bug fixes, fixes for a number of minor
7385ref-clock issues, and documentation revisions.
7386
7387Portability improvements in this release affect AIX, Atari FreeMiNT,
7388FreeBSD4, Linux and Microsoft Windows.
7389
7390New features / changes in this release:
7391
7392Build system
7393* Use lsb_release to get information about Linux distributions.
7394* 'test' is in /usr/bin (instead of /bin) on some systems.
7395* Basic sanity checks for the ChangeLog file.
7396* Source certain build files with ./filename for systems without . in PATH.
7397* IRIX portability fix.
7398* Use a single copy of the "libopts" code.
7399* autogen/libopts upgrade.
7400* configure.ac m4 quoting cleanup.
7401
7402ntpd
7403* Do not bind to IN6_IFF_ANYCAST addresses.
7404* Log the reason for exiting under Windows.
7405* Multicast fixes for Windows.
7406* Interpolation fixes for Windows.
7407* IPv4 and IPv6 Multicast fixes.
7408* Manycast solicitation fixes and general repairs.
7409* JJY refclock cleanup.
7410* NMEA refclock improvements.
7411* Oncore debug message cleanup.
7412* Palisade refclock now builds under Linux.
7413* Give RAWDCF more baud rates.
7414* Support Truetime Satellite clocks under Windows.
7415* Support Arbiter 1093C Satellite clocks under Windows.
7416* Make sure that the "filegen" configuration command defaults to "enable".
7417* Range-check the status codes (plus other cleanup) in the RIPE-NCC driver.
7418* Prohibit 'includefile' directive in remote configuration command.
7419* Fix 'nic' interface bindings.
7420* Fix the way we link with openssl if openssl is installed in the base
7421  system.
7422
7423ntp-keygen
7424* Fix -V coredump.
7425* OpenSSL version display cleanup.
7426
7427ntpdc
7428* Many counters should be treated as unsigned.
7429
7430ntpdate
7431* Do not ignore replies with equal receive and transmit timestamps.
7432
7433ntpq
7434* libntpq warning cleanup.
7435
7436ntpsnmpd
7437* Correct SNMP type for "precision" and "resolution".
7438* Update the MIB from the draft version to RFC-5907.
7439
7440sntp
7441* Display timezone offset when showing time for sntp in the local
7442  timezone.
7443* Pay proper attention to RATE KoD packets.
7444* Fix a miscalculation of the offset.
7445* Properly parse empty lines in the key file.
7446* Logging cleanup.
7447* Use tv_usec correctly in set_time().
7448* Documentation cleanup.
7449
7450---
7451NTP 4.2.6p2 (Harlan Stenn <stenn@ntp.org>, 2010/07/08)
7452
7453Focus: Bug fixes and portability improvements
7454
7455Severity: Medium
7456
7457This is a recommended upgrade.
7458
7459This release includes build infrastructure updates, code
7460clean-ups, minor bug fixes, fixes for a number of minor
7461ref-clock issues, improved KOD handling, OpenSSL related
7462updates and documentation revisions.
7463
7464Portability improvements in this release affect Irix, Linux,
7465Mac OS, Microsoft Windows, OpenBSD and QNX6
7466
7467New features / changes in this release:
7468
7469ntpd
7470* Range syntax for the trustedkey configuration directive
7471* Unified IPv4 and IPv6 restrict lists
7472
7473ntpdate
7474* Rate limiting and KOD handling
7475
7476ntpsnmpd
7477* default connection to net-snmpd via a unix-domain socket
7478* command-line 'socket name' option
7479
7480ntpq / ntpdc
7481* support for the "passwd ..." syntax
7482* key-type specific password prompts
7483
7484sntp
7485* MD5 authentication of an ntpd
7486* Broadcast and crypto
7487* OpenSSL support
7488
7489---
7490NTP 4.2.6p1 (Harlan Stenn <stenn@ntp.org>, 2010/04/09)
7491
7492Focus: Bug fixes, portability fixes, and documentation improvements
7493
7494Severity: Medium
7495
7496This is a recommended upgrade.
7497
7498---
7499NTP 4.2.6 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
7500
7501Focus: enhancements and bug fixes.
7502
7503---
7504NTP 4.2.4p8 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
7505
7506Focus: Security Fixes
7507
7508Severity: HIGH
7509
7510This release fixes the following high-severity vulnerability:
7511
7512* [Sec 1331] DoS with mode 7 packets - CVE-2009-3563.
7513
7514  See http://support.ntp.org/security for more information.
7515
7516  NTP mode 7 (MODE_PRIVATE) is used by the ntpdc query and control utility.
7517  In contrast, ntpq uses NTP mode 6 (MODE_CONTROL), while routine NTP time
7518  transfers use modes 1 through 5.  Upon receipt of an incorrect mode 7
7519  request or a mode 7 error response from an address which is not listed
7520  in a "restrict ... noquery" or "restrict ... ignore" statement, ntpd will
7521  reply with a mode 7 error response (and log a message).  In this case:
7522
7523	* If an attacker spoofs the source address of ntpd host A in a
7524	  mode 7 response packet sent to ntpd host B, both A and B will
7525	  continuously send each other error responses, for as long as
7526	  those packets get through.
7527
7528	* If an attacker spoofs an address of ntpd host A in a mode 7
7529	  response packet sent to ntpd host A, A will respond to itself
7530	  endlessly, consuming CPU and logging excessively.
7531
7532  Credit for finding this vulnerability goes to Robin Park and Dmitri
7533  Vinokurov of Alcatel-Lucent.
7534
7535THIS IS A STRONGLY RECOMMENDED UPGRADE.
7536
7537---
7538ntpd now syncs to refclocks right away.
7539
7540Backward-Incompatible changes:
7541
7542ntpd no longer accepts '-v name' or '-V name' to define internal variables.
7543Use '--var name' or '--dvar name' instead. (Bug 817)
7544
7545---
7546NTP 4.2.4p7 (Harlan Stenn <stenn@ntp.org>, 2009/05/04)
7547
7548Focus: Security and Bug Fixes
7549
7550Severity: HIGH
7551
7552This release fixes the following high-severity vulnerability:
7553
7554* [Sec 1151] Remote exploit if autokey is enabled.  CVE-2009-1252
7555
7556  See http://support.ntp.org/security for more information.
7557
7558  If autokey is enabled (if ntp.conf contains a "crypto pw whatever"
7559  line) then a carefully crafted packet sent to the machine will cause
7560  a buffer overflow and possible execution of injected code, running
7561  with the privileges of the ntpd process (often root).
7562
7563  Credit for finding this vulnerability goes to Chris Ries of CMU.
7564
7565This release fixes the following low-severity vulnerabilities:
7566
7567* [Sec 1144] limited (two byte) buffer overflow in ntpq.  CVE-2009-0159
7568  Credit for finding this vulnerability goes to Geoff Keating of Apple.
7569
7570* [Sec 1149] use SO_EXCLUSIVEADDRUSE on Windows
7571  Credit for finding this issue goes to Dave Hart.
7572
7573This release fixes a number of bugs and adds some improvements:
7574
7575* Improved logging
7576* Fix many compiler warnings
7577* Many fixes and improvements for Windows
7578* Adds support for AIX 6.1
7579* Resolves some issues under MacOS X and Solaris
7580
7581THIS IS A STRONGLY RECOMMENDED UPGRADE.
7582
7583---
7584NTP 4.2.4p6 (Harlan Stenn <stenn@ntp.org>, 2009/01/07)
7585
7586Focus: Security Fix
7587
7588Severity: Low
7589
7590This release fixes oCERT.org's CVE-2009-0021, a vulnerability affecting
7591the OpenSSL library relating to the incorrect checking of the return
7592value of EVP_VerifyFinal function.
7593
7594Credit for finding this issue goes to the Google Security Team for
7595finding the original issue with OpenSSL, and to ocert.org for finding
7596the problem in NTP and telling us about it.
7597
7598This is a recommended upgrade.
7599---
7600NTP 4.2.4p5 (Harlan Stenn <stenn@ntp.org>, 2008/08/17)
7601
7602Focus: Minor Bugfixes
7603
7604This release fixes a number of Windows-specific ntpd bugs and
7605platform-independent ntpdate bugs. A logging bugfix has been applied
7606to the ONCORE driver.
7607
7608The "dynamic" keyword and is now obsolete and deferred binding to local
7609interfaces is the new default. The minimum time restriction for the
7610interface update interval has been dropped.
7611
7612A number of minor build system and documentation fixes are included.
7613
7614This is a recommended upgrade for Windows.
7615
7616---
7617NTP 4.2.4p4 (Harlan Stenn <stenn@ntp.org>, 2007/09/10)
7618
7619Focus: Minor Bugfixes
7620
7621This release updates certain copyright information, fixes several display
7622bugs in ntpdc, avoids SIGIO interrupting malloc(), cleans up file descriptor
7623shutdown in the parse refclock driver, removes some lint from the code,
7624stops accessing certain buffers immediately after they were freed, fixes
7625a problem with non-command-line specification of -6, and allows the loopback
7626interface to share addresses with other interfaces.
7627
7628---
7629NTP 4.2.4p3 (Harlan Stenn <stenn@ntp.org>, 2007/06/29)
7630
7631Focus: Minor Bugfixes
7632
7633This release fixes a bug in Windows that made it difficult to
7634terminate ntpd under windows.
7635This is a recommended upgrade for Windows.
7636
7637---
7638NTP 4.2.4p2 (Harlan Stenn <stenn@ntp.org>, 2007/06/19)
7639
7640Focus: Minor Bugfixes
7641
7642This release fixes a multicast mode authentication problem,
7643an error in NTP packet handling on Windows that could lead to
7644ntpd crashing, and several other minor bugs. Handling of
7645multicast interfaces and logging configuration were improved.
7646The required versions of autogen and libopts were incremented.
7647This is a recommended upgrade for Windows and multicast users.
7648
7649---
7650NTP 4.2.4 (Harlan Stenn <stenn@ntp.org>, 2006/12/31)
7651
7652Focus: enhancements and bug fixes.
7653
7654Dynamic interface rescanning was added to simplify the use of ntpd in
7655conjunction with DHCP. GNU AutoGen is used for its command-line options
7656processing. Separate PPS devices are supported for PARSE refclocks, MD5
7657signatures are now provided for the release files. Drivers have been
7658added for some new ref-clocks and have been removed for some older
7659ref-clocks. This release also includes other improvements, documentation
7660and bug fixes.
7661
7662K&R C is no longer supported as of NTP-4.2.4. We are now aiming for ANSI
7663C support.
7664
7665---
7666NTP 4.2.0 (Harlan Stenn <stenn@ntp.org>, 2003/10/15)
7667
7668Focus: enhancements and bug fixes.
7669