NEWS revision 285612
1---
2NTP 4.2.8p3 (Harlan Stenn <stenn@ntp.org>, 2015/06/29) 
3
4Focus: 1 Security fix.  Bug fixes and enhancements.  Leap-second improvements.
5
6Severity: MEDIUM
7
8Security Fix:
9
10* [Sec 2853] Crafted remote config packet can crash some versions of
11  ntpd.  Aleksis Kauppinen, Juergen Perlinger, Harlan Stenn.
12
13Under specific circumstances an attacker can send a crafted packet to
14cause a vulnerable ntpd instance to crash. This requires each of the
15following to be true:
16
171) ntpd set up to allow remote configuration (not allowed by default), and
182) knowledge of the configuration password, and
193) access to a computer entrusted to perform remote configuration. 
20
21This vulnerability is considered low-risk.
22
23New features in this release:
24
25Optional (disabled by default) support to have ntpd provide smeared
26leap second time.  A specially built and configured ntpd will only
27offer smeared time in response to client packets.  These response
28packets will also contain a "refid" of 254.a.b.c, where the 24 bits
29of a, b, and c encode the amount of smear in a 2:22 integer:fraction 
30format.  See README.leapsmear and http://bugs.ntp.org/2855 for more
31information.
32
33   *IF YOU CHOOSE TO CONFIGURE NTPD TO PROVIDE LEAP SMEAR TIME*
34   *BE SURE YOU DO NOT OFFER THAT TIME ON PUBLIC TIMESERVERS.*
35
36We've imported the Unity test framework, and have begun converting
37the existing google-test items to this new framework.  If you want
38to write new tests or change old ones, you'll need to have ruby
39installed.  You don't need ruby to run the test suite.
40
41Bug Fixes and Improvements:
42
43* CID 739725: Fix a rare resource leak in libevent/listener.c.
44* CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776.
45* CID 1296235: Fix refclock_jjy.c and correcting type of the driver40-ja.html
46* CID 1269537: Clean up a line of dead code in getShmTime().
47* [Bug 1060] Buffer overruns in libparse/clk_rawdcf.c.  Helge Oldach.
48* [Bug 2590] autogen-5.18.5.
49* [Bug 2612] restrict: Warn when 'monitor' can't be disabled because
50  of 'limited'.
51* [Bug 2650] fix includefile processing.
52* [Bug 2745] ntpd -x steps clock on leap second
53   Fixed an initial-value problem that caused misbehaviour in absence of
54   any leapsecond information.
55   Do leap second stepping only of the step adjustment is beyond the
56   proper jump distance limit and step correction is allowed at all.
57* [Bug 2750] build for Win64
58  Building for 32bit of loopback ppsapi needs def file
59* [Bug 2776] Improve ntpq's 'help keytype'.
60* [Bug 2778] Implement "apeers"  ntpq command to include associd.
61* [Bug 2782] Refactor refclock_shm.c, add memory barrier protection.
62* [Bug 2792] If the IFF_RUNNING interface flag is supported then an
63  interface is ignored as long as this flag is not set since the
64  interface is not usable (e.g., no link).
65* [Bug 2794] Clean up kernel clock status reports.
66* [Bug 2800] refclock_true.c true_debug() can't open debug log because
67  of incompatible open/fdopen parameters.
68* [Bug 2804] install-local-data assumes GNU 'find' semantics.
69* [Bug 2805] ntpd fails to join multicast group.
70* [Bug 2806] refclock_jjy.c supports the Telephone JJY.
71* [Bug 2808] GPSD_JSON driver enhancements, step 1.
72  Fix crash during cleanup if GPS device not present and char device.
73  Increase internal token buffer to parse all JSON data, even SKY.
74  Defer logging of errors during driver init until the first unit is
75  started, so the syslog is not cluttered when the driver is not used.
76  Various improvements, see http://bugs.ntp.org/2808 for details.
77  Changed libjsmn to a more recent version.
78* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX.
79* [Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h.
80* [Bug 2815] net-snmp before v5.4 has circular library dependencies.
81* [Bug 2821] Add a missing NTP_PRINTF and a missing const.
82* [Bug 2822] New leap column in sntp broke NTP::Util.pm.
83* [Bug 2824] Convert update-leap to perl. (also see 2769)
84* [Bug 2825] Quiet file installation in html/ .
85* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
86   NTPD transfers the current TAI (instead of an announcement) now.
87   This might still needed improvement.
88   Update autokey data ASAP when 'sys_tai' changes.
89   Fix unit test that was broken by changes for autokey update.
90   Avoid potential signature length issue and use DPRINTF where possible
91     in ntp_crypto.c.
92* [Bug 2832] refclock_jjy.c supports the TDC-300.
93* [Bug 2834] Correct a broken html tag in html/refclock.html
94* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
95  robust, and require 2 consecutive timestamps to be consistent.
96* [Bug 2837] Allow a configurable DSCP value.
97* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
98* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
99* [Bug 2842] Bug in mdoc2man.
100* [Bug 2843] make check fails on 4.3.36
101   Fixed compiler warnings about numeric range overflow
102   (The original topic was fixed in a byplay to bug#2830)
103* [Bug 2845] Harden memory allocation in ntpd.
104* [Bug 2852] 'make check' can't find unity.h.  Hal Murray.
105* [Bug 2854] Missing brace in libntp/strdup.c.  Masanari Iida.
106* [Bug 2855] Parser fix for conditional leap smear code.  Harlan Stenn.
107* [Bug 2855] Report leap smear in the REFID.  Harlan Stenn.
108* [Bug 2855] Implement conditional leap smear code.  Martin Burnicki.
109* [Bug 2856] ntpd should wait() on terminated child processes.  Paul Green.
110* [Bug 2857] Stratus VOS does not support SIGIO.  Paul Green.
111* [Bug 2859] Improve raw DCF77 robustness deconding.  Frank Kardel.
112* [Bug 2860] ntpq ifstats sanity check is too stringent.  Frank Kardel.
113* html/drivers/driver22.html: typo fix.  Harlan Stenn.
114* refidsmear test cleanup.  Tomasz Flendrich.
115* refidsmear function support and tests.  Harlan Stenn.
116* sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested
117  something that was only in the 4.2.6 sntp.  Harlan Stenn.
118* Modified tests/bug-2803/Makefile.am so it builds Unity framework tests.
119  Damir Tomi��
120* Modified tests/libtnp/Makefile.am so it builds Unity framework tests.
121  Damir Tomi��
122* Modified sntp/tests/Makefile.am so it builds Unity framework tests.
123  Damir Tomi��
124* tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
125* Converted from gtest to Unity: tests/bug-2803/. Damir Tomi��
126* Converted from gtest to Unity: tests/libntp/ a_md5encrypt, atoint.c,
127  atouint.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
128  calyearstart.c, clocktime.c, hextoint.c, lfpfunc.c, modetoa.c,
129  numtoa.c, numtohost.c, refnumtoa.c, ssl_init.c, statestr.c,
130  timespecops.c, timevalops.c, uglydate.c, vi64ops.c, ymd2yd.c.
131  Damir Tomi��
132* Converted from gtest to Unity: sntp/tests/ kodDatabase.c, kodFile.c,
133  networking.c, keyFile.c, utilities.cpp, sntptest.h,
134  fileHandlingTest.h. Damir Tomi��
135* Initial support for experimental leap smear code.  Harlan Stenn.
136* Fixes to sntp/tests/fileHandlingTest.h.in.  Harlan Stenn.
137* Report select() debug messages at debug level 3 now.
138* sntp/scripts/genLocInfo: treat raspbian as debian.
139* Unity test framework fixes.
140  ** Requires ruby for changes to tests.
141* Initial support for PACKAGE_VERSION tests.
142* sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS.
143* tests/bug-2803/Makefile.am must distribute bug-2803.h.
144* Add an assert to the ntpq ifstats code.
145* Clean up the RLIMIT_STACK code.
146* Improve the ntpq documentation around the controlkey keyid.
147* ntpq.c cleanup.
148* Windows port build cleanup.
149
150---
151NTP 4.2.8p2 (Harlan Stenn <stenn@ntp.org>, 2015/04/07) 
152
153Focus: Security and Bug fixes, enhancements.
154
155Severity: MEDIUM
156 
157In addition to bug fixes and enhancements, this release fixes the
158following medium-severity vulnerabilities involving private key
159authentication:
160
161* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
162
163    References: Sec 2779 / CVE-2015-1798 / VU#374268
164    Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not
165	including ntp-4.2.8p2 where the installation uses symmetric keys
166	to authenticate remote associations.
167    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
168    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
169    Summary: When ntpd is configured to use a symmetric key to authenticate
170	a remote NTP server/peer, it checks if the NTP message
171	authentication code (MAC) in received packets is valid, but not if
172	there actually is any MAC included. Packets without a MAC are
173	accepted as if they had a valid MAC. This allows a MITM attacker to
174	send false packets that are accepted by the client/peer without
175	having to know the symmetric key. The attacker needs to know the
176	transmit timestamp of the client to match it in the forged reply
177	and the false reply needs to reach the client before the genuine
178	reply from the server. The attacker doesn't necessarily need to be
179	relaying the packets between the client and the server.
180
181	Authentication using autokey doesn't have this problem as there is
182	a check that requires the key ID to be larger than NTP_MAXKEY,
183	which fails for packets without a MAC.
184    Mitigation:
185        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
186	or the NTP Public Services Project Download Page
187        Configure ntpd with enough time sources and monitor it properly. 
188    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat. 
189
190* [Sec 2781] Authentication doesn't protect symmetric associations against
191  DoS attacks.
192
193    References: Sec 2781 / CVE-2015-1799 / VU#374268
194    Affects: All NTP releases starting with at least xntp3.3wy up to but
195	not including ntp-4.2.8p2 where the installation uses symmetric
196	key authentication.
197    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
198    Note: the CVSS base Score for this issue could be 4.3 or lower, and
199	it could be higher than 5.4.
200    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
201    Summary: An attacker knowing that NTP hosts A and B are peering with
202	each other (symmetric association) can send a packet to host A
203	with source address of B which will set the NTP state variables
204	on A to the values sent by the attacker. Host A will then send
205	on its next poll to B a packet with originate timestamp that
206	doesn't match the transmit timestamp of B and the packet will
207	be dropped. If the attacker does this periodically for both
208	hosts, they won't be able to synchronize to each other. This is
209	a known denial-of-service attack, described at
210	https://www.eecis.udel.edu/~mills/onwire.html .
211
212	According to the document the NTP authentication is supposed to
213	protect symmetric associations against this attack, but that
214	doesn't seem to be the case. The state variables are updated even
215	when authentication fails and the peers are sending packets with
216	originate timestamps that don't match the transmit timestamps on
217	the receiving side.
218
219	This seems to be a very old problem, dating back to at least
220	xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905)
221	specifications, so other NTP implementations with support for
222	symmetric associations and authentication may be vulnerable too.
223	An update to the NTP RFC to correct this error is in-process.
224    Mitigation:
225        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
226	or the NTP Public Services Project Download Page
227        Note that for users of autokey, this specific style of MITM attack
228	is simply a long-known potential problem.
229        Configure ntpd with appropriate time sources and monitor ntpd.
230	Alert your staff if problems are detected. 
231    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat. 
232
233* New script: update-leap
234The update-leap script will verify and if necessary, update the
235leap-second definition file.
236It requires the following commands in order to work:
237
238	wget logger tr sed shasum
239
240Some may choose to run this from cron.  It needs more portability testing.
241
242Bug Fixes and Improvements:
243
244* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
245* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument.
246* [Bug 2346] "graceful termination" signals do not do peer cleanup.
247* [Bug 2728] See if C99-style structure initialization works.
248* [Bug 2747] Upgrade libevent to 2.1.5-beta.
249* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. .
250* [Bug 2751] jitter.h has stale copies of l_fp macros.
251* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
252* [Bug 2757] Quiet compiler warnings.
253* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
254* [Bug 2763] Allow different thresholds for forward and backward steps.
255* [Bug 2766] ntp-keygen output files should not be world-readable.
256* [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
257* [Bug 2771] nonvolatile value is documented in wrong units.
258* [Bug 2773] Early leap announcement from Palisade/Thunderbolt
259* [Bug 2774] Unreasonably verbose printout - leap pending/warning
260* [Bug 2775] ntp-keygen.c fails to compile under Windows.
261* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info.
262  Removed non-ASCII characters from some copyright comments.
263  Removed trailing whitespace.
264  Updated definitions for Meinberg clocks from current Meinberg header files.
265  Now use C99 fixed-width types and avoid non-ASCII characters in comments.
266  Account for updated definitions pulled from Meinberg header files.
267  Updated comments on Meinberg GPS receivers which are not only called GPS16x.
268  Replaced some constant numbers by defines from ntp_calendar.h
269  Modified creation of parse-specific variables for Meinberg devices
270  in gps16x_message().
271  Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
272  Modified mbg_tm_str() which now expexts an additional parameter controlling
273  if the time status shall be printed.
274* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
275* [Sec 2781] Authentication doesn't protect symmetric associations against
276  DoS attacks.
277* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE.
278* [Bug 2789] Quiet compiler warnings from libevent.
279* [Bug 2790] If ntpd sets the Windows MM timer highest resolution
280  pause briefly before measuring system clock precision to yield
281  correct results.
282* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer.
283* Use predefined function types for parse driver functions
284  used to set up function pointers.
285  Account for changed prototype of parse_inp_fnc_t functions.
286  Cast parse conversion results to appropriate types to avoid
287  compiler warnings.
288  Let ioctl() for Windows accept a (void *) to avoid compiler warnings
289  when called with pointers to different types.
290
291---
292NTP 4.2.8p1 (Harlan Stenn <stenn@ntp.org>, 2015/02/04) 
293
294Focus: Security and Bug fixes, enhancements.
295
296Severity: HIGH
297 
298In addition to bug fixes and enhancements, this release fixes the
299following high-severity vulnerabilities:
300
301* vallen is not validated in several places in ntp_crypto.c, leading
302  to a potential information leak or possibly a crash
303
304    References: Sec 2671 / CVE-2014-9297 / VU#852879
305    Affects: All NTP4 releases before 4.2.8p1 that are running autokey.
306    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
307    Date Resolved: Stable (4.2.8p1) 04 Feb 2015
308    Summary: The vallen packet value is not validated in several code
309             paths in ntp_crypto.c which can lead to information leakage
310	     or perhaps a crash of the ntpd process.
311    Mitigation - any of:
312	Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
313		or the NTP Public Services Project Download Page.
314	Disable Autokey Authentication by removing, or commenting out,
315		all configuration directives beginning with the "crypto"
316		keyword in your ntp.conf file. 
317    Credit: This vulnerability was discovered by Stephen Roettger of the
318    	Google Security Team, with additional cases found by Sebastian
319	Krahmer of the SUSE Security Team and Harlan Stenn of Network
320	Time Foundation. 
321
322* ::1 can be spoofed on some OSes, so ACLs based on IPv6 ::1 addresses
323  can be bypassed.
324
325    References: Sec 2672 / CVE-2014-9298 / VU#852879
326    Affects: All NTP4 releases before 4.2.8p1, under at least some
327	versions of MacOS and Linux. *BSD has not been seen to be vulnerable.
328    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:C) Base Score: 9
329    Date Resolved: Stable (4.2.8p1) 04 Feb 2014
330    Summary: While available kernels will prevent 127.0.0.1 addresses
331	from "appearing" on non-localhost IPv4 interfaces, some kernels
332	do not offer the same protection for ::1 source addresses on
333	IPv6 interfaces. Since NTP's access control is based on source
334	address and localhost addresses generally have no restrictions,
335	an attacker can send malicious control and configuration packets
336	by spoofing ::1 addresses from the outside. Note Well: This is
337	not really a bug in NTP, it's a problem with some OSes. If you
338	have one of these OSes where ::1 can be spoofed, ALL ::1 -based
339	ACL restrictions on any application can be bypassed!
340    Mitigation:
341        Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
342	or the NTP Public Services Project Download Page
343        Install firewall rules to block packets claiming to come from
344	::1 from inappropriate network interfaces. 
345    Credit: This vulnerability was discovered by Stephen Roettger of
346	the Google Security Team. 
347
348Additionally, over 30 bugfixes and improvements were made to the codebase.
349See the ChangeLog for more information.
350
351---
352NTP 4.2.8 (Harlan Stenn <stenn@ntp.org>, 2014/12/18) 
353 
354Focus: Security and Bug fixes, enhancements.
355 
356Severity: HIGH
357 
358In addition to bug fixes and enhancements, this release fixes the
359following high-severity vulnerabilities:
360
361************************** vv NOTE WELL vv *****************************
362
363The vulnerabilities listed below can be significantly mitigated by
364following the BCP of putting
365
366 restrict default ... noquery
367
368in the ntp.conf file.  With the exception of:
369
370   receive(): missing return on error
371   References: Sec 2670 / CVE-2014-9296 / VU#852879
372
373below (which is a limited-risk vulnerability), none of the recent
374vulnerabilities listed below can be exploited if the source IP is
375restricted from sending a 'query'-class packet by your ntp.conf file.
376
377************************** ^^ NOTE WELL ^^ *****************************
378
379* Weak default key in config_auth().
380
381  References: [Sec 2665] / CVE-2014-9293 / VU#852879
382  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
383  Vulnerable Versions: all releases prior to 4.2.7p11
384  Date Resolved: 28 Jan 2010
385
386  Summary: If no 'auth' key is set in the configuration file, ntpd
387	would generate a random key on the fly.  There were two
388	problems with this: 1) the generated key was 31 bits in size,
389	and 2) it used the (now weak) ntp_random() function, which was
390	seeded with a 32-bit value and could only provide 32 bits of
391	entropy.  This was sufficient back in the late 1990s when the
392	code was written.  Not today.
393
394  Mitigation - any of:
395	- Upgrade to 4.2.7p11 or later.
396	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
397
398  Credit: This vulnerability was noticed in ntp-4.2.6 by Neel Mehta
399  	of the Google Security Team.
400
401* Non-cryptographic random number generator with weak seed used by
402  ntp-keygen to generate symmetric keys.
403
404  References: [Sec 2666] / CVE-2014-9294 / VU#852879
405  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
406  Vulnerable Versions: All NTP4 releases before 4.2.7p230
407  Date Resolved: Dev (4.2.7p230) 01 Nov 2011
408
409  Summary: Prior to ntp-4.2.7p230 ntp-keygen used a weak seed to
410  	prepare a random number generator that was of good quality back
411	in the late 1990s. The random numbers produced was then used to
412	generate symmetric keys. In ntp-4.2.8 we use a current-technology
413	cryptographic random number generator, either RAND_bytes from
414	OpenSSL, or arc4random(). 
415
416  Mitigation - any of:
417  	- Upgrade to 4.2.7p230 or later.
418	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
419
420  Credit:  This vulnerability was discovered in ntp-4.2.6 by
421  	Stephen Roettger of the Google Security Team.
422
423* Buffer overflow in crypto_recv()
424
425  References: Sec 2667 / CVE-2014-9295 / VU#852879
426  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
427  Versions: All releases before 4.2.8
428  Date Resolved: Stable (4.2.8) 18 Dec 2014
429
430  Summary: When Autokey Authentication is enabled (i.e. the ntp.conf
431  	file contains a 'crypto pw ...' directive) a remote attacker
432	can send a carefully crafted packet that can overflow a stack
433	buffer and potentially allow malicious code to be executed
434	with the privilege level of the ntpd process.
435
436  Mitigation - any of:
437  	- Upgrade to 4.2.8, or later, or
438	- Disable Autokey Authentication by removing, or commenting out,
439	  all configuration directives beginning with the crypto keyword
440	  in your ntp.conf file. 
441
442  Credit: This vulnerability was discovered by Stephen Roettger of the
443  	Google Security Team. 
444
445* Buffer overflow in ctl_putdata()
446
447  References: Sec 2668 / CVE-2014-9295 / VU#852879
448  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
449  Versions: All NTP4 releases before 4.2.8
450  Date Resolved: Stable (4.2.8) 18 Dec 2014
451
452  Summary: A remote attacker can send a carefully crafted packet that
453  	can overflow a stack buffer and potentially allow malicious
454	code to be executed with the privilege level of the ntpd process.
455
456  Mitigation - any of:
457  	- Upgrade to 4.2.8, or later.
458	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
459
460  Credit: This vulnerability was discovered by Stephen Roettger of the
461  	Google Security Team. 
462
463* Buffer overflow in configure()
464
465  References: Sec 2669 / CVE-2014-9295 / VU#852879
466  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
467  Versions: All NTP4 releases before 4.2.8
468  Date Resolved: Stable (4.2.8) 18 Dec 2014
469
470  Summary: A remote attacker can send a carefully crafted packet that
471	can overflow a stack buffer and potentially allow malicious
472	code to be executed with the privilege level of the ntpd process.
473
474  Mitigation - any of:
475  	- Upgrade to 4.2.8, or later.
476	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
477
478  Credit: This vulnerability was discovered by Stephen Roettger of the
479	Google Security Team. 
480
481* receive(): missing return on error
482
483  References: Sec 2670 / CVE-2014-9296 / VU#852879
484  CVSS: (AV:N/AC:L/Au:N/C:N/I:N/A:P) Base Score: 5.0
485  Versions: All NTP4 releases before 4.2.8
486  Date Resolved: Stable (4.2.8) 18 Dec 2014
487
488  Summary: Code in ntp_proto.c:receive() was missing a 'return;' in
489  	the code path where an error was detected, which meant
490	processing did not stop when a specific rare error occurred.
491	We haven't found a way for this bug to affect system integrity.
492	If there is no way to affect system integrity the base CVSS
493	score for this bug is 0. If there is one avenue through which
494	system integrity can be partially affected, the base score
495	becomes a 5. If system integrity can be partially affected
496	via all three integrity metrics, the CVSS base score become 7.5.
497
498  Mitigation - any of:
499        - Upgrade to 4.2.8, or later,
500        - Remove or comment out all configuration directives
501	  beginning with the crypto keyword in your ntp.conf file. 
502
503  Credit: This vulnerability was discovered by Stephen Roettger of the
504  	Google Security Team. 
505
506See http://support.ntp.org/security for more information.
507
508New features / changes in this release:
509
510Important Changes
511
512* Internal NTP Era counters
513
514The internal counters that track the "era" (range of years) we are in
515rolls over every 136 years'.  The current "era" started at the stroke of
516midnight on 1 Jan 1900, and ends just before the stroke of midnight on
5171 Jan 2036.
518In the past, we have used the "midpoint" of the  range to decide which
519era we were in.  Given the longevity of some products, it became clear
520that it would be more functional to "look back" less, and "look forward"
521more.  We now compile a timestamp into the ntpd executable and when we
522get a timestamp we us the "built-on" to tell us what era we are in.
523This check "looks back" 10 years, and "looks forward" 126 years.
524
525* ntpdc responses disabled by default
526
527Dave Hart writes:
528
529For a long time, ntpq and its mostly text-based mode 6 (control) 
530protocol have been preferred over ntpdc and its mode 7 (private 
531request) protocol for runtime queries and configuration.  There has 
532been a goal of deprecating ntpdc, previously held back by numerous 
533capabilities exposed by ntpdc with no ntpq equivalent.  I have been 
534adding commands to ntpq to cover these cases, and I believe I've 
535covered them all, though I've not compared command-by-command 
536recently. 
537
538As I've said previously, the binary mode 7 protocol involves a lot of 
539hand-rolled structure layout and byte-swapping code in both ntpd and 
540ntpdc which is hard to get right.  As ntpd grows and changes, the 
541changes are difficult to expose via ntpdc while maintaining forward 
542and backward compatibility between ntpdc and ntpd.  In contrast, 
543ntpq's text-based, label=value approach involves more code reuse and 
544allows compatible changes without extra work in most cases. 
545
546Mode 7 has always been defined as vendor/implementation-specific while 
547mode 6 is described in RFC 1305 and intended to be open to interoperate 
548with other implementations.  There is an early draft of an updated 
549mode 6 description that likely will join the other NTPv4 RFCs 
550eventually. (http://tools.ietf.org/html/draft-odonoghue-ntpv4-control-01)
551
552For these reasons, ntpd 4.2.7p230 by default disables processing of 
553ntpdc queries, reducing ntpd's attack surface and functionally 
554deprecating ntpdc.  If you are in the habit of using ntpdc for certain 
555operations, please try the ntpq equivalent.  If there's no equivalent, 
556please open a bug report at http://bugs.ntp.org./
557
558In addition to the above, over 1100 issues have been resolved between
559the 4.2.6 branch and 4.2.8.  The ChangeLog file in the distribution
560lists these.
561
562--- 
563NTP 4.2.6p5 (Harlan Stenn <stenn@ntp.org>, 2011/12/24) 
564 
565Focus: Bug fixes
566 
567Severity: Medium 
568 
569This is a recommended upgrade. 
570
571This release updates sys_rootdisp and sys_jitter calculations to match the
572RFC specification, fixes a potential IPv6 address matching error for the
573"nic" and "interface" configuration directives, suppresses the creation of
574extraneous ephemeral associations for certain broadcastclient and
575multicastclient configurations, cleans up some ntpq display issues, and
576includes improvements to orphan mode, minor bugs fixes and code clean-ups.
577
578New features / changes in this release:
579
580ntpd
581
582 * Updated "nic" and "interface" IPv6 address handling to prevent 
583   mismatches with localhost [::1] and wildcard [::] which resulted from
584   using the address/prefix format (e.g. fe80::/64)
585 * Fix orphan mode stratum incorrectly counting to infinity
586 * Orphan parent selection metric updated to includes missing ntohl()
587 * Non-printable stratum 16 refid no longer sent to ntp
588 * Duplicate ephemeral associations suppressed for broadcastclient and
589   multicastclient without broadcastdelay
590 * Exclude undetermined sys_refid from use in loopback TEST12
591 * Exclude MODE_SERVER responses from KoD rate limiting
592 * Include root delay in clock_update() sys_rootdisp calculations
593 * get_systime() updated to exclude sys_residual offset (which only
594   affected bits "below" sys_tick, the precision threshold)
595 * sys.peer jitter weighting corrected in sys_jitter calculation
596
597ntpq
598
599 * -n option extended to include the billboard "server" column
600 * IPv6 addresses in the local column truncated to prevent overruns
601
602--- 
603NTP 4.2.6p4 (Harlan Stenn <stenn@ntp.org>, 2011/09/22) 
604 
605Focus: Bug fixes and portability improvements 
606 
607Severity: Medium 
608 
609This is a recommended upgrade. 
610 
611This release includes build infrastructure updates, code 
612clean-ups, minor bug fixes, fixes for a number of minor 
613ref-clock issues, and documentation revisions. 
614 
615Portability improvements affect AIX, HP-UX, Linux, OS X and 64-bit time_t. 
616 
617New features / changes in this release: 
618 
619Build system 
620 
621* Fix checking for struct rtattr 
622* Update config.guess and config.sub for AIX 
623* Upgrade required version of autogen and libopts for building 
624  from our source code repository 
625 
626ntpd 
627 
628* Back-ported several fixes for Coverity warnings from ntp-dev 
629* Fix a rare boundary condition in UNLINK_EXPR_SLIST() 
630* Allow "logconfig =allall" configuration directive 
631* Bind tentative IPv6 addresses on Linux 
632* Correct WWVB/Spectracom driver to timestamp CR instead of LF 
633* Improved tally bit handling to prevent incorrect ntpq peer status reports 
634* Exclude the Undisciplined Local Clock and ACTS drivers from the initial 
635  candidate list unless they are designated a "prefer peer" 
636* Prevent the consideration of Undisciplined Local Clock or ACTS drivers for 
637  selection during the 'tos orphanwait' period 
638* Prefer an Orphan Mode Parent over the Undisciplined Local Clock or ACTS 
639  drivers 
640* Improved support of the Parse Refclock trusttime flag in Meinberg mode 
641* Back-port utility routines from ntp-dev: mprintf(), emalloc_zero() 
642* Added the NTPD_TICKADJ_PPM environment variable for specifying baseline 
643  clock slew on Microsoft Windows 
644* Code cleanup in libntpq 
645 
646ntpdc 
647 
648* Fix timerstats reporting 
649 
650ntpdate 
651 
652* Reduce time required to set clock 
653* Allow a timeout greater than 2 seconds 
654 
655sntp 
656 
657* Backward incompatible command-line option change: 
658  -l/--filelog changed -l/--logfile (to be consistent with ntpd) 
659 
660Documentation 
661 
662* Update html2man. Fix some tags in the .html files 
663* Distribute ntp-wait.html 
664
665---
666NTP 4.2.6p3 (Harlan Stenn <stenn@ntp.org>, 2011/01/03)
667
668Focus: Bug fixes and portability improvements
669
670Severity: Medium
671
672This is a recommended upgrade.
673
674This release includes build infrastructure updates, code
675clean-ups, minor bug fixes, fixes for a number of minor
676ref-clock issues, and documentation revisions.
677
678Portability improvements in this release affect AIX, Atari FreeMiNT,
679FreeBSD4, Linux and Microsoft Windows.
680
681New features / changes in this release:
682
683Build system
684* Use lsb_release to get information about Linux distributions.
685* 'test' is in /usr/bin (instead of /bin) on some systems.
686* Basic sanity checks for the ChangeLog file.
687* Source certain build files with ./filename for systems without . in PATH.
688* IRIX portability fix.
689* Use a single copy of the "libopts" code.
690* autogen/libopts upgrade.
691* configure.ac m4 quoting cleanup.
692
693ntpd
694* Do not bind to IN6_IFF_ANYCAST addresses.
695* Log the reason for exiting under Windows.
696* Multicast fixes for Windows.
697* Interpolation fixes for Windows.
698* IPv4 and IPv6 Multicast fixes.
699* Manycast solicitation fixes and general repairs.
700* JJY refclock cleanup.
701* NMEA refclock improvements.
702* Oncore debug message cleanup.
703* Palisade refclock now builds under Linux.
704* Give RAWDCF more baud rates.
705* Support Truetime Satellite clocks under Windows.
706* Support Arbiter 1093C Satellite clocks under Windows.
707* Make sure that the "filegen" configuration command defaults to "enable".
708* Range-check the status codes (plus other cleanup) in the RIPE-NCC driver.
709* Prohibit 'includefile' directive in remote configuration command.
710* Fix 'nic' interface bindings.
711* Fix the way we link with openssl if openssl is installed in the base
712  system.
713
714ntp-keygen
715* Fix -V coredump.
716* OpenSSL version display cleanup.
717
718ntpdc
719* Many counters should be treated as unsigned.
720
721ntpdate
722* Do not ignore replies with equal receive and transmit timestamps.
723
724ntpq
725* libntpq warning cleanup.
726
727ntpsnmpd
728* Correct SNMP type for "precision" and "resolution".
729* Update the MIB from the draft version to RFC-5907.
730
731sntp
732* Display timezone offset when showing time for sntp in the local
733  timezone.
734* Pay proper attention to RATE KoD packets.
735* Fix a miscalculation of the offset.
736* Properly parse empty lines in the key file.
737* Logging cleanup.
738* Use tv_usec correctly in set_time().
739* Documentation cleanup.
740
741---
742NTP 4.2.6p2 (Harlan Stenn <stenn@ntp.org>, 2010/07/08)
743
744Focus: Bug fixes and portability improvements
745
746Severity: Medium
747
748This is a recommended upgrade.
749
750This release includes build infrastructure updates, code
751clean-ups, minor bug fixes, fixes for a number of minor
752ref-clock issues, improved KOD handling, OpenSSL related
753updates and documentation revisions.
754
755Portability improvements in this release affect Irix, Linux,
756Mac OS, Microsoft Windows, OpenBSD and QNX6
757
758New features / changes in this release:
759
760ntpd
761* Range syntax for the trustedkey configuration directive
762* Unified IPv4 and IPv6 restrict lists
763
764ntpdate
765* Rate limiting and KOD handling
766
767ntpsnmpd
768* default connection to net-snmpd via a unix-domain socket
769* command-line 'socket name' option
770
771ntpq / ntpdc
772* support for the "passwd ..." syntax
773* key-type specific password prompts
774
775sntp
776* MD5 authentication of an ntpd
777* Broadcast and crypto
778* OpenSSL support
779
780---
781NTP 4.2.6p1 (Harlan Stenn <stenn@ntp.org>, 2010/04/09)
782
783Focus: Bug fixes, portability fixes, and documentation improvements
784
785Severity: Medium
786
787This is a recommended upgrade.
788
789---
790NTP 4.2.6 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
791
792Focus: enhancements and bug fixes.
793
794---
795NTP 4.2.4p8 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
796
797Focus: Security Fixes
798
799Severity: HIGH
800
801This release fixes the following high-severity vulnerability:
802
803* [Sec 1331] DoS with mode 7 packets - CVE-2009-3563.
804
805  See http://support.ntp.org/security for more information.
806
807  NTP mode 7 (MODE_PRIVATE) is used by the ntpdc query and control utility.
808  In contrast, ntpq uses NTP mode 6 (MODE_CONTROL), while routine NTP time
809  transfers use modes 1 through 5.  Upon receipt of an incorrect mode 7
810  request or a mode 7 error response from an address which is not listed
811  in a "restrict ... noquery" or "restrict ... ignore" statement, ntpd will
812  reply with a mode 7 error response (and log a message).  In this case:
813
814	* If an attacker spoofs the source address of ntpd host A in a
815	  mode 7 response packet sent to ntpd host B, both A and B will
816	  continuously send each other error responses, for as long as
817	  those packets get through.
818
819	* If an attacker spoofs an address of ntpd host A in a mode 7
820	  response packet sent to ntpd host A, A will respond to itself
821	  endlessly, consuming CPU and logging excessively.
822
823  Credit for finding this vulnerability goes to Robin Park and Dmitri
824  Vinokurov of Alcatel-Lucent.
825
826THIS IS A STRONGLY RECOMMENDED UPGRADE.
827
828---
829ntpd now syncs to refclocks right away.
830
831Backward-Incompatible changes:
832
833ntpd no longer accepts '-v name' or '-V name' to define internal variables.
834Use '--var name' or '--dvar name' instead. (Bug 817)
835
836---
837NTP 4.2.4p7 (Harlan Stenn <stenn@ntp.org>, 2009/05/04)
838
839Focus: Security and Bug Fixes
840
841Severity: HIGH
842
843This release fixes the following high-severity vulnerability:
844
845* [Sec 1151] Remote exploit if autokey is enabled.  CVE-2009-1252
846
847  See http://support.ntp.org/security for more information.
848
849  If autokey is enabled (if ntp.conf contains a "crypto pw whatever"
850  line) then a carefully crafted packet sent to the machine will cause
851  a buffer overflow and possible execution of injected code, running
852  with the privileges of the ntpd process (often root).
853
854  Credit for finding this vulnerability goes to Chris Ries of CMU.
855
856This release fixes the following low-severity vulnerabilities:
857
858* [Sec 1144] limited (two byte) buffer overflow in ntpq.  CVE-2009-0159
859  Credit for finding this vulnerability goes to Geoff Keating of Apple.
860  
861* [Sec 1149] use SO_EXCLUSIVEADDRUSE on Windows
862  Credit for finding this issue goes to Dave Hart.
863
864This release fixes a number of bugs and adds some improvements:
865
866* Improved logging
867* Fix many compiler warnings
868* Many fixes and improvements for Windows
869* Adds support for AIX 6.1
870* Resolves some issues under MacOS X and Solaris
871
872THIS IS A STRONGLY RECOMMENDED UPGRADE.
873
874---
875NTP 4.2.4p6 (Harlan Stenn <stenn@ntp.org>, 2009/01/07)
876
877Focus: Security Fix
878
879Severity: Low
880
881This release fixes oCERT.org's CVE-2009-0021, a vulnerability affecting
882the OpenSSL library relating to the incorrect checking of the return
883value of EVP_VerifyFinal function.
884
885Credit for finding this issue goes to the Google Security Team for
886finding the original issue with OpenSSL, and to ocert.org for finding
887the problem in NTP and telling us about it.
888
889This is a recommended upgrade.
890---
891NTP 4.2.4p5 (Harlan Stenn <stenn@ntp.org>, 2008/08/17)
892
893Focus: Minor Bugfixes 
894
895This release fixes a number of Windows-specific ntpd bugs and 
896platform-independent ntpdate bugs. A logging bugfix has been applied
897to the ONCORE driver.
898
899The "dynamic" keyword and is now obsolete and deferred binding to local 
900interfaces is the new default. The minimum time restriction for the 
901interface update interval has been dropped. 
902
903A number of minor build system and documentation fixes are included. 
904
905This is a recommended upgrade for Windows. 
906
907---
908NTP 4.2.4p4 (Harlan Stenn <stenn@ntp.org>, 2007/09/10)
909
910Focus: Minor Bugfixes
911
912This release updates certain copyright information, fixes several display
913bugs in ntpdc, avoids SIGIO interrupting malloc(), cleans up file descriptor
914shutdown in the parse refclock driver, removes some lint from the code,
915stops accessing certain buffers immediately after they were freed, fixes
916a problem with non-command-line specification of -6, and allows the loopback
917interface to share addresses with other interfaces.
918
919---
920NTP 4.2.4p3 (Harlan Stenn <stenn@ntp.org>, 2007/06/29)
921
922Focus: Minor Bugfixes
923
924This release fixes a bug in Windows that made it difficult to
925terminate ntpd under windows.
926This is a recommended upgrade for Windows.
927
928---
929NTP 4.2.4p2 (Harlan Stenn <stenn@ntp.org>, 2007/06/19)
930
931Focus: Minor Bugfixes
932
933This release fixes a multicast mode authentication problem, 
934an error in NTP packet handling on Windows that could lead to 
935ntpd crashing, and several other minor bugs. Handling of 
936multicast interfaces and logging configuration were improved. 
937The required versions of autogen and libopts were incremented.
938This is a recommended upgrade for Windows and multicast users.
939
940---
941NTP 4.2.4 (Harlan Stenn <stenn@ntp.org>, 2006/12/31)
942
943Focus: enhancements and bug fixes.
944
945Dynamic interface rescanning was added to simplify the use of ntpd in 
946conjunction with DHCP. GNU AutoGen is used for its command-line options 
947processing. Separate PPS devices are supported for PARSE refclocks, MD5 
948signatures are now provided for the release files. Drivers have been 
949added for some new ref-clocks and have been removed for some older 
950ref-clocks. This release also includes other improvements, documentation 
951and bug fixes. 
952
953K&R C is no longer supported as of NTP-4.2.4. We are now aiming for ANSI 
954C support.
955
956---
957NTP 4.2.0 (Harlan Stenn <stenn@ntp.org>, 2003/10/15)
958
959Focus: enhancements and bug fixes.
960