Opened 6 years ago

Closed 6 years ago

#7334 closed enhancement (fixed)


Reported by: Fernando de Oliveira Owned by: Fernando de Oliveira
Priority: high Milestone: 7.9
Component: BOOK Version: SVN
Severity: normal Keywords:


Security Fixes Including CVE-2015-5300 and CVE-2015-7704

NTP 4.2.8p5

Focus: Security, Bug fixes, enhancements.

Severity: MEDIUM

In addition to bug fixes and enhancements, this release fixes the
following medium-severity vulnerability:

• Small-step/big-step.  Close the panic gate earlier.
  ◦ References: Sec 2956, CVE-2015-5300
  ◦ Affects: All ntp-4 releases up to, but not including 4.2.8p5, and
    4.3.0 up to, but not including 4.3.78
  ◦ CVSS3: (AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:N/A:L) Base Score: 4.0, MEDIUM
  ◦ Summary: If ntpd is always started with the -g option, which is
    common and against long-standing recommendation, and if at the
    moment ntpd is restarted an attacker can immediately respond to
    enough requests from enough sources trusted by the target, which is
    difficult and not common, there is a window of opportunity where the
    attacker can cause ntpd to set the time to an arbitrary value.
    Similarly, if an attacker is able to respond to enough requests from
    enough sources trusted by the target, the attacker can cause ntpd to
    abort and restart, at which point it can tell the target to set the
    time to an arbitrary value if and only if ntpd was re-started
    against long-standing recommendation with the -g flag, or if ntpd
    was not given the -g flag, the attacker can move the target system's
    time by at most 900 seconds' time per attack.
  ◦ Mitigation:
      Configure ntpd to get time from multiple sources.
      Upgrade to 4.2.8p5, or later, from the NTP Project Download Page
        or the NTP Public Services Project Download Page
      As we've long documented, only use the -g option to ntpd in
        cold-start situations.
      Monitor your ntpd instances. 
  ◦ Credit: This weakness was discovered by Aanchal Malhotra, Isaac E.
    Cohen, and Sharon Goldberg at Boston University. 

  ◦ NOTE WELL: The -g flag disables the limit check on the panic_gate in
    ntpd, which is 900 seconds by default. The bug identified by the
    researchers at Boston University is that the panic_gate check was
    only re-enabled after the first change to the system clock that was
    greater than 128 milliseconds, by default. The correct behavior is
    that the panic_gate check should be re-enabled after any initial
    time correction.
    If an attacker is able to inject consistent but
    erroneous time responses to your systems via the network or "over
    the air", perhaps by spoofing radio, cellphone, or navigation
    satellite transmissions, they are in a great position to affect your
    system's clock. There comes a point where your very best defenses

      Configure ntpd to get time from multiple sources.
      Monitor your ntpd instances. 

Other fixes:

• Coverity submission process updated from Coverity 5 to Coverity 7.
  The NTP codebase has been undergoing regular Coverity scans on an
  ongoing basis since 2006.  As part of our recent upgrade from Coverity
  5 to Coverity 7, Coverity identified 16 nits in some of the
  newly-written Unity test programs.  These were fixed.
• [Bug 2829] Clean up pipe_fds in ntpd.c
• [Bug 2887] stratum -1 config results as showing value 99
  - fudge stratum should only accept values [0..16].
• [Bug 2932] Update leapsecond file info in miscopt.html.  CWoodbury,
• [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in.
• [Bug 2944] errno is not preserved properly in ntpdate after sendto
  - applied patch by Christos Zoulas.
• [Bug 2952] Peer associations broken by fix for Bug 2901/CVE-2015-7704.
• [Bug 2954] Version 4.2.8p4 crashes on startup on some OSes.
  - fixed data race conditions in threaded DNS worker.
  - limit threading warm-up to linux; FreeBSD bombs on it.
• [Bug 2957] 'unsigned int' vs 'size_t' format clash.
  - accept key file only if there are no parsing errors
  - fixed size_t/u_int format clash
  - fixed wrong use of 'strlcpy'
• [Bug 2958] ntpq: fatal error messages need a final newline. Craig
• [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets.
  - fixed several other warnings (cast-alignment, missing const, missing
  - promote use of 'size_t' for values that express a size
  - use ptr-to-const for read-only arguments
  - make sure SOCKET values are not truncated (win32-specific)
  - format string fixes
• [Bug 2965] Local clock didn't work since 4.2.8p4.  Martin Burnicki.
• [Bug 2967] ntpdate command suffers an assertion failure
  - fixed ntp_rfc2553.c to return proper address length.
• [Bug 2969]  Seg fault from ntpq/mrulist when looking at server with
  lots of clients.
• [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
  - changed stacked/nested handling of CTRL-C.
• Unity cleanup for FreeBSD-6.4.  Harlan Stenn.
• Unity test cleanup.  Harlan Stenn.
• Libevent autoconf pthread fixes for FreeBSD-10.  Harlan Stenn.
• Header cleanup in tests/sandbox/uglydate.c.  Harlan Stenn.
• Header cleanup in tests/libntp/sfptostr.c.  Harlan Stenn.
• Quiet a warning from clang.  Harlan Stenn.

Change History (2)

comment:1 by Fernando de Oliveira, 6 years ago

Owner: changed from blfs-book@… to Fernando de Oliveira
Status: newassigned

comment:2 by Fernando de Oliveira, 6 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.