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