Bug 1176032 (CVE-2014-9293)

Summary: CVE-2014-9293 ntp: automatic generation of weak default key in config_auth()
Product: [Other] Security Response Reporter: Huzaifa S. Sidhpurwala <huzaifas>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: carnil, fkrska, fweimer, john.haxby, jrusnack, mdshaikh, mjc, mlichvar, mpoole, ovasik, sardella, security-response-team, thozza, vkaigoro
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ntp 4.2.8 Doc Type: Bug Fix
Doc Text:
It was found that ntpd automatically generated weak keys for its internal use if no ntpdc request authentication key was specified in the ntp.conf configuration file. A remote attacker able to match the configured IP restrictions could guess the generated key, and possibly use it to send ntpdc query or configuration requests.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-12-20 02:47:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1176067, 1176068, 1176069, 1176070, 1176100, 1176191, 1176680, 1182166    
Bug Blocks: 1176041    

Description Huzaifa S. Sidhpurwala 2014-12-19 08:50:56 UTC
As per upstream NTP security advisory:

If no 'auth' key is set in the configuration file, ntpd  would generate a random key on the fly.  There were two problems with this: 1) the generated key was 31 bits in size, and 2) it used the (now weak) ntp_random() function, which was seeded with a 32-bit value and could only provide 32 bits of entropy.  This was sufficient back in the late 1990s when the code was written.  Not today.

Mitigation: Upgrade to 4.2.7p11 or later.

This vulnerability was noticed in ntp-4.2.6 by Neel Mehta of the Google Security Team.

Comment 1 Tomas Hoger 2014-12-19 09:06:51 UTC
Upstream mentions the issue was fixed in 4.2.7p11.  The following commit from between 4.2.7p10 and 4.2.7p11 seems to remove automatic auth key generation among other changes.  Commit message does not mention removal of the code at all:

http://bk1.ntp.org/ntp-dev/ntpd/ntp_config.c?PAGE=diffs&REV=4b6089c5KXhXqZqocF0DMXnQQsjOuw

Upstream change to the NEWS file with details quoted in comment 0:

http://bk1.ntp.org/ntp-dev/?PAGE=patch&REV=5493dc3dofY6drKJde9W-5O1M3s4eg

Comment 8 Tomas Hoger 2014-12-19 13:45:17 UTC
Upstream bug:
http://bugs.ntp.org/show_bug.cgi?id=2665

Comment 11 Tomas Hoger 2014-12-19 16:21:30 UTC
Created ntp tracking bugs for this issue:

Affects: fedora-all [bug 1176191]

Comment 12 errata-xmlrpc 2014-12-20 00:44:21 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 5

Via RHSA-2014:2025 https://rhn.redhat.com/errata/RHSA-2014-2025.html

Comment 13 errata-xmlrpc 2014-12-20 02:40:35 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6
  Red Hat Enterprise Linux 7

Via RHSA-2014:2024 https://rhn.redhat.com/errata/RHSA-2014-2024.html

Comment 14 Fedora Update System 2014-12-22 02:37:28 UTC
ntp-4.2.6p5-19.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 18 Fedora Update System 2014-12-23 18:28:34 UTC
ntp-4.2.6p5-25.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2014-12-31 19:00:28 UTC
ntp-4.2.6p5-13.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 22 Tomas Hoger 2015-01-07 12:07:15 UTC
Blog post from the original reporter, which mentions how this issue can help with exploitation of other issue (CVE-2014-9295, bug 1176037):

http://googleprojectzero.blogspot.com/2015/01/finding-and-exploiting-ntpd.html

Comment 24 Florian Weimer 2015-01-07 16:28:50 UTC
Mitigation:

Issue these commands to explicitly generate a strong key and add it to the
ntpd configuration:

    echo trustedkey 65535 >> /etc/ntp.conf
    printf "65535\tM\t%s\n" $(tr -cd a-zA-Z0-9 < /dev/urandom | head -c 16) >> /etc/ntp/keys

The generated key has about 95 bits of entropy.

Comment 26 errata-xmlrpc 2015-01-28 18:52:18 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6.5 EUS - Server and Compute Node Only

Via RHSA-2015:0104 https://rhn.redhat.com/errata/RHSA-2015-0104.html