xref: /freebsd/contrib/ntp/NEWS (revision 68ba7e87e74b00b0511b346607b464f318c91083)
12b15cb3dSCy Schubert---
23311ff84SXin LI
3*68ba7e87SXin LINTP 4.2.8p6
4*68ba7e87SXin LI
5*68ba7e87SXin LIFocus: Security, Bug fixes, enhancements.
6*68ba7e87SXin LI
7*68ba7e87SXin LISeverity: MEDIUM
8*68ba7e87SXin LI
9*68ba7e87SXin LIIn addition to bug fixes and enhancements, this release fixes the
10*68ba7e87SXin LIfollowing X low- and Y medium-severity vulnerabilities:
11*68ba7e87SXin LI
12*68ba7e87SXin LI* Potential Infinite Loop in 'ntpq'
13*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
14*68ba7e87SXin LI   References: Sec 2548 / CVE-2015-8158
15*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
16*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
17*68ba7e87SXin LI   CVSS2: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
18*68ba7e87SXin LI   CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
19*68ba7e87SXin LI   Summary: 'ntpq' processes incoming packets in a loop in 'getresponse()'.
20*68ba7e87SXin LI	The loop's only stopping conditions are receiving a complete and
21*68ba7e87SXin LI	correct response or hitting a small number of error conditions.
22*68ba7e87SXin LI	If the packet contains incorrect values that don't trigger one of
23*68ba7e87SXin LI	the error conditions, the loop continues to receive new packets.
24*68ba7e87SXin LI	Note well, this is an attack against an instance of 'ntpq', not
25*68ba7e87SXin LI	'ntpd', and this attack requires the attacker to do one of the
26*68ba7e87SXin LI	following:
27*68ba7e87SXin LI	* Own a malicious NTP server that the client trusts
28*68ba7e87SXin LI	* Prevent a legitimate NTP server from sending packets to
29*68ba7e87SXin LI	    the 'ntpq' client
30*68ba7e87SXin LI	* MITM the 'ntpq' communications between the 'ntpq' client
31*68ba7e87SXin LI	    and the NTP server
32*68ba7e87SXin LI   Mitigation:
33*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
34*68ba7e87SXin LI	or the NTP Public Services Project Download Page
35*68ba7e87SXin LI   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
36*68ba7e87SXin LI
37*68ba7e87SXin LI* 0rigin: Zero Origin Timestamp Bypass
38*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
39*68ba7e87SXin LI   References: Sec 2945 / CVE-2015-8138
40*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
41*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
42*68ba7e87SXin LI   CVSS2: (AV:N/AC:L/Au:N/C:N/I:P/A:N) Base Score: 5.0 - MEDIUM
43*68ba7e87SXin LI   CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
44*68ba7e87SXin LI	(3.7 - LOW if you score AC:L)
45*68ba7e87SXin LI   Summary: To distinguish legitimate peer responses from forgeries, a
46*68ba7e87SXin LI	client attempts to verify a response packet by ensuring that the
47*68ba7e87SXin LI	origin timestamp in the packet matches the origin timestamp it
48*68ba7e87SXin LI	transmitted in its last request.  A logic error exists that
49*68ba7e87SXin LI	allows packets with an origin timestamp of zero to bypass this
50*68ba7e87SXin LI	check whenever there is not an outstanding request to the server.
51*68ba7e87SXin LI   Mitigation:
52*68ba7e87SXin LI	Configure 'ntpd' to get time from multiple sources.
53*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
54*68ba7e87SXin LI	    or the NTP Public Services Project Download Page.
55*68ba7e87SXin LI	Monitor your 'ntpd= instances.
56*68ba7e87SXin LI   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
57*68ba7e87SXin LI
58*68ba7e87SXin LI* Stack exhaustion in recursive traversal of restriction list
59*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016
60*68ba7e87SXin LI   References: Sec 2940 / CVE-2015-7978
61*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
62*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
63*68ba7e87SXin LI   CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
64*68ba7e87SXin LI   Summary: An unauthenticated 'ntpdc reslist' command can cause a
65*68ba7e87SXin LI   	segmentation fault in ntpd by exhausting the call stack.
66*68ba7e87SXin LI   Mitigation:
67*68ba7e87SXin LI	Implement BCP-38.
68*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
69*68ba7e87SXin LI	    or the NTP Public Services Project Download Page.
70*68ba7e87SXin LI	If you are unable to upgrade:
71*68ba7e87SXin LI            In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
72*68ba7e87SXin LI	    If you must enable mode 7:
73*68ba7e87SXin LI		configure the use of a 'requestkey' to control who can
74*68ba7e87SXin LI		    issue mode 7 requests.
75*68ba7e87SXin LI		configure 'restrict noquery' to further limit mode 7
76*68ba7e87SXin LI		    requests to trusted sources.
77*68ba7e87SXin LI		Monitor your ntpd instances.
78*68ba7e87SXin LI   Credit: This weakness was discovered by Stephen Gray at Cisco ASIG.
79*68ba7e87SXin LI
80*68ba7e87SXin LI* Off-path Denial of Service (!DoS) attack on authenticated broadcast mode
81*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
82*68ba7e87SXin LI   References: Sec 2942 / CVE-2015-7979
83*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
84*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
85*68ba7e87SXin LI   CVSS: (AV:N/AC:M/Au:N/C:N/I:P/A:P) Base Score: 5.8
86*68ba7e87SXin LI   Summary: An off-path attacker can send broadcast packets with bad
87*68ba7e87SXin LI	authentication (wrong key, mismatched key, incorrect MAC, etc)
88*68ba7e87SXin LI	to broadcast clients. It is observed that the broadcast client
89*68ba7e87SXin LI	tears down the association with the broadcast server upon
90*68ba7e87SXin LI	receiving just one bad packet.
91*68ba7e87SXin LI   Mitigation:
92*68ba7e87SXin LI	Implement BCP-38.
93*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
94*68ba7e87SXin LI	or the NTP Public Services Project Download Page.
95*68ba7e87SXin LI	Monitor your 'ntpd' instances.
96*68ba7e87SXin LI	If this sort of attack is an active problem for you, you have
97*68ba7e87SXin LI	    deeper problems to investigate.  In this case also consider
98*68ba7e87SXin LI	    having smaller NTP broadcast domains.
99*68ba7e87SXin LI   Credit: This weakness was discovered by Aanchal Malhotra of Boston
100*68ba7e87SXin LI   	University.
101*68ba7e87SXin LI
102*68ba7e87SXin LI* reslist NULL pointer dereference
103*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
104*68ba7e87SXin LI   References: Sec 2939 / CVE-2015-7977
105*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
106*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
107*68ba7e87SXin LI   CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
108*68ba7e87SXin LI   Summary: An unauthenticated 'ntpdc reslist' command can cause a
109*68ba7e87SXin LI	segmentation fault in ntpd by causing a NULL pointer dereference.
110*68ba7e87SXin LI   Mitigation:
111*68ba7e87SXin LI	Implement BCP-38.
112*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from NTP Project Download Page or
113*68ba7e87SXin LI	the NTP Public Services Project Download Page.
114*68ba7e87SXin LI	If you are unable to upgrade:
115*68ba7e87SXin LI	    mode 7 is disabled by default.  Don't enable it.
116*68ba7e87SXin LI	    If you must enable mode 7:
117*68ba7e87SXin LI		configure the use of a 'requestkey' to control who can
118*68ba7e87SXin LI		    issue mode 7 requests.
119*68ba7e87SXin LI		configure 'restrict noquery' to further limit mode 7
120*68ba7e87SXin LI		    requests to trusted sources.
121*68ba7e87SXin LI	Monitor your ntpd instances.
122*68ba7e87SXin LI   Credit: This weakness was discovered by Stephen Gray of Cisco ASIG.
123*68ba7e87SXin LI
124*68ba7e87SXin LI* 'ntpq saveconfig' command allows dangerous characters in filenames.
125*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
126*68ba7e87SXin LI   References: Sec 2938 / CVE-2015-7976
127*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
128*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
129*68ba7e87SXin LI   CVSS: (AV:N/AC:L/Au:S/C:N/I:P/A:N) Base Score: 4.0 - MEDIUM
130*68ba7e87SXin LI   Summary: The ntpq saveconfig command does not do adequate filtering
131*68ba7e87SXin LI   	of special characters from the supplied filename.
132*68ba7e87SXin LI	Note well: The ability to use the saveconfig command is controlled
133*68ba7e87SXin LI	by the 'restrict nomodify' directive, and the recommended default
134*68ba7e87SXin LI	configuration is to disable this capability.  If the ability to
135*68ba7e87SXin LI	execute a 'saveconfig' is required, it can easily (and should) be
136*68ba7e87SXin LI	limited and restricted to a known small number of IP addresses.
137*68ba7e87SXin LI   Mitigation:
138*68ba7e87SXin LI	Implement BCP-38.
139*68ba7e87SXin LI	use 'restrict default nomodify' in your 'ntp.conf' file.
140*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page.
141*68ba7e87SXin LI	If you are unable to upgrade:
142*68ba7e87SXin LI	    build NTP with 'configure --disable-saveconfig' if you will
143*68ba7e87SXin LI	    	never need this capability, or
144*68ba7e87SXin LI	    use 'restrict default nomodify' in your 'ntp.conf' file.  Be
145*68ba7e87SXin LI		careful about what IPs have the ability to send 'modify'
146*68ba7e87SXin LI		requests to 'ntpd'.
147*68ba7e87SXin LI	Monitor your ntpd instances.
148*68ba7e87SXin LI	'saveconfig' requests are logged to syslog - monitor your syslog files.
149*68ba7e87SXin LI   Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
150*68ba7e87SXin LI
151*68ba7e87SXin LI* nextvar() missing length check in ntpq
152*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
153*68ba7e87SXin LI   References: Sec 2937 / CVE-2015-7975
154*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
155*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
156*68ba7e87SXin LI   CVSS: (AV:L/AC:H/Au:N/C:N/I:N/A:P) Base Score: 1.2 - LOW
157*68ba7e87SXin LI	If you score A:C, this becomes 4.0.
158*68ba7e87SXin LI   CVSSv3: (CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) Base Score 2.9, LOW
159*68ba7e87SXin LI   Summary: ntpq may call nextvar() which executes a memcpy() into the
160*68ba7e87SXin LI	name buffer without a proper length check against its maximum
161*68ba7e87SXin LI	length of 256 bytes. Note well that we're taking about ntpq here.
162*68ba7e87SXin LI	The usual worst-case effect of this vulnerability is that the
163*68ba7e87SXin LI	specific instance of ntpq will crash and the person or process
164*68ba7e87SXin LI	that did this will have stopped themselves.
165*68ba7e87SXin LI   Mitigation:
166*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
167*68ba7e87SXin LI	    or the NTP Public Services Project Download Page.
168*68ba7e87SXin LI	If you are unable to upgrade:
169*68ba7e87SXin LI	    If you have scripts that feed input to ntpq make sure there are
170*68ba7e87SXin LI		some sanity checks on the input received from the "outside".
171*68ba7e87SXin LI	    This is potentially more dangerous if ntpq is run as root.
172*68ba7e87SXin LI   Credit: This weakness was discovered by Jonathan Gardner at Cisco ASIG.
173*68ba7e87SXin LI
174*68ba7e87SXin LI* Skeleton Key: Any trusted key system can serve time
175*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
176*68ba7e87SXin LI   References: Sec 2936 / CVE-2015-7974
177*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
178*68ba7e87SXin LI	4.3.0 up to, but not including 4.3.90
179*68ba7e87SXin LI   CVSS: (AV:N/AC:H/Au:S/C:N/I:C/A:N) Base Score: 4.9
180*68ba7e87SXin LI   Summary: Symmetric key encryption uses a shared trusted key. The
181*68ba7e87SXin LI	reported title for this issue was "Missing key check allows
182*68ba7e87SXin LI	impersonation between authenticated peers" and the report claimed
183*68ba7e87SXin LI	"A key specified only for one server should only work to
184*68ba7e87SXin LI	authenticate that server, other trusted keys should be refused."
185*68ba7e87SXin LI	Except there has never been any correlation between this trusted
186*68ba7e87SXin LI	key and server v. clients machines and there has never been any
187*68ba7e87SXin LI	way to specify a key only for one server. We have treated this as
188*68ba7e87SXin LI	an enhancement request, and ntp-4.2.8p6 includes other checks and
189*68ba7e87SXin LI	tests to strengthen clients against attacks coming from broadcast
190*68ba7e87SXin LI	servers.
191*68ba7e87SXin LI   Mitigation:
192*68ba7e87SXin LI	Implement BCP-38.
193*68ba7e87SXin LI	If this scenario represents a real or a potential issue for you,
194*68ba7e87SXin LI	    upgrade to 4.2.8p6, or later, from the NTP Project Download
195*68ba7e87SXin LI	    Page or the NTP Public Services Project Download Page, and
196*68ba7e87SXin LI	    use the new field in the ntp.keys file that specifies the list
197*68ba7e87SXin LI	    of IPs that are allowed to serve time. Note that this alone
198*68ba7e87SXin LI	    will not protect against time packets with forged source IP
199*68ba7e87SXin LI	    addresses, however other changes in ntp-4.2.8p6 provide
200*68ba7e87SXin LI	    significant mitigation against broadcast attacks. MITM attacks
201*68ba7e87SXin LI	    are a different story.
202*68ba7e87SXin LI	If you are unable to upgrade:
203*68ba7e87SXin LI	    Don't use broadcast mode if you cannot monitor your client
204*68ba7e87SXin LI	    	servers.
205*68ba7e87SXin LI	    If you choose to use symmetric keys to authenticate time
206*68ba7e87SXin LI	    	packets in a hostile environment where ephemeral time
207*68ba7e87SXin LI		servers can be created, or if it is expected that malicious
208*68ba7e87SXin LI		time servers will participate in an NTP broadcast domain,
209*68ba7e87SXin LI		limit the number of participating systems that participate
210*68ba7e87SXin LI		in the shared-key group.
211*68ba7e87SXin LI	Monitor your ntpd instances.
212*68ba7e87SXin LI   Credit: This weakness was discovered by Matt Street of Cisco ASIG.
213*68ba7e87SXin LI
214*68ba7e87SXin LI* Deja Vu: Replay attack on authenticated broadcast mode
215*68ba7e87SXin LI   Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
216*68ba7e87SXin LI   References: Sec 2935 / CVE-2015-7973
217*68ba7e87SXin LI   Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
218*68ba7e87SXin LI   	4.3.0 up to, but not including 4.3.90
219*68ba7e87SXin LI   CVSS: (AV:A/AC:M/Au:N/C:N/I:P/A:P) Base Score: 4.3 - MEDIUM
220*68ba7e87SXin LI   Summary: If an NTP network is configured for broadcast operations then
221*68ba7e87SXin LI   	either a man-in-the-middle attacker or a malicious participant
222*68ba7e87SXin LI	that has the same trusted keys as the victim can replay time packets.
223*68ba7e87SXin LI   Mitigation:
224*68ba7e87SXin LI	Implement BCP-38.
225*68ba7e87SXin LI	Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
226*68ba7e87SXin LI	    or the NTP Public Services Project Download Page.
227*68ba7e87SXin LI	If you are unable to upgrade:
228*68ba7e87SXin LI	    Don't use broadcast mode if you cannot monitor your client servers.
229*68ba7e87SXin LI	Monitor your ntpd instances.
230*68ba7e87SXin LI   Credit: This weakness was discovered by Aanchal Malhotra of Boston
231*68ba7e87SXin LI	University.
232*68ba7e87SXin LI
233*68ba7e87SXin LIOther fixes:
234*68ba7e87SXin LI
235*68ba7e87SXin LI* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
236*68ba7e87SXin LI* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
237*68ba7e87SXin LI  - applied patch by shenpeng11@huawei.com with minor adjustments
238*68ba7e87SXin LI* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
239*68ba7e87SXin LI* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
240*68ba7e87SXin LI* [Bug 2892] Several test cases assume IPv6 capabilities even when
241*68ba7e87SXin LI             IPv6 is disabled in the build. perlinger@ntp.org
242*68ba7e87SXin LI  - Found this already fixed, but validation led to cleanup actions.
243*68ba7e87SXin LI* [Bug 2905] DNS lookups broken. perlinger@ntp.org
244*68ba7e87SXin LI  - added limits to stack consumption, fixed some return code handling
245*68ba7e87SXin LI* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
246*68ba7e87SXin LI  - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
247*68ba7e87SXin LI  - make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
248*68ba7e87SXin LI* [Bug 2980] reduce number of warnings. perlinger@ntp.org
249*68ba7e87SXin LI  - integrated several patches from Havard Eidnes (he@uninett.no)
250*68ba7e87SXin LI* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
251*68ba7e87SXin LI  - implement 'auth_log2()' using integer bithack instead of float calculation
252*68ba7e87SXin LI* Make leapsec_query debug messages less verbose.  Harlan Stenn.
253*68ba7e87SXin LI
254*68ba7e87SXin LI---
255*68ba7e87SXin LI
2563311ff84SXin LINTP 4.2.8p5
2573311ff84SXin LI
2583311ff84SXin LIFocus: Security, Bug fixes, enhancements.
2593311ff84SXin LI
2603311ff84SXin LISeverity: MEDIUM
2613311ff84SXin LI
2623311ff84SXin LIIn addition to bug fixes and enhancements, this release fixes the
2633311ff84SXin LIfollowing medium-severity vulnerability:
2643311ff84SXin LI
2653311ff84SXin LI* Small-step/big-step.  Close the panic gate earlier.
2663311ff84SXin LI    References: Sec 2956, CVE-2015-5300
2673311ff84SXin LI    Affects: All ntp-4 releases up to, but not including 4.2.8p5, and
2683311ff84SXin LI	4.3.0 up to, but not including 4.3.78
2693311ff84SXin LI    CVSS3: (AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:N/A:L) Base Score: 4.0, MEDIUM
2703311ff84SXin LI    Summary: If ntpd is always started with the -g option, which is
2713311ff84SXin LI	common and against long-standing recommendation, and if at the
2723311ff84SXin LI	moment ntpd is restarted an attacker can immediately respond to
2733311ff84SXin LI	enough requests from enough sources trusted by the target, which
2743311ff84SXin LI	is difficult and not common, there is a window of opportunity
2753311ff84SXin LI	where the attacker can cause ntpd to set the time to an
2763311ff84SXin LI	arbitrary value. Similarly, if an attacker is able to respond
2773311ff84SXin LI	to enough requests from enough sources trusted by the target,
2783311ff84SXin LI	the attacker can cause ntpd to abort and restart, at which
2793311ff84SXin LI	point it can tell the target to set the time to an arbitrary
2803311ff84SXin LI	value if and only if ntpd was re-started against long-standing
2813311ff84SXin LI	recommendation with the -g flag, or if ntpd was not given the
2823311ff84SXin LI	-g flag, the attacker can move the target system's time by at
2833311ff84SXin LI	most 900 seconds' time per attack.
2843311ff84SXin LI    Mitigation:
2853311ff84SXin LI	Configure ntpd to get time from multiple sources.
2863311ff84SXin LI	Upgrade to 4.2.8p5, or later, from the NTP Project Download
2873311ff84SXin LI	    Page or the NTP Public Services Project Download Page
2883311ff84SXin LI	As we've long documented, only use the -g option to ntpd in
2893311ff84SXin LI	    cold-start situations.
2903311ff84SXin LI	Monitor your ntpd instances.
2913311ff84SXin LI    Credit: This weakness was discovered by Aanchal Malhotra,
2923311ff84SXin LI	Isaac E. Cohen, and Sharon Goldberg at Boston University.
2933311ff84SXin LI
2943311ff84SXin LI    NOTE WELL: The -g flag disables the limit check on the panic_gate
2953311ff84SXin LI	in ntpd, which is 900 seconds by default. The bug identified by
2963311ff84SXin LI	the researchers at Boston University is that the panic_gate
2973311ff84SXin LI	check was only re-enabled after the first change to the system
2983311ff84SXin LI	clock that was greater than 128 milliseconds, by default. The
2993311ff84SXin LI	correct behavior is that the panic_gate check should be
3003311ff84SXin LI	re-enabled after any initial time correction.
3013311ff84SXin LI
3023311ff84SXin LI	If an attacker is able to inject consistent but erroneous time
3033311ff84SXin LI	responses to your systems via the network or "over the air",
3043311ff84SXin LI	perhaps by spoofing radio, cellphone, or navigation satellite
3053311ff84SXin LI	transmissions, they are in a great position to affect your
3063311ff84SXin LI	system's clock. There comes a point where your very best
3073311ff84SXin LI	defenses include:
3083311ff84SXin LI
3093311ff84SXin LI	    Configure ntpd to get time from multiple sources.
3103311ff84SXin LI	    Monitor your ntpd instances.
3113311ff84SXin LI
3123311ff84SXin LIOther fixes:
3133311ff84SXin LI
3143311ff84SXin LI* Coverity submission process updated from Coverity 5 to Coverity 7.
3153311ff84SXin LI  The NTP codebase has been undergoing regular Coverity scans on an
3163311ff84SXin LI  ongoing basis since 2006.  As part of our recent upgrade from
3173311ff84SXin LI  Coverity 5 to Coverity 7, Coverity identified 16 nits in some of
3183311ff84SXin LI  the newly-written Unity test programs.  These were fixed.
3193311ff84SXin LI* [Bug 2829] Clean up pipe_fds in ntpd.c  perlinger@ntp.org
3203311ff84SXin LI* [Bug 2887] stratum -1 config results as showing value 99
3213311ff84SXin LI  - fudge stratum should only accept values [0..16]. perlinger@ntp.org
3223311ff84SXin LI* [Bug 2932] Update leapsecond file info in miscopt.html.  CWoodbury, HStenn.
3233311ff84SXin LI* [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in.  HMurray
3243311ff84SXin LI* [Bug 2944] errno is not preserved properly in ntpdate after sendto call.
3253311ff84SXin LI  - applied patch by Christos Zoulas.  perlinger@ntp.org
3263311ff84SXin LI* [Bug 2952] Peer associations broken by fix for Bug 2901/CVE-2015-7704.
3273311ff84SXin LI* [Bug 2954] Version 4.2.8p4 crashes on startup on some OSes.
3283311ff84SXin LI  - fixed data race conditions in threaded DNS worker. perlinger@ntp.org
3293311ff84SXin LI  - limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
3303311ff84SXin LI* [Bug 2957] 'unsigned int' vs 'size_t' format clash. perlinger@ntp.org
3313311ff84SXin LI  - accept key file only if there are no parsing errors
3323311ff84SXin LI  - fixed size_t/u_int format clash
3333311ff84SXin LI  - fixed wrong use of 'strlcpy'
3343311ff84SXin LI* [Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
3353311ff84SXin LI* [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets. perlinger@ntp.org
3363311ff84SXin LI  - fixed several other warnings (cast-alignment, missing const, missing prototypes)
3373311ff84SXin LI  - promote use of 'size_t' for values that express a size
3383311ff84SXin LI  - use ptr-to-const for read-only arguments
3393311ff84SXin LI  - make sure SOCKET values are not truncated (win32-specific)
3403311ff84SXin LI  - format string fixes
3413311ff84SXin LI* [Bug 2965] Local clock didn't work since 4.2.8p4.  Martin Burnicki.
3423311ff84SXin LI* [Bug 2967] ntpdate command suffers an assertion failure
3433311ff84SXin LI  - fixed ntp_rfc2553.c to return proper address length. perlinger@ntp.org
3443311ff84SXin LI* [Bug 2969]  Seg fault from ntpq/mrulist when looking at server with
3453311ff84SXin LI              lots of clients. perlinger@ntp.org
3463311ff84SXin LI* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
3473311ff84SXin LI  - changed stacked/nested handling of CTRL-C. perlinger@ntp.org
3483311ff84SXin LI* Unity cleanup for FreeBSD-6.4.  Harlan Stenn.
3493311ff84SXin LI* Unity test cleanup.  Harlan Stenn.
3503311ff84SXin LI* Libevent autoconf pthread fixes for FreeBSD-10.  Harlan Stenn.
3513311ff84SXin LI* Header cleanup in tests/sandbox/uglydate.c.  Harlan Stenn.
3523311ff84SXin LI* Header cleanup in tests/libntp/sfptostr.c.  Harlan Stenn.
3533311ff84SXin LI* Quiet a warning from clang.  Harlan Stenn.
3543311ff84SXin LI
3553311ff84SXin LI---
3569034852cSGleb SmirnoffNTP 4.2.8p4
3579034852cSGleb Smirnoff
3583311ff84SXin LIFocus: Security, Bug fixes, enhancements.
3599034852cSGleb Smirnoff
3609034852cSGleb SmirnoffSeverity: MEDIUM
3619034852cSGleb Smirnoff
3629034852cSGleb SmirnoffIn addition to bug fixes and enhancements, this release fixes the
3639034852cSGleb Smirnofffollowing 13 low- and medium-severity vulnerabilities:
3649034852cSGleb Smirnoff
3659034852cSGleb Smirnoff* Incomplete vallen (value length) checks in ntp_crypto.c, leading
3669034852cSGleb Smirnoff  to potential crashes or potential code injection/information leakage.
3679034852cSGleb Smirnoff
3689034852cSGleb Smirnoff    References: Sec 2899, Sec 2671, CVE-2015-7691, CVE-2015-7692, CVE-2015-7702
3699034852cSGleb Smirnoff    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
3709034852cSGleb Smirnoff    	and 4.3.0 up to, but not including 4.3.77
3719034852cSGleb Smirnoff    CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
3729034852cSGleb Smirnoff    Summary: The fix for CVE-2014-9750 was incomplete in that there were
3739034852cSGleb Smirnoff    	certain code paths where a packet with particular autokey operations
3749034852cSGleb Smirnoff	that contained malicious data was not always being completely
3759034852cSGleb Smirnoff	validated. Receipt of these packets can cause ntpd to crash.
3769034852cSGleb Smirnoff    Mitigation:
3779034852cSGleb Smirnoff        Don't use autokey.
3789034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
3799034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page
3809034852cSGleb Smirnoff	Monitor your ntpd instances.
3819034852cSGleb Smirnoff	Credit: This weakness was discovered by Tenable Network Security.
3829034852cSGleb Smirnoff
3839034852cSGleb Smirnoff* Clients that receive a KoD should validate the origin timestamp field.
3849034852cSGleb Smirnoff
3859034852cSGleb Smirnoff    References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
3869034852cSGleb Smirnoff    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
3879034852cSGleb Smirnoff	and 4.3.0 up to, but not including 4.3.77
3889034852cSGleb Smirnoff    CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3-5.0 at worst
3899034852cSGleb Smirnoff    Summary: An ntpd client that honors Kiss-of-Death responses will honor
3909034852cSGleb Smirnoff    	KoD messages that have been forged by an attacker, causing it to
3919034852cSGleb Smirnoff	delay or stop querying its servers for time updates. Also, an
3929034852cSGleb Smirnoff	attacker can forge packets that claim to be from the target and
3939034852cSGleb Smirnoff	send them to servers often enough that a server that implements
3949034852cSGleb Smirnoff	KoD rate limiting will send the target machine a KoD response to
3959034852cSGleb Smirnoff	attempt to reduce the rate of incoming packets, or it may also
3969034852cSGleb Smirnoff	trigger a firewall block at the server for packets from the target
3979034852cSGleb Smirnoff	machine. For either of these attacks to succeed, the attacker must
3989034852cSGleb Smirnoff	know what servers the target is communicating with. An attacker
3999034852cSGleb Smirnoff	can be anywhere on the Internet and can frequently learn the
4009034852cSGleb Smirnoff	identity of the target's time source by sending the target a
4019034852cSGleb Smirnoff	time query.
4029034852cSGleb Smirnoff    Mitigation:
4039034852cSGleb Smirnoff        Implement BCP-38.
4049034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download Page
4059034852cSGleb Smirnoff	    or the NTP Public Services Project Download Page
4069034852cSGleb Smirnoff	If you can't upgrade, restrict who can query ntpd to learn who
4079034852cSGleb Smirnoff	    its servers are, and what IPs are allowed to ask your system
4089034852cSGleb Smirnoff	    for the time. This mitigation is heavy-handed.
4099034852cSGleb Smirnoff	Monitor your ntpd instances.
4109034852cSGleb Smirnoff    Note:
4119034852cSGleb Smirnoff    	4.2.8p4 protects against the first attack. For the second attack,
4129034852cSGleb Smirnoff    	all we can do is warn when it is happening, which we do in 4.2.8p4.
4139034852cSGleb Smirnoff    Credit: This weakness was discovered by Aanchal Malhotra,
4149034852cSGleb Smirnoff    	Issac E. Cohen, and Sharon Goldberg of Boston University.
4159034852cSGleb Smirnoff
4169034852cSGleb Smirnoff* configuration directives to change "pidfile" and "driftfile" should
4179034852cSGleb Smirnoff  only be allowed locally.
4189034852cSGleb Smirnoff
4199034852cSGleb Smirnoff  References: Sec 2902 / CVE-2015-5196
4209034852cSGleb Smirnoff  Affects: All ntp-4 releases up to, but not including 4.2.8p4,
4219034852cSGleb Smirnoff	and 4.3.0 up to, but not including 4.3.77
4229034852cSGleb Smirnoff   CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.2 worst case
4239034852cSGleb Smirnoff   Summary: If ntpd is configured to allow for remote configuration,
4249034852cSGleb Smirnoff	and if the (possibly spoofed) source IP address is allowed to
4259034852cSGleb Smirnoff	send remote configuration requests, and if the attacker knows
4269034852cSGleb Smirnoff	the remote configuration password, it's possible for an attacker
4279034852cSGleb Smirnoff	to use the "pidfile" or "driftfile" directives to potentially
4289034852cSGleb Smirnoff	overwrite other files.
4299034852cSGleb Smirnoff   Mitigation:
4309034852cSGleb Smirnoff	Implement BCP-38.
4319034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
4329034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page
4339034852cSGleb Smirnoff	If you cannot upgrade, don't enable remote configuration.
4349034852cSGleb Smirnoff	If you must enable remote configuration and cannot upgrade,
4359034852cSGleb Smirnoff	    remote configuration of NTF's ntpd requires:
4369034852cSGleb Smirnoff	    - an explicitly configured trustedkey, and you should also
4379034852cSGleb Smirnoff	    	configure a controlkey.
4389034852cSGleb Smirnoff	    - access from a permitted IP. You choose the IPs.
4399034852cSGleb Smirnoff	    - authentication. Don't disable it. Practice secure key safety.
4409034852cSGleb Smirnoff	Monitor your ntpd instances.
4419034852cSGleb Smirnoff   Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
4429034852cSGleb Smirnoff
4439034852cSGleb Smirnoff* Slow memory leak in CRYPTO_ASSOC
4449034852cSGleb Smirnoff
4459034852cSGleb Smirnoff  References: Sec 2909 / CVE-2015-7701
4469034852cSGleb Smirnoff  Affects: All ntp-4 releases that use autokey up to, but not
4479034852cSGleb Smirnoff    including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
4489034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 0.0 best/usual case,
4499034852cSGleb Smirnoff  	4.6 otherwise
4509034852cSGleb Smirnoff  Summary: If ntpd is configured to use autokey, then an attacker can
4519034852cSGleb Smirnoff	send packets to ntpd that will, after several days of ongoing
4529034852cSGleb Smirnoff	attack, cause it to run out of memory.
4539034852cSGleb Smirnoff  Mitigation:
4549034852cSGleb Smirnoff	Don't use autokey.
4559034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
4569034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page
4579034852cSGleb Smirnoff	Monitor your ntpd instances.
4589034852cSGleb Smirnoff  Credit: This weakness was discovered by Tenable Network Security.
4599034852cSGleb Smirnoff
4609034852cSGleb Smirnoff* mode 7 loop counter underrun
4619034852cSGleb Smirnoff
4629034852cSGleb Smirnoff  References:  Sec 2913 / CVE-2015-7848 / TALOS-CAN-0052
4639034852cSGleb Smirnoff  Affects: All ntp-4 releases up to, but not including 4.2.8p4,
4649034852cSGleb Smirnoff  	and 4.3.0 up to, but not including 4.3.77
4659034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
4669034852cSGleb Smirnoff  Summary: If ntpd is configured to enable mode 7 packets, and if the
4679034852cSGleb Smirnoff	use of mode 7 packets is not properly protected thru the use of
4689034852cSGleb Smirnoff	the available mode 7 authentication and restriction mechanisms,
4699034852cSGleb Smirnoff	and if the (possibly spoofed) source IP address is allowed to
4709034852cSGleb Smirnoff	send mode 7 queries, then an attacker can send a crafted packet
4719034852cSGleb Smirnoff	to ntpd that will cause it to crash.
4729034852cSGleb Smirnoff  Mitigation:
4739034852cSGleb Smirnoff	Implement BCP-38.
4749034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
4759034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
4769034852cSGleb Smirnoff	      If you are unable to upgrade:
4779034852cSGleb Smirnoff	In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
4789034852cSGleb Smirnoff	If you must enable mode 7:
4799034852cSGleb Smirnoff	    configure the use of a requestkey to control who can issue
4809034852cSGleb Smirnoff		mode 7 requests.
4819034852cSGleb Smirnoff	    configure restrict noquery to further limit mode 7 requests
4829034852cSGleb Smirnoff		to trusted sources.
4839034852cSGleb Smirnoff	Monitor your ntpd instances.
4849034852cSGleb SmirnoffCredit: This weakness was discovered by Aleksandar Nikolic of Cisco Talos.
4859034852cSGleb Smirnoff
4869034852cSGleb Smirnoff* memory corruption in password store
4879034852cSGleb Smirnoff
4889034852cSGleb Smirnoff  References: Sec 2916 / CVE-2015-7849 / TALOS-CAN-0054
4899034852cSGleb Smirnoff  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
4909034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.8, worst case
4919034852cSGleb Smirnoff  Summary: If ntpd is configured to allow remote configuration, and if
4929034852cSGleb Smirnoff	the (possibly spoofed) source IP address is allowed to send
4939034852cSGleb Smirnoff	remote configuration requests, and if the attacker knows the
4949034852cSGleb Smirnoff	remote configuration password or if ntpd was configured to
4959034852cSGleb Smirnoff	disable authentication, then an attacker can send a set of
4969034852cSGleb Smirnoff	packets to ntpd that may cause a crash or theoretically
4979034852cSGleb Smirnoff	perform a code injection attack.
4989034852cSGleb Smirnoff  Mitigation:
4999034852cSGleb Smirnoff	Implement BCP-38.
5009034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
5019034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
5029034852cSGleb Smirnoff	If you are unable to upgrade, remote configuration of NTF's
5039034852cSGleb Smirnoff	    ntpd requires:
5049034852cSGleb Smirnoff		an explicitly configured "trusted" key. Only configure
5059034852cSGleb Smirnoff			this if you need it.
5069034852cSGleb Smirnoff		access from a permitted IP address. You choose the IPs.
5079034852cSGleb Smirnoff		authentication. Don't disable it. Practice secure key safety.
5089034852cSGleb Smirnoff	Monitor your ntpd instances.
5099034852cSGleb Smirnoff  Credit: This weakness was discovered by Yves Younan of Cisco Talos.
5109034852cSGleb Smirnoff
5119034852cSGleb Smirnoff* Infinite loop if extended logging enabled and the logfile and
5129034852cSGleb Smirnoff  keyfile are the same.
5139034852cSGleb Smirnoff
5149034852cSGleb Smirnoff    References: Sec 2917 / CVE-2015-7850 / TALOS-CAN-0055
5159034852cSGleb Smirnoff    Affects: All ntp-4 releases up to, but not including 4.2.8p4,
5169034852cSGleb Smirnoff	and 4.3.0 up to, but not including 4.3.77
5179034852cSGleb Smirnoff    CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
5189034852cSGleb Smirnoff    Summary: If ntpd is configured to allow remote configuration, and if
5199034852cSGleb Smirnoff	the (possibly spoofed) source IP address is allowed to send
5209034852cSGleb Smirnoff	remote configuration requests, and if the attacker knows the
5219034852cSGleb Smirnoff	remote configuration password or if ntpd was configured to
5229034852cSGleb Smirnoff	disable authentication, then an attacker can send a set of
5239034852cSGleb Smirnoff	packets to ntpd that will cause it to crash and/or create a
5249034852cSGleb Smirnoff	potentially huge log file. Specifically, the attacker could
5259034852cSGleb Smirnoff	enable extended logging, point the key file at the log file,
5269034852cSGleb Smirnoff	and cause what amounts to an infinite loop.
5279034852cSGleb Smirnoff    Mitigation:
5289034852cSGleb Smirnoff	Implement BCP-38.
5299034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
5309034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
5319034852cSGleb Smirnoff	If you are unable to upgrade, remote configuration of NTF's ntpd
5329034852cSGleb Smirnoff	  requires:
5339034852cSGleb Smirnoff            an explicitly configured "trusted" key. Only configure this
5349034852cSGleb Smirnoff	    	if you need it.
5359034852cSGleb Smirnoff            access from a permitted IP address. You choose the IPs.
5369034852cSGleb Smirnoff            authentication. Don't disable it. Practice secure key safety.
5379034852cSGleb Smirnoff        Monitor your ntpd instances.
5389034852cSGleb Smirnoff    Credit: This weakness was discovered by Yves Younan of Cisco Talos.
5399034852cSGleb Smirnoff
5409034852cSGleb Smirnoff* Potential path traversal vulnerability in the config file saving of
5419034852cSGleb Smirnoff  ntpd on VMS.
5429034852cSGleb Smirnoff
5439034852cSGleb Smirnoff  References: Sec 2918 / CVE-2015-7851 / TALOS-CAN-0062
5449034852cSGleb Smirnoff  Affects: All ntp-4 releases running under VMS up to, but not
5459034852cSGleb Smirnoff	including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
5469034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:M/C:N/I:P/A:C) Base Score: 5.2, worst case
5479034852cSGleb Smirnoff  Summary: If ntpd is configured to allow remote configuration, and if
5489034852cSGleb Smirnoff	the (possibly spoofed) IP address is allowed to send remote
5499034852cSGleb Smirnoff	configuration requests, and if the attacker knows the remote
5509034852cSGleb Smirnoff	configuration password or if ntpd was configured to disable
5519034852cSGleb Smirnoff	authentication, then an attacker can send a set of packets to
5529034852cSGleb Smirnoff	ntpd that may cause ntpd to overwrite files.
5539034852cSGleb Smirnoff  Mitigation:
5549034852cSGleb Smirnoff	Implement BCP-38.
5559034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
5569034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
5579034852cSGleb Smirnoff	If you are unable to upgrade, remote configuration of NTF's ntpd
5589034852cSGleb Smirnoff	    requires:
5599034852cSGleb Smirnoff		an explicitly configured "trusted" key. Only configure
5609034852cSGleb Smirnoff			this if you need it.
5619034852cSGleb Smirnoff		access from permitted IP addresses. You choose the IPs.
5629034852cSGleb Smirnoff		authentication. Don't disable it. Practice key security safety.
5639034852cSGleb Smirnoff        Monitor your ntpd instances.
5649034852cSGleb Smirnoff    Credit: This weakness was discovered by Yves Younan of Cisco Talos.
5659034852cSGleb Smirnoff
5669034852cSGleb Smirnoff* ntpq atoascii() potential memory corruption
5679034852cSGleb Smirnoff
5689034852cSGleb Smirnoff  References: Sec 2919 / CVE-2015-7852 / TALOS-CAN-0063
5699034852cSGleb Smirnoff  Affects: All ntp-4 releases running up to, but not including 4.2.8p4,
5709034852cSGleb Smirnoff	and 4.3.0 up to, but not including 4.3.77
5719034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:N/C:N/I:P/A:P) Base Score: 4.0, worst case
5729034852cSGleb Smirnoff  Summary: If an attacker can figure out the precise moment that ntpq
5739034852cSGleb Smirnoff	is listening for data and the port number it is listening on or
5749034852cSGleb Smirnoff	if the attacker can provide a malicious instance ntpd that
5759034852cSGleb Smirnoff	victims will connect to then an attacker can send a set of
5769034852cSGleb Smirnoff	crafted mode 6 response packets that, if received by ntpq,
5779034852cSGleb Smirnoff	can cause ntpq to crash.
5789034852cSGleb Smirnoff  Mitigation:
5799034852cSGleb Smirnoff	Implement BCP-38.
5809034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
5819034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
5829034852cSGleb Smirnoff	If you are unable to upgrade and you run ntpq against a server
5839034852cSGleb Smirnoff	    and ntpq crashes, try again using raw mode. Build or get a
5849034852cSGleb Smirnoff	    patched ntpq and see if that fixes the problem. Report new
5859034852cSGleb Smirnoff	    bugs in ntpq or abusive servers appropriately.
5869034852cSGleb Smirnoff	If you use ntpq in scripts, make sure ntpq does what you expect
5879034852cSGleb Smirnoff	    in your scripts.
5889034852cSGleb Smirnoff  Credit: This weakness was discovered by Yves Younan and
5899034852cSGleb Smirnoff  	Aleksander Nikolich of Cisco Talos.
5909034852cSGleb Smirnoff
5919034852cSGleb Smirnoff* Invalid length data provided by a custom refclock driver could cause
5929034852cSGleb Smirnoff  a buffer overflow.
5939034852cSGleb Smirnoff
5949034852cSGleb Smirnoff  References: Sec 2920 / CVE-2015-7853 / TALOS-CAN-0064
5959034852cSGleb Smirnoff  Affects: Potentially all ntp-4 releases running up to, but not
5969034852cSGleb Smirnoff	including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
5979034852cSGleb Smirnoff	that have custom refclocks
5989034852cSGleb Smirnoff  CVSS: (AV:L/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 usual case,
5999034852cSGleb Smirnoff	5.9 unusual worst case
6009034852cSGleb Smirnoff  Summary: A negative value for the datalen parameter will overflow a
6019034852cSGleb Smirnoff	data buffer. NTF's ntpd driver implementations always set this
6029034852cSGleb Smirnoff	value to 0 and are therefore not vulnerable to this weakness.
6039034852cSGleb Smirnoff	If you are running a custom refclock driver in ntpd and that
6049034852cSGleb Smirnoff	driver supplies a negative value for datalen (no custom driver
6059034852cSGleb Smirnoff	of even minimal competence would do this) then ntpd would
6069034852cSGleb Smirnoff	overflow a data buffer. It is even hypothetically possible
6079034852cSGleb Smirnoff	in this case that instead of simply crashing ntpd the attacker
6089034852cSGleb Smirnoff	could effect a code injection attack.
6099034852cSGleb Smirnoff  Mitigation:
6109034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6119034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
6129034852cSGleb Smirnoff	If you are unable to upgrade:
6139034852cSGleb Smirnoff		If you are running custom refclock drivers, make sure
6149034852cSGleb Smirnoff			the signed datalen value is either zero or positive.
6159034852cSGleb Smirnoff	Monitor your ntpd instances.
6169034852cSGleb Smirnoff  Credit: This weakness was discovered by Yves Younan of Cisco Talos.
6179034852cSGleb Smirnoff
6189034852cSGleb Smirnoff* Password Length Memory Corruption Vulnerability
6199034852cSGleb Smirnoff
6209034852cSGleb Smirnoff  References: Sec 2921 / CVE-2015-7854 / TALOS-CAN-0065
6219034852cSGleb Smirnoff  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
6229034852cSGleb Smirnoff  	4.3.0 up to, but not including 4.3.77
6239034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 best case,
6249034852cSGleb Smirnoff  	1.7 usual case, 6.8, worst case
6259034852cSGleb Smirnoff  Summary: If ntpd is configured to allow remote configuration, and if
6269034852cSGleb Smirnoff	the (possibly spoofed) source IP address is allowed to send
6279034852cSGleb Smirnoff	remote configuration requests, and if the attacker knows the
6289034852cSGleb Smirnoff	remote configuration password or if ntpd was (foolishly)
6299034852cSGleb Smirnoff	configured to disable authentication, then an attacker can
6309034852cSGleb Smirnoff	send a set of packets to ntpd that may cause it to crash,
6319034852cSGleb Smirnoff	with the hypothetical possibility of a small code injection.
6329034852cSGleb Smirnoff  Mitigation:
6339034852cSGleb Smirnoff	Implement BCP-38.
6349034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6359034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
6369034852cSGleb Smirnoff	If you are unable to upgrade, remote configuration of NTF's
6379034852cSGleb Smirnoff	    ntpd requires:
6389034852cSGleb Smirnoff		an explicitly configured "trusted" key. Only configure
6399034852cSGleb Smirnoff			this if you need it.
6409034852cSGleb Smirnoff		access from a permitted IP address. You choose the IPs.
6419034852cSGleb Smirnoff		authentication. Don't disable it. Practice secure key safety.
6429034852cSGleb Smirnoff	Monitor your ntpd instances.
6439034852cSGleb Smirnoff  Credit: This weakness was discovered by Yves Younan and
6449034852cSGleb Smirnoff  	Aleksander Nikolich of Cisco Talos.
6459034852cSGleb Smirnoff
6469034852cSGleb Smirnoff* decodenetnum() will ASSERT botch instead of returning FAIL on some
6479034852cSGleb Smirnoff  bogus values.
6489034852cSGleb Smirnoff
6499034852cSGleb Smirnoff  References: Sec 2922 / CVE-2015-7855
6509034852cSGleb Smirnoff  Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
6519034852cSGleb Smirnoff	4.3.0 up to, but not including 4.3.77
6529034852cSGleb Smirnoff  CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
6539034852cSGleb Smirnoff  Summary: If ntpd is fed a crafted mode 6 or mode 7 packet containing
6549034852cSGleb Smirnoff	an unusually long data value where a network address is expected,
6559034852cSGleb Smirnoff	the decodenetnum() function will abort with an assertion failure
6569034852cSGleb Smirnoff	instead of simply returning a failure condition.
6579034852cSGleb Smirnoff  Mitigation:
6589034852cSGleb Smirnoff	Implement BCP-38.
6599034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6609034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
6619034852cSGleb Smirnoff	If you are unable to upgrade:
6629034852cSGleb Smirnoff		mode 7 is disabled by default. Don't enable it.
6639034852cSGleb Smirnoff		Use restrict noquery to limit who can send mode 6
6649034852cSGleb Smirnoff			and mode 7 requests.
6659034852cSGleb Smirnoff		Configure and use the controlkey and requestkey
6669034852cSGleb Smirnoff			authentication directives to limit who can
6679034852cSGleb Smirnoff			send mode 6 and mode 7 requests.
6689034852cSGleb Smirnoff	Monitor your ntpd instances.
6699034852cSGleb Smirnoff  Credit: This weakness was discovered by John D "Doug" Birdwell of IDA.org.
6709034852cSGleb Smirnoff
6719034852cSGleb Smirnoff* NAK to the Future: Symmetric association authentication bypass via
6729034852cSGleb Smirnoff  crypto-NAK.
6739034852cSGleb Smirnoff
6749034852cSGleb Smirnoff  References: Sec 2941 / CVE-2015-7871
6759034852cSGleb Smirnoff  Affects: All ntp-4 releases between 4.2.5p186 up to but not including
6769034852cSGleb Smirnoff  	4.2.8p4, and 4.3.0 up to but not including 4.3.77
6779034852cSGleb Smirnoff  CVSS: (AV:N/AC:L/Au:N/C:N/I:P/A:P) Base Score: 6.4
6789034852cSGleb Smirnoff  Summary: Crypto-NAK packets can be used to cause ntpd to accept time
6799034852cSGleb Smirnoff	from unauthenticated ephemeral symmetric peers by bypassing the
6809034852cSGleb Smirnoff	authentication required to mobilize peer associations. This
6819034852cSGleb Smirnoff	vulnerability appears to have been introduced in ntp-4.2.5p186
6829034852cSGleb Smirnoff	when the code handling mobilization of new passive symmetric
6839034852cSGleb Smirnoff	associations (lines 1103-1165) was refactored.
6849034852cSGleb Smirnoff  Mitigation:
6859034852cSGleb Smirnoff	Implement BCP-38.
6869034852cSGleb Smirnoff	Upgrade to 4.2.8p4, or later, from the NTP Project Download
6879034852cSGleb Smirnoff	    Page or the NTP Public Services Project Download Page.
6889034852cSGleb Smirnoff	If you are unable to upgrade:
6899034852cSGleb Smirnoff		Apply the patch to the bottom of the "authentic" check
6909034852cSGleb Smirnoff			block around line 1136 of ntp_proto.c.
6919034852cSGleb Smirnoff	Monitor your ntpd instances.
6929034852cSGleb Smirnoff  Credit: This weakness was discovered by Stephen Gray <stepgray@cisco.com>.
6939034852cSGleb Smirnoff
6949034852cSGleb SmirnoffBackward-Incompatible changes:
6959034852cSGleb Smirnoff* [Bug 2817] Default on Linux is now "rlimit memlock -1".
6969034852cSGleb Smirnoff  While the general default of 32M is still the case, under Linux
6979034852cSGleb Smirnoff  the default value has been changed to -1 (do not lock ntpd into
6989034852cSGleb Smirnoff  memory).  A value of 0 means "lock ntpd into memory with whatever
6999034852cSGleb Smirnoff  memory it needs." If your ntp.conf file has an explicit "rlimit memlock"
7009034852cSGleb Smirnoff  value in it, that value will continue to be used.
7019034852cSGleb Smirnoff
7029034852cSGleb Smirnoff* [Bug 2886] Misspelling: "outlyer" should be "outlier".
7039034852cSGleb Smirnoff  If you've written a script that looks for this case in, say, the
7049034852cSGleb Smirnoff  output of ntpq, you probably want to change your regex matches
7059034852cSGleb Smirnoff  from 'outlyer' to 'outl[iy]er'.
7069034852cSGleb Smirnoff
7079034852cSGleb SmirnoffNew features in this release:
7089034852cSGleb Smirnoff* 'rlimit memlock' now has finer-grained control.  A value of -1 means
7099034852cSGleb Smirnoff  "don't lock ntpd into memore".  This is the default for Linux boxes.
7109034852cSGleb Smirnoff  A value of 0 means "lock ntpd into memory" with no limits.  Otherwise
7119034852cSGleb Smirnoff  the value is the number of megabytes of memory to lock.  The default
7129034852cSGleb Smirnoff  is 32 megabytes.
7139034852cSGleb Smirnoff
7149034852cSGleb Smirnoff* The old Google Test framework has been replaced with a new framework,
7159034852cSGleb Smirnoff  based on http://www.throwtheswitch.org/unity/ .
7169034852cSGleb Smirnoff
7179034852cSGleb SmirnoffBug Fixes and Improvements:
7189034852cSGleb Smirnoff* [Bug 2332] (reopened) Exercise thread cancellation once before dropping
7199034852cSGleb Smirnoff  privileges and limiting resources in NTPD removes the need to link
7209034852cSGleb Smirnoff  forcefully against 'libgcc_s' which does not always work. J.Perlinger
7219034852cSGleb Smirnoff* [Bug 2595] ntpdate man page quirks.  Hal Murray, Harlan Stenn.
7229034852cSGleb Smirnoff* [Bug 2625] Deprecate flag1 in local refclock.  Hal Murray, Harlan Stenn.
7239034852cSGleb Smirnoff* [Bug 2817] Stop locking ntpd into memory by default under Linux.  H.Stenn.
7249034852cSGleb Smirnoff* [Bug 2821] minor build issues: fixed refclock_gpsdjson.c.  perlinger@ntp.org
7259034852cSGleb Smirnoff* [Bug 2823] ntpsweep with recursive peers option doesn't work.  H.Stenn.
7269034852cSGleb Smirnoff* [Bug 2849] Systems with more than one default route may never
7279034852cSGleb Smirnoff  synchronize.  Brian Utterback.  Note that this patch might need to
7289034852cSGleb Smirnoff  be reverted once Bug 2043 has been fixed.
7299034852cSGleb Smirnoff* [Bug 2864] 4.2.8p3 fails to compile on Windows. Juergen Perlinger
7309034852cSGleb Smirnoff* [Bug 2866] segmentation fault at initgroups().  Harlan Stenn.
7319034852cSGleb Smirnoff* [Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'. J.Perlinger
7329034852cSGleb Smirnoff* [Bug 2873] libevent should not include .deps/ in the tarball.  H.Stenn
7339034852cSGleb Smirnoff* [Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
7349034852cSGleb Smirnoff* [Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS.  libevent must
7359034852cSGleb Smirnoff  be configured for the distribution targets.  Harlan Stenn.
7369034852cSGleb Smirnoff* [Bug 2883] ntpd crashes on exit with empty driftfile.  Miroslav Lichvar.
7379034852cSGleb Smirnoff* [Bug 2886] Mis-spelling: "outlyer" should be "outlier".  dave@horsfall.org
7389034852cSGleb Smirnoff* [Bug 2888] streamline calendar functions.  perlinger@ntp.org
7399034852cSGleb Smirnoff* [Bug 2889] ntp-dev-4.3.67 does not build on Windows.  perlinger@ntp.org
7409034852cSGleb Smirnoff* [Bug 2890] Ignore ENOBUFS on routing netlink socket.  Konstantin Khlebnikov.
7419034852cSGleb Smirnoff* [Bug 2906] make check needs better support for pthreads.  Harlan Stenn.
7429034852cSGleb Smirnoff* [Bug 2907] dist* build targets require our libevent/ to be enabled.  HStenn.
7439034852cSGleb Smirnoff* [Bug 2912] no munlockall() under Windows.  David Taylor, Harlan Stenn.
7449034852cSGleb Smirnoff* libntp/emalloc.c: Remove explicit include of stdint.h.  Harlan Stenn.
7459034852cSGleb Smirnoff* Put Unity CPPFLAGS items in unity_config.h.  Harlan Stenn.
7469034852cSGleb Smirnoff* tests/ntpd/g_leapsec.cpp typo fix.  Harlan Stenn.
7479034852cSGleb Smirnoff* Phase 1 deprecation of google test in sntp/tests/.  Harlan Stenn.
7489034852cSGleb Smirnoff* On some versions of HP-UX, inttypes.h does not include stdint.h.  H.Stenn.
7499034852cSGleb Smirnoff* top_srcdir can change based on ntp v. sntp.  Harlan Stenn.
7509034852cSGleb Smirnoff* sntp/tests/ function parameter list cleanup.  Damir Tomić.
7519034852cSGleb Smirnoff* tests/libntp/ function parameter list cleanup.  Damir Tomić.
7529034852cSGleb Smirnoff* tests/ntpd/ function parameter list cleanup.  Damir Tomić.
7539034852cSGleb Smirnoff* sntp/unity/unity_config.h: handle stdint.h.  Harlan Stenn.
7549034852cSGleb Smirnoff* sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris.  H.Stenn.
7559034852cSGleb Smirnoff* tests/libntp/timevalops.c and timespecops.c fixed error printing.  D.Tomić.
7569034852cSGleb Smirnoff* tests/libntp/ improvements in code and fixed error printing.  Damir Tomić.
7579034852cSGleb Smirnoff* tests/libntp: a_md5encrypt.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
7589034852cSGleb Smirnoff  caltontp.c, clocktime.c, humandate.c, hextolfp.c, decodenetnum.c - fixed
7599034852cSGleb Smirnoff  formatting; first declaration, then code (C90); deleted unnecessary comments;
7609034852cSGleb Smirnoff  changed from sprintf to snprintf; fixed order of includes. Tomasz Flendrich
7619034852cSGleb Smirnoff* tests/libntp/lfpfunc.c remove unnecessary include, remove old comments,
7629034852cSGleb Smirnoff  fix formatting, cleanup. Tomasz Flendrich
7639034852cSGleb Smirnoff* tests/libntp/lfptostr.c remove unnecessary include, add consts, fix formatting.
7649034852cSGleb Smirnoff  Tomasz Flendrich
7659034852cSGleb Smirnoff* tests/libntp/statestr.c remove empty functions, remove unnecessary include,
7669034852cSGleb Smirnoff  fix formatting. Tomasz Flendrich
7679034852cSGleb Smirnoff* tests/libntp/modetoa.c fixed formatting. Tomasz Flendrich
7689034852cSGleb Smirnoff* tests/libntp/msyslog.c fixed formatting. Tomasz Flendrich
7699034852cSGleb Smirnoff* tests/libntp/numtoa.c deleted unnecessary empty functions, fixed formatting.
7709034852cSGleb Smirnoff  Tomasz Flendrich
7719034852cSGleb Smirnoff* tests/libntp/numtohost.c added const, fixed formatting. Tomasz Flendrich
7729034852cSGleb Smirnoff* tests/libntp/refnumtoa.c fixed formatting. Tomasz Flendrich
7739034852cSGleb Smirnoff* tests/libntp/ssl_init.c fixed formatting. Tomasz Flendrich
7749034852cSGleb Smirnoff* tests/libntp/tvtots.c fixed a bug, fixed formatting. Tomasz Flendrich
7759034852cSGleb Smirnoff* tests/libntp/uglydate.c removed an unnecessary include. Tomasz Flendrich
7769034852cSGleb Smirnoff* tests/libntp/vi64ops.c removed an unnecessary comment, fixed formatting.
7779034852cSGleb Smirnoff* tests/libntp/ymd3yd.c removed an empty function and an unnecessary include,
7789034852cSGleb Smirnofffixed formatting. Tomasz Flendrich
7799034852cSGleb Smirnoff* tests/libntp/timespecops.c fixed formatting, fixed the order of includes,
7809034852cSGleb Smirnoff  removed unnecessary comments, cleanup. Tomasz Flendrich
7819034852cSGleb Smirnoff* tests/libntp/timevalops.c fixed the order of includes, deleted unnecessary
7829034852cSGleb Smirnoff  comments, cleanup. Tomasz Flendrich
7839034852cSGleb Smirnoff* tests/libntp/sockaddrtest.h making it agree to NTP's conventions of formatting.
7849034852cSGleb Smirnoff  Tomasz Flendrich
7859034852cSGleb Smirnoff* tests/libntp/lfptest.h cleanup. Tomasz Flendrich
7869034852cSGleb Smirnoff* tests/libntp/test-libntp.c fix formatting. Tomasz Flendrich
7879034852cSGleb Smirnoff* sntp/tests/crypto.c is now using proper Unity's assertions, fixed formatting.
7889034852cSGleb Smirnoff  Tomasz Flendrich
7899034852cSGleb Smirnoff* sntp/tests/kodDatabase.c added consts, deleted empty function,
7909034852cSGleb Smirnoff  fixed formatting. Tomasz Flendrich
7919034852cSGleb Smirnoff* sntp/tests/kodFile.c cleanup, fixed formatting. Tomasz Flendrich
7929034852cSGleb Smirnoff* sntp/tests/packetHandling.c is now using proper Unity's assertions,
7939034852cSGleb Smirnoff  fixed formatting, deleted unused variable. Tomasz Flendrich
7949034852cSGleb Smirnoff* sntp/tests/keyFile.c is now using proper Unity's assertions, fixed formatting.
7959034852cSGleb Smirnoff  Tomasz Flendrich
7969034852cSGleb Smirnoff* sntp/tests/packetProcessing.c changed from sprintf to snprintf,
7979034852cSGleb Smirnoff  fixed formatting. Tomasz Flendrich
7989034852cSGleb Smirnoff* sntp/tests/utilities.c is now using proper Unity's assertions, changed
7999034852cSGleb Smirnoff  the order of includes, fixed formatting, removed unnecessary comments.
8009034852cSGleb Smirnoff  Tomasz Flendrich
8019034852cSGleb Smirnoff* sntp/tests/sntptest.h fixed formatting. Tomasz Flendrich
8029034852cSGleb Smirnoff* sntp/tests/fileHandlingTest.h.in fixed a possible buffer overflow problem,
8039034852cSGleb Smirnoff  made one function do its job, deleted unnecessary prints, fixed formatting.
8049034852cSGleb Smirnoff  Tomasz Flendrich
8059034852cSGleb Smirnoff* sntp/unity/Makefile.am added a missing header. Tomasz Flendrich
8069034852cSGleb Smirnoff* sntp/unity/unity_config.h: Distribute it.  Harlan Stenn.
8079034852cSGleb Smirnoff* sntp/libevent/evconfig-private.h: remove generated filefrom SCM.  H.Stenn.
8089034852cSGleb Smirnoff* sntp/unity/Makefile.am: fix some broken paths.  Harlan Stenn.
8099034852cSGleb Smirnoff* sntp/unity/unity.c: Clean up a printf().  Harlan Stenn.
8109034852cSGleb Smirnoff* Phase 1 deprecation of google test in tests/libntp/.  Harlan Stenn.
8119034852cSGleb Smirnoff* Don't build sntp/libevent/sample/.  Harlan Stenn.
8129034852cSGleb Smirnoff* tests/libntp/test_caltontp needs -lpthread.  Harlan Stenn.
8139034852cSGleb Smirnoff* br-flock: --enable-local-libevent.  Harlan Stenn.
8149034852cSGleb Smirnoff* Wrote tests for ntpd/ntp_prio_q.c. Tomasz Flendrich
8159034852cSGleb Smirnoff* scripts/lib/NTP/Util.pm: stratum output is version-dependent.  Harlan Stenn.
8169034852cSGleb Smirnoff* Get rid of the NTP_ prefix on our assertion macros.  Harlan Stenn.
8179034852cSGleb Smirnoff* Code cleanup.  Harlan Stenn.
8189034852cSGleb Smirnoff* libntp/icom.c: Typo fix.  Harlan Stenn.
8199034852cSGleb Smirnoff* util/ntptime.c: initialization nit.  Harlan Stenn.
8209034852cSGleb Smirnoff* ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr).  Harlan Stenn.
8219034852cSGleb Smirnoff* Add std_unity_tests to various Makefile.am files.  Harlan Stenn.
8229034852cSGleb Smirnoff* ntpd/ntp_restrict.c: added a few assertions, created tests for this file.
8239034852cSGleb Smirnoff  Tomasz Flendrich
8249034852cSGleb Smirnoff* Changed progname to be const in many files - now it's consistent. Tomasz
8259034852cSGleb Smirnoff  Flendrich
8269034852cSGleb Smirnoff* Typo fix for GCC warning suppression.  Harlan Stenn.
8279034852cSGleb Smirnoff* Added tests/ntpd/ntp_scanner.c test. Damir Tomić.
8289034852cSGleb Smirnoff* Added declarations to all Unity tests, and did minor fixes to them.
8299034852cSGleb Smirnoff  Reduced the number of warnings by half. Damir Tomić.
8309034852cSGleb Smirnoff* Updated generate_test_runner.rb and updated the sntp/unity/auto directory
8319034852cSGleb Smirnoff  with the latest Unity updates from Mark. Damir Tomić.
8329034852cSGleb Smirnoff* Retire google test - phase I.  Harlan Stenn.
8339034852cSGleb Smirnoff* Unity test cleanup: move declaration of 'initializing'.  Harlan Stenn.
8349034852cSGleb Smirnoff* Update the NEWS file.  Harlan Stenn.
8359034852cSGleb Smirnoff* Autoconf cleanup.  Harlan Stenn.
8369034852cSGleb Smirnoff* Unit test dist cleanup. Harlan Stenn.
8379034852cSGleb Smirnoff* Cleanup various test Makefile.am files.  Harlan Stenn.
8389034852cSGleb Smirnoff* Pthread autoconf macro cleanup.  Harlan Stenn.
8399034852cSGleb Smirnoff* Fix progname definition in unity runner scripts.  Harlan Stenn.
8409034852cSGleb Smirnoff* Clean trailing whitespace in tests/ntpd/Makefile.am.  Harlan Stenn.
8419034852cSGleb Smirnoff* Update the patch for bug 2817.  Harlan Stenn.
8429034852cSGleb Smirnoff* More updates for bug 2817.  Harlan Stenn.
8439034852cSGleb Smirnoff* Fix bugs in tests/ntpd/ntp_prio_q.c.  Harlan Stenn.
8449034852cSGleb Smirnoff* gcc on older HPUX may need +allowdups.  Harlan Stenn.
8459034852cSGleb Smirnoff* Adding missing MCAST protection.  Harlan Stenn.
8469034852cSGleb Smirnoff* Disable certain test programs on certain platforms.  Harlan Stenn.
8479034852cSGleb Smirnoff* Implement --enable-problem-tests (on by default).  Harlan Stenn.
8489034852cSGleb Smirnoff* build system tweaks.  Harlan Stenn.
8499034852cSGleb Smirnoff
8509034852cSGleb Smirnoff---
851276da39aSCy SchubertNTP 4.2.8p3 (Harlan Stenn <stenn@ntp.org>, 2015/06/29)
852276da39aSCy Schubert
853276da39aSCy SchubertFocus: 1 Security fix.  Bug fixes and enhancements.  Leap-second improvements.
854276da39aSCy Schubert
855276da39aSCy SchubertSeverity: MEDIUM
856276da39aSCy Schubert
857276da39aSCy SchubertSecurity Fix:
858276da39aSCy Schubert
859276da39aSCy Schubert* [Sec 2853] Crafted remote config packet can crash some versions of
860276da39aSCy Schubert  ntpd.  Aleksis Kauppinen, Juergen Perlinger, Harlan Stenn.
861276da39aSCy Schubert
862276da39aSCy SchubertUnder specific circumstances an attacker can send a crafted packet to
863276da39aSCy Schubertcause a vulnerable ntpd instance to crash. This requires each of the
864276da39aSCy Schubertfollowing to be true:
865276da39aSCy Schubert
866276da39aSCy Schubert1) ntpd set up to allow remote configuration (not allowed by default), and
867276da39aSCy Schubert2) knowledge of the configuration password, and
868276da39aSCy Schubert3) access to a computer entrusted to perform remote configuration.
869276da39aSCy Schubert
870276da39aSCy SchubertThis vulnerability is considered low-risk.
871276da39aSCy Schubert
872276da39aSCy SchubertNew features in this release:
873276da39aSCy Schubert
874276da39aSCy SchubertOptional (disabled by default) support to have ntpd provide smeared
875276da39aSCy Schubertleap second time.  A specially built and configured ntpd will only
876276da39aSCy Schubertoffer smeared time in response to client packets.  These response
877276da39aSCy Schubertpackets will also contain a "refid" of 254.a.b.c, where the 24 bits
878276da39aSCy Schubertof a, b, and c encode the amount of smear in a 2:22 integer:fraction
879276da39aSCy Schubertformat.  See README.leapsmear and http://bugs.ntp.org/2855 for more
880276da39aSCy Schubertinformation.
881276da39aSCy Schubert
882276da39aSCy Schubert   *IF YOU CHOOSE TO CONFIGURE NTPD TO PROVIDE LEAP SMEAR TIME*
883276da39aSCy Schubert   *BE SURE YOU DO NOT OFFER THAT TIME ON PUBLIC TIMESERVERS.*
884276da39aSCy Schubert
885276da39aSCy SchubertWe've imported the Unity test framework, and have begun converting
886276da39aSCy Schubertthe existing google-test items to this new framework.  If you want
887276da39aSCy Schubertto write new tests or change old ones, you'll need to have ruby
888276da39aSCy Schubertinstalled.  You don't need ruby to run the test suite.
889276da39aSCy Schubert
890276da39aSCy SchubertBug Fixes and Improvements:
891276da39aSCy Schubert
892276da39aSCy Schubert* CID 739725: Fix a rare resource leak in libevent/listener.c.
893276da39aSCy Schubert* CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776.
894276da39aSCy Schubert* CID 1296235: Fix refclock_jjy.c and correcting type of the driver40-ja.html
895276da39aSCy Schubert* CID 1269537: Clean up a line of dead code in getShmTime().
896276da39aSCy Schubert* [Bug 1060] Buffer overruns in libparse/clk_rawdcf.c.  Helge Oldach.
897276da39aSCy Schubert* [Bug 2590] autogen-5.18.5.
898276da39aSCy Schubert* [Bug 2612] restrict: Warn when 'monitor' can't be disabled because
899276da39aSCy Schubert  of 'limited'.
900276da39aSCy Schubert* [Bug 2650] fix includefile processing.
901276da39aSCy Schubert* [Bug 2745] ntpd -x steps clock on leap second
902276da39aSCy Schubert   Fixed an initial-value problem that caused misbehaviour in absence of
903276da39aSCy Schubert   any leapsecond information.
904276da39aSCy Schubert   Do leap second stepping only of the step adjustment is beyond the
905276da39aSCy Schubert   proper jump distance limit and step correction is allowed at all.
906276da39aSCy Schubert* [Bug 2750] build for Win64
907276da39aSCy Schubert  Building for 32bit of loopback ppsapi needs def file
908276da39aSCy Schubert* [Bug 2776] Improve ntpq's 'help keytype'.
909276da39aSCy Schubert* [Bug 2778] Implement "apeers"  ntpq command to include associd.
910276da39aSCy Schubert* [Bug 2782] Refactor refclock_shm.c, add memory barrier protection.
911276da39aSCy Schubert* [Bug 2792] If the IFF_RUNNING interface flag is supported then an
912276da39aSCy Schubert  interface is ignored as long as this flag is not set since the
913276da39aSCy Schubert  interface is not usable (e.g., no link).
914276da39aSCy Schubert* [Bug 2794] Clean up kernel clock status reports.
915276da39aSCy Schubert* [Bug 2800] refclock_true.c true_debug() can't open debug log because
916276da39aSCy Schubert  of incompatible open/fdopen parameters.
917276da39aSCy Schubert* [Bug 2804] install-local-data assumes GNU 'find' semantics.
918276da39aSCy Schubert* [Bug 2805] ntpd fails to join multicast group.
919276da39aSCy Schubert* [Bug 2806] refclock_jjy.c supports the Telephone JJY.
920276da39aSCy Schubert* [Bug 2808] GPSD_JSON driver enhancements, step 1.
921276da39aSCy Schubert  Fix crash during cleanup if GPS device not present and char device.
922276da39aSCy Schubert  Increase internal token buffer to parse all JSON data, even SKY.
923276da39aSCy Schubert  Defer logging of errors during driver init until the first unit is
924276da39aSCy Schubert  started, so the syslog is not cluttered when the driver is not used.
925276da39aSCy Schubert  Various improvements, see http://bugs.ntp.org/2808 for details.
926276da39aSCy Schubert  Changed libjsmn to a more recent version.
927276da39aSCy Schubert* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX.
928276da39aSCy Schubert* [Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h.
929276da39aSCy Schubert* [Bug 2815] net-snmp before v5.4 has circular library dependencies.
930276da39aSCy Schubert* [Bug 2821] Add a missing NTP_PRINTF and a missing const.
931276da39aSCy Schubert* [Bug 2822] New leap column in sntp broke NTP::Util.pm.
932276da39aSCy Schubert* [Bug 2824] Convert update-leap to perl. (also see 2769)
933276da39aSCy Schubert* [Bug 2825] Quiet file installation in html/ .
934276da39aSCy Schubert* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
935276da39aSCy Schubert   NTPD transfers the current TAI (instead of an announcement) now.
936276da39aSCy Schubert   This might still needed improvement.
937276da39aSCy Schubert   Update autokey data ASAP when 'sys_tai' changes.
938276da39aSCy Schubert   Fix unit test that was broken by changes for autokey update.
939276da39aSCy Schubert   Avoid potential signature length issue and use DPRINTF where possible
940276da39aSCy Schubert     in ntp_crypto.c.
941276da39aSCy Schubert* [Bug 2832] refclock_jjy.c supports the TDC-300.
942276da39aSCy Schubert* [Bug 2834] Correct a broken html tag in html/refclock.html
943276da39aSCy Schubert* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
944276da39aSCy Schubert  robust, and require 2 consecutive timestamps to be consistent.
945276da39aSCy Schubert* [Bug 2837] Allow a configurable DSCP value.
946276da39aSCy Schubert* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
947276da39aSCy Schubert* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
948276da39aSCy Schubert* [Bug 2842] Bug in mdoc2man.
949276da39aSCy Schubert* [Bug 2843] make check fails on 4.3.36
950276da39aSCy Schubert   Fixed compiler warnings about numeric range overflow
951276da39aSCy Schubert   (The original topic was fixed in a byplay to bug#2830)
952276da39aSCy Schubert* [Bug 2845] Harden memory allocation in ntpd.
953276da39aSCy Schubert* [Bug 2852] 'make check' can't find unity.h.  Hal Murray.
954276da39aSCy Schubert* [Bug 2854] Missing brace in libntp/strdup.c.  Masanari Iida.
955276da39aSCy Schubert* [Bug 2855] Parser fix for conditional leap smear code.  Harlan Stenn.
956276da39aSCy Schubert* [Bug 2855] Report leap smear in the REFID.  Harlan Stenn.
957276da39aSCy Schubert* [Bug 2855] Implement conditional leap smear code.  Martin Burnicki.
958276da39aSCy Schubert* [Bug 2856] ntpd should wait() on terminated child processes.  Paul Green.
959276da39aSCy Schubert* [Bug 2857] Stratus VOS does not support SIGIO.  Paul Green.
960276da39aSCy Schubert* [Bug 2859] Improve raw DCF77 robustness deconding.  Frank Kardel.
961276da39aSCy Schubert* [Bug 2860] ntpq ifstats sanity check is too stringent.  Frank Kardel.
962276da39aSCy Schubert* html/drivers/driver22.html: typo fix.  Harlan Stenn.
963276da39aSCy Schubert* refidsmear test cleanup.  Tomasz Flendrich.
964276da39aSCy Schubert* refidsmear function support and tests.  Harlan Stenn.
965276da39aSCy Schubert* sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested
966276da39aSCy Schubert  something that was only in the 4.2.6 sntp.  Harlan Stenn.
967276da39aSCy Schubert* Modified tests/bug-2803/Makefile.am so it builds Unity framework tests.
968276da39aSCy Schubert  Damir Tomić
969276da39aSCy Schubert* Modified tests/libtnp/Makefile.am so it builds Unity framework tests.
970276da39aSCy Schubert  Damir Tomić
971276da39aSCy Schubert* Modified sntp/tests/Makefile.am so it builds Unity framework tests.
972276da39aSCy Schubert  Damir Tomić
973276da39aSCy Schubert* tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
974276da39aSCy Schubert* Converted from gtest to Unity: tests/bug-2803/. Damir Tomić
975276da39aSCy Schubert* Converted from gtest to Unity: tests/libntp/ a_md5encrypt, atoint.c,
976276da39aSCy Schubert  atouint.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
977276da39aSCy Schubert  calyearstart.c, clocktime.c, hextoint.c, lfpfunc.c, modetoa.c,
978276da39aSCy Schubert  numtoa.c, numtohost.c, refnumtoa.c, ssl_init.c, statestr.c,
979276da39aSCy Schubert  timespecops.c, timevalops.c, uglydate.c, vi64ops.c, ymd2yd.c.
980276da39aSCy Schubert  Damir Tomić
981276da39aSCy Schubert* Converted from gtest to Unity: sntp/tests/ kodDatabase.c, kodFile.c,
982276da39aSCy Schubert  networking.c, keyFile.c, utilities.cpp, sntptest.h,
983276da39aSCy Schubert  fileHandlingTest.h. Damir Tomić
984276da39aSCy Schubert* Initial support for experimental leap smear code.  Harlan Stenn.
985276da39aSCy Schubert* Fixes to sntp/tests/fileHandlingTest.h.in.  Harlan Stenn.
986276da39aSCy Schubert* Report select() debug messages at debug level 3 now.
987276da39aSCy Schubert* sntp/scripts/genLocInfo: treat raspbian as debian.
988276da39aSCy Schubert* Unity test framework fixes.
989276da39aSCy Schubert  ** Requires ruby for changes to tests.
990276da39aSCy Schubert* Initial support for PACKAGE_VERSION tests.
991276da39aSCy Schubert* sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS.
992276da39aSCy Schubert* tests/bug-2803/Makefile.am must distribute bug-2803.h.
993276da39aSCy Schubert* Add an assert to the ntpq ifstats code.
994276da39aSCy Schubert* Clean up the RLIMIT_STACK code.
995276da39aSCy Schubert* Improve the ntpq documentation around the controlkey keyid.
996276da39aSCy Schubert* ntpq.c cleanup.
997276da39aSCy Schubert* Windows port build cleanup.
998276da39aSCy Schubert
999276da39aSCy Schubert---
1000276da39aSCy SchubertNTP 4.2.8p2 (Harlan Stenn <stenn@ntp.org>, 2015/04/07)
1001a25439b6SCy Schubert
1002a25439b6SCy SchubertFocus: Security and Bug fixes, enhancements.
1003a25439b6SCy Schubert
1004a25439b6SCy SchubertSeverity: MEDIUM
1005a25439b6SCy Schubert
1006a25439b6SCy SchubertIn addition to bug fixes and enhancements, this release fixes the
1007a25439b6SCy Schubertfollowing medium-severity vulnerabilities involving private key
1008a25439b6SCy Schubertauthentication:
1009a25439b6SCy Schubert
1010a25439b6SCy Schubert* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
1011a25439b6SCy Schubert
1012a25439b6SCy Schubert    References: Sec 2779 / CVE-2015-1798 / VU#374268
1013a25439b6SCy Schubert    Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not
1014a25439b6SCy Schubert	including ntp-4.2.8p2 where the installation uses symmetric keys
1015a25439b6SCy Schubert	to authenticate remote associations.
1016a25439b6SCy Schubert    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
1017a25439b6SCy Schubert    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
1018a25439b6SCy Schubert    Summary: When ntpd is configured to use a symmetric key to authenticate
1019a25439b6SCy Schubert	a remote NTP server/peer, it checks if the NTP message
1020a25439b6SCy Schubert	authentication code (MAC) in received packets is valid, but not if
1021a25439b6SCy Schubert	there actually is any MAC included. Packets without a MAC are
1022a25439b6SCy Schubert	accepted as if they had a valid MAC. This allows a MITM attacker to
1023a25439b6SCy Schubert	send false packets that are accepted by the client/peer without
1024a25439b6SCy Schubert	having to know the symmetric key. The attacker needs to know the
1025a25439b6SCy Schubert	transmit timestamp of the client to match it in the forged reply
1026a25439b6SCy Schubert	and the false reply needs to reach the client before the genuine
1027a25439b6SCy Schubert	reply from the server. The attacker doesn't necessarily need to be
1028a25439b6SCy Schubert	relaying the packets between the client and the server.
1029a25439b6SCy Schubert
1030a25439b6SCy Schubert	Authentication using autokey doesn't have this problem as there is
1031a25439b6SCy Schubert	a check that requires the key ID to be larger than NTP_MAXKEY,
1032a25439b6SCy Schubert	which fails for packets without a MAC.
1033a25439b6SCy Schubert    Mitigation:
1034a25439b6SCy Schubert        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
1035a25439b6SCy Schubert	or the NTP Public Services Project Download Page
1036a25439b6SCy Schubert        Configure ntpd with enough time sources and monitor it properly.
1037a25439b6SCy Schubert    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
1038a25439b6SCy Schubert
1039a25439b6SCy Schubert* [Sec 2781] Authentication doesn't protect symmetric associations against
1040a25439b6SCy Schubert  DoS attacks.
1041a25439b6SCy Schubert
1042a25439b6SCy Schubert    References: Sec 2781 / CVE-2015-1799 / VU#374268
1043a25439b6SCy Schubert    Affects: All NTP releases starting with at least xntp3.3wy up to but
1044a25439b6SCy Schubert	not including ntp-4.2.8p2 where the installation uses symmetric
1045a25439b6SCy Schubert	key authentication.
1046a25439b6SCy Schubert    CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
1047a25439b6SCy Schubert    Note: the CVSS base Score for this issue could be 4.3 or lower, and
1048a25439b6SCy Schubert	it could be higher than 5.4.
1049a25439b6SCy Schubert    Date Resolved: Stable (4.2.8p2) 07 Apr 2015
1050a25439b6SCy Schubert    Summary: An attacker knowing that NTP hosts A and B are peering with
1051a25439b6SCy Schubert	each other (symmetric association) can send a packet to host A
1052a25439b6SCy Schubert	with source address of B which will set the NTP state variables
1053a25439b6SCy Schubert	on A to the values sent by the attacker. Host A will then send
1054a25439b6SCy Schubert	on its next poll to B a packet with originate timestamp that
1055a25439b6SCy Schubert	doesn't match the transmit timestamp of B and the packet will
1056a25439b6SCy Schubert	be dropped. If the attacker does this periodically for both
1057a25439b6SCy Schubert	hosts, they won't be able to synchronize to each other. This is
1058a25439b6SCy Schubert	a known denial-of-service attack, described at
1059a25439b6SCy Schubert	https://www.eecis.udel.edu/~mills/onwire.html .
1060a25439b6SCy Schubert
1061a25439b6SCy Schubert	According to the document the NTP authentication is supposed to
1062a25439b6SCy Schubert	protect symmetric associations against this attack, but that
1063a25439b6SCy Schubert	doesn't seem to be the case. The state variables are updated even
1064a25439b6SCy Schubert	when authentication fails and the peers are sending packets with
1065a25439b6SCy Schubert	originate timestamps that don't match the transmit timestamps on
1066a25439b6SCy Schubert	the receiving side.
1067a25439b6SCy Schubert
1068a25439b6SCy Schubert	This seems to be a very old problem, dating back to at least
1069a25439b6SCy Schubert	xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905)
1070a25439b6SCy Schubert	specifications, so other NTP implementations with support for
1071a25439b6SCy Schubert	symmetric associations and authentication may be vulnerable too.
1072a25439b6SCy Schubert	An update to the NTP RFC to correct this error is in-process.
1073a25439b6SCy Schubert    Mitigation:
1074a25439b6SCy Schubert        Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
1075a25439b6SCy Schubert	or the NTP Public Services Project Download Page
1076a25439b6SCy Schubert        Note that for users of autokey, this specific style of MITM attack
1077a25439b6SCy Schubert	is simply a long-known potential problem.
1078a25439b6SCy Schubert        Configure ntpd with appropriate time sources and monitor ntpd.
1079a25439b6SCy Schubert	Alert your staff if problems are detected.
1080a25439b6SCy Schubert    Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
1081a25439b6SCy Schubert
1082a25439b6SCy Schubert* New script: update-leap
1083a25439b6SCy SchubertThe update-leap script will verify and if necessary, update the
1084a25439b6SCy Schubertleap-second definition file.
1085a25439b6SCy SchubertIt requires the following commands in order to work:
1086a25439b6SCy Schubert
1087a25439b6SCy Schubert	wget logger tr sed shasum
1088a25439b6SCy Schubert
1089a25439b6SCy SchubertSome may choose to run this from cron.  It needs more portability testing.
1090a25439b6SCy Schubert
1091a25439b6SCy SchubertBug Fixes and Improvements:
1092a25439b6SCy Schubert
1093a25439b6SCy Schubert* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
1094a25439b6SCy Schubert* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument.
1095a25439b6SCy Schubert* [Bug 2346] "graceful termination" signals do not do peer cleanup.
1096a25439b6SCy Schubert* [Bug 2728] See if C99-style structure initialization works.
1097a25439b6SCy Schubert* [Bug 2747] Upgrade libevent to 2.1.5-beta.
1098a25439b6SCy Schubert* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. .
1099a25439b6SCy Schubert* [Bug 2751] jitter.h has stale copies of l_fp macros.
1100a25439b6SCy Schubert* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
1101a25439b6SCy Schubert* [Bug 2757] Quiet compiler warnings.
1102a25439b6SCy Schubert* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
1103a25439b6SCy Schubert* [Bug 2763] Allow different thresholds for forward and backward steps.
1104a25439b6SCy Schubert* [Bug 2766] ntp-keygen output files should not be world-readable.
1105a25439b6SCy Schubert* [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
1106a25439b6SCy Schubert* [Bug 2771] nonvolatile value is documented in wrong units.
1107a25439b6SCy Schubert* [Bug 2773] Early leap announcement from Palisade/Thunderbolt
1108a25439b6SCy Schubert* [Bug 2774] Unreasonably verbose printout - leap pending/warning
1109a25439b6SCy Schubert* [Bug 2775] ntp-keygen.c fails to compile under Windows.
1110a25439b6SCy Schubert* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info.
1111a25439b6SCy Schubert  Removed non-ASCII characters from some copyright comments.
1112a25439b6SCy Schubert  Removed trailing whitespace.
1113a25439b6SCy Schubert  Updated definitions for Meinberg clocks from current Meinberg header files.
1114a25439b6SCy Schubert  Now use C99 fixed-width types and avoid non-ASCII characters in comments.
1115a25439b6SCy Schubert  Account for updated definitions pulled from Meinberg header files.
1116a25439b6SCy Schubert  Updated comments on Meinberg GPS receivers which are not only called GPS16x.
1117a25439b6SCy Schubert  Replaced some constant numbers by defines from ntp_calendar.h
1118a25439b6SCy Schubert  Modified creation of parse-specific variables for Meinberg devices
1119a25439b6SCy Schubert  in gps16x_message().
1120a25439b6SCy Schubert  Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
1121a25439b6SCy Schubert  Modified mbg_tm_str() which now expexts an additional parameter controlling
1122a25439b6SCy Schubert  if the time status shall be printed.
1123a25439b6SCy Schubert* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
1124a25439b6SCy Schubert* [Sec 2781] Authentication doesn't protect symmetric associations against
1125a25439b6SCy Schubert  DoS attacks.
1126a25439b6SCy Schubert* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE.
1127a25439b6SCy Schubert* [Bug 2789] Quiet compiler warnings from libevent.
1128a25439b6SCy Schubert* [Bug 2790] If ntpd sets the Windows MM timer highest resolution
1129a25439b6SCy Schubert  pause briefly before measuring system clock precision to yield
1130a25439b6SCy Schubert  correct results.
1131a25439b6SCy Schubert* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer.
1132a25439b6SCy Schubert* Use predefined function types for parse driver functions
1133a25439b6SCy Schubert  used to set up function pointers.
1134a25439b6SCy Schubert  Account for changed prototype of parse_inp_fnc_t functions.
1135a25439b6SCy Schubert  Cast parse conversion results to appropriate types to avoid
1136a25439b6SCy Schubert  compiler warnings.
1137a25439b6SCy Schubert  Let ioctl() for Windows accept a (void *) to avoid compiler warnings
1138a25439b6SCy Schubert  when called with pointers to different types.
1139a25439b6SCy Schubert
1140a25439b6SCy Schubert---
11412b15cb3dSCy SchubertNTP 4.2.8p1 (Harlan Stenn <stenn@ntp.org>, 2015/02/04)
11422b15cb3dSCy Schubert
11432b15cb3dSCy SchubertFocus: Security and Bug fixes, enhancements.
11442b15cb3dSCy Schubert
11452b15cb3dSCy SchubertSeverity: HIGH
11462b15cb3dSCy Schubert
11472b15cb3dSCy SchubertIn addition to bug fixes and enhancements, this release fixes the
11482b15cb3dSCy Schubertfollowing high-severity vulnerabilities:
11492b15cb3dSCy Schubert
11502b15cb3dSCy Schubert* vallen is not validated in several places in ntp_crypto.c, leading
11512b15cb3dSCy Schubert  to a potential information leak or possibly a crash
11522b15cb3dSCy Schubert
11532b15cb3dSCy Schubert    References: Sec 2671 / CVE-2014-9297 / VU#852879
11542b15cb3dSCy Schubert    Affects: All NTP4 releases before 4.2.8p1 that are running autokey.
11552b15cb3dSCy Schubert    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
11562b15cb3dSCy Schubert    Date Resolved: Stable (4.2.8p1) 04 Feb 2015
11572b15cb3dSCy Schubert    Summary: The vallen packet value is not validated in several code
11582b15cb3dSCy Schubert             paths in ntp_crypto.c which can lead to information leakage
11592b15cb3dSCy Schubert	     or perhaps a crash of the ntpd process.
11602b15cb3dSCy Schubert    Mitigation - any of:
11612b15cb3dSCy Schubert	Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
11622b15cb3dSCy Schubert		or the NTP Public Services Project Download Page.
11632b15cb3dSCy Schubert	Disable Autokey Authentication by removing, or commenting out,
11642b15cb3dSCy Schubert		all configuration directives beginning with the "crypto"
11652b15cb3dSCy Schubert		keyword in your ntp.conf file.
11662b15cb3dSCy Schubert    Credit: This vulnerability was discovered by Stephen Roettger of the
11672b15cb3dSCy Schubert    	Google Security Team, with additional cases found by Sebastian
11682b15cb3dSCy Schubert	Krahmer of the SUSE Security Team and Harlan Stenn of Network
11692b15cb3dSCy Schubert	Time Foundation.
11702b15cb3dSCy Schubert
11712b15cb3dSCy Schubert* ::1 can be spoofed on some OSes, so ACLs based on IPv6 ::1 addresses
11722b15cb3dSCy Schubert  can be bypassed.
11732b15cb3dSCy Schubert
11742b15cb3dSCy Schubert    References: Sec 2672 / CVE-2014-9298 / VU#852879
11752b15cb3dSCy Schubert    Affects: All NTP4 releases before 4.2.8p1, under at least some
11762b15cb3dSCy Schubert	versions of MacOS and Linux. *BSD has not been seen to be vulnerable.
11772b15cb3dSCy Schubert    CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:C) Base Score: 9
11782b15cb3dSCy Schubert    Date Resolved: Stable (4.2.8p1) 04 Feb 2014
11792b15cb3dSCy Schubert    Summary: While available kernels will prevent 127.0.0.1 addresses
11802b15cb3dSCy Schubert	from "appearing" on non-localhost IPv4 interfaces, some kernels
11812b15cb3dSCy Schubert	do not offer the same protection for ::1 source addresses on
11822b15cb3dSCy Schubert	IPv6 interfaces. Since NTP's access control is based on source
11832b15cb3dSCy Schubert	address and localhost addresses generally have no restrictions,
11842b15cb3dSCy Schubert	an attacker can send malicious control and configuration packets
11852b15cb3dSCy Schubert	by spoofing ::1 addresses from the outside. Note Well: This is
11862b15cb3dSCy Schubert	not really a bug in NTP, it's a problem with some OSes. If you
11872b15cb3dSCy Schubert	have one of these OSes where ::1 can be spoofed, ALL ::1 -based
11882b15cb3dSCy Schubert	ACL restrictions on any application can be bypassed!
11892b15cb3dSCy Schubert    Mitigation:
11902b15cb3dSCy Schubert        Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
11912b15cb3dSCy Schubert	or the NTP Public Services Project Download Page
11922b15cb3dSCy Schubert        Install firewall rules to block packets claiming to come from
11932b15cb3dSCy Schubert	::1 from inappropriate network interfaces.
11942b15cb3dSCy Schubert    Credit: This vulnerability was discovered by Stephen Roettger of
11952b15cb3dSCy Schubert	the Google Security Team.
11962b15cb3dSCy Schubert
11972b15cb3dSCy SchubertAdditionally, over 30 bugfixes and improvements were made to the codebase.
11982b15cb3dSCy SchubertSee the ChangeLog for more information.
11992b15cb3dSCy Schubert
12002b15cb3dSCy Schubert---
12012b15cb3dSCy SchubertNTP 4.2.8 (Harlan Stenn <stenn@ntp.org>, 2014/12/18)
12022b15cb3dSCy Schubert
12032b15cb3dSCy SchubertFocus: Security and Bug fixes, enhancements.
12042b15cb3dSCy Schubert
12052b15cb3dSCy SchubertSeverity: HIGH
12062b15cb3dSCy Schubert
12072b15cb3dSCy SchubertIn addition to bug fixes and enhancements, this release fixes the
12082b15cb3dSCy Schubertfollowing high-severity vulnerabilities:
12092b15cb3dSCy Schubert
12102b15cb3dSCy Schubert************************** vv NOTE WELL vv *****************************
12112b15cb3dSCy Schubert
12122b15cb3dSCy SchubertThe vulnerabilities listed below can be significantly mitigated by
12132b15cb3dSCy Schubertfollowing the BCP of putting
12142b15cb3dSCy Schubert
12152b15cb3dSCy Schubert restrict default ... noquery
12162b15cb3dSCy Schubert
12172b15cb3dSCy Schubertin the ntp.conf file.  With the exception of:
12182b15cb3dSCy Schubert
12192b15cb3dSCy Schubert   receive(): missing return on error
12202b15cb3dSCy Schubert   References: Sec 2670 / CVE-2014-9296 / VU#852879
12212b15cb3dSCy Schubert
12222b15cb3dSCy Schubertbelow (which is a limited-risk vulnerability), none of the recent
12232b15cb3dSCy Schubertvulnerabilities listed below can be exploited if the source IP is
12242b15cb3dSCy Schubertrestricted from sending a 'query'-class packet by your ntp.conf file.
12252b15cb3dSCy Schubert
12262b15cb3dSCy Schubert************************** ^^ NOTE WELL ^^ *****************************
12272b15cb3dSCy Schubert
12282b15cb3dSCy Schubert* Weak default key in config_auth().
12292b15cb3dSCy Schubert
12302b15cb3dSCy Schubert  References: [Sec 2665] / CVE-2014-9293 / VU#852879
12312b15cb3dSCy Schubert  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
12322b15cb3dSCy Schubert  Vulnerable Versions: all releases prior to 4.2.7p11
12332b15cb3dSCy Schubert  Date Resolved: 28 Jan 2010
12342b15cb3dSCy Schubert
12352b15cb3dSCy Schubert  Summary: If no 'auth' key is set in the configuration file, ntpd
12362b15cb3dSCy Schubert	would generate a random key on the fly.  There were two
12372b15cb3dSCy Schubert	problems with this: 1) the generated key was 31 bits in size,
12382b15cb3dSCy Schubert	and 2) it used the (now weak) ntp_random() function, which was
12392b15cb3dSCy Schubert	seeded with a 32-bit value and could only provide 32 bits of
12402b15cb3dSCy Schubert	entropy.  This was sufficient back in the late 1990s when the
12412b15cb3dSCy Schubert	code was written.  Not today.
12422b15cb3dSCy Schubert
12432b15cb3dSCy Schubert  Mitigation - any of:
12442b15cb3dSCy Schubert	- Upgrade to 4.2.7p11 or later.
12452b15cb3dSCy Schubert	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
12462b15cb3dSCy Schubert
12472b15cb3dSCy Schubert  Credit: This vulnerability was noticed in ntp-4.2.6 by Neel Mehta
12482b15cb3dSCy Schubert  	of the Google Security Team.
12492b15cb3dSCy Schubert
12502b15cb3dSCy Schubert* Non-cryptographic random number generator with weak seed used by
12512b15cb3dSCy Schubert  ntp-keygen to generate symmetric keys.
12522b15cb3dSCy Schubert
12532b15cb3dSCy Schubert  References: [Sec 2666] / CVE-2014-9294 / VU#852879
12542b15cb3dSCy Schubert  CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
12552b15cb3dSCy Schubert  Vulnerable Versions: All NTP4 releases before 4.2.7p230
12562b15cb3dSCy Schubert  Date Resolved: Dev (4.2.7p230) 01 Nov 2011
12572b15cb3dSCy Schubert
12582b15cb3dSCy Schubert  Summary: Prior to ntp-4.2.7p230 ntp-keygen used a weak seed to
12592b15cb3dSCy Schubert  	prepare a random number generator that was of good quality back
12602b15cb3dSCy Schubert	in the late 1990s. The random numbers produced was then used to
12612b15cb3dSCy Schubert	generate symmetric keys. In ntp-4.2.8 we use a current-technology
12622b15cb3dSCy Schubert	cryptographic random number generator, either RAND_bytes from
12632b15cb3dSCy Schubert	OpenSSL, or arc4random().
12642b15cb3dSCy Schubert
12652b15cb3dSCy Schubert  Mitigation - any of:
12662b15cb3dSCy Schubert  	- Upgrade to 4.2.7p230 or later.
12672b15cb3dSCy Schubert	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
12682b15cb3dSCy Schubert
12692b15cb3dSCy Schubert  Credit:  This vulnerability was discovered in ntp-4.2.6 by
12702b15cb3dSCy Schubert  	Stephen Roettger of the Google Security Team.
12712b15cb3dSCy Schubert
12722b15cb3dSCy Schubert* Buffer overflow in crypto_recv()
12732b15cb3dSCy Schubert
12742b15cb3dSCy Schubert  References: Sec 2667 / CVE-2014-9295 / VU#852879
12752b15cb3dSCy Schubert  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
12762b15cb3dSCy Schubert  Versions: All releases before 4.2.8
12772b15cb3dSCy Schubert  Date Resolved: Stable (4.2.8) 18 Dec 2014
12782b15cb3dSCy Schubert
12792b15cb3dSCy Schubert  Summary: When Autokey Authentication is enabled (i.e. the ntp.conf
12802b15cb3dSCy Schubert  	file contains a 'crypto pw ...' directive) a remote attacker
12812b15cb3dSCy Schubert	can send a carefully crafted packet that can overflow a stack
12822b15cb3dSCy Schubert	buffer and potentially allow malicious code to be executed
12832b15cb3dSCy Schubert	with the privilege level of the ntpd process.
12842b15cb3dSCy Schubert
12852b15cb3dSCy Schubert  Mitigation - any of:
12862b15cb3dSCy Schubert  	- Upgrade to 4.2.8, or later, or
12872b15cb3dSCy Schubert	- Disable Autokey Authentication by removing, or commenting out,
12882b15cb3dSCy Schubert	  all configuration directives beginning with the crypto keyword
12892b15cb3dSCy Schubert	  in your ntp.conf file.
12902b15cb3dSCy Schubert
12912b15cb3dSCy Schubert  Credit: This vulnerability was discovered by Stephen Roettger of the
12922b15cb3dSCy Schubert  	Google Security Team.
12932b15cb3dSCy Schubert
12942b15cb3dSCy Schubert* Buffer overflow in ctl_putdata()
12952b15cb3dSCy Schubert
12962b15cb3dSCy Schubert  References: Sec 2668 / CVE-2014-9295 / VU#852879
12972b15cb3dSCy Schubert  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
12982b15cb3dSCy Schubert  Versions: All NTP4 releases before 4.2.8
12992b15cb3dSCy Schubert  Date Resolved: Stable (4.2.8) 18 Dec 2014
13002b15cb3dSCy Schubert
13012b15cb3dSCy Schubert  Summary: A remote attacker can send a carefully crafted packet that
13022b15cb3dSCy Schubert  	can overflow a stack buffer and potentially allow malicious
13032b15cb3dSCy Schubert	code to be executed with the privilege level of the ntpd process.
13042b15cb3dSCy Schubert
13052b15cb3dSCy Schubert  Mitigation - any of:
13062b15cb3dSCy Schubert  	- Upgrade to 4.2.8, or later.
13072b15cb3dSCy Schubert	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
13082b15cb3dSCy Schubert
13092b15cb3dSCy Schubert  Credit: This vulnerability was discovered by Stephen Roettger of the
13102b15cb3dSCy Schubert  	Google Security Team.
13112b15cb3dSCy Schubert
13122b15cb3dSCy Schubert* Buffer overflow in configure()
13132b15cb3dSCy Schubert
13142b15cb3dSCy Schubert  References: Sec 2669 / CVE-2014-9295 / VU#852879
13152b15cb3dSCy Schubert  CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
13162b15cb3dSCy Schubert  Versions: All NTP4 releases before 4.2.8
13172b15cb3dSCy Schubert  Date Resolved: Stable (4.2.8) 18 Dec 2014
13182b15cb3dSCy Schubert
13192b15cb3dSCy Schubert  Summary: A remote attacker can send a carefully crafted packet that
13202b15cb3dSCy Schubert	can overflow a stack buffer and potentially allow malicious
13212b15cb3dSCy Schubert	code to be executed with the privilege level of the ntpd process.
13222b15cb3dSCy Schubert
13232b15cb3dSCy Schubert  Mitigation - any of:
13242b15cb3dSCy Schubert  	- Upgrade to 4.2.8, or later.
13252b15cb3dSCy Schubert	- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
13262b15cb3dSCy Schubert
13272b15cb3dSCy Schubert  Credit: This vulnerability was discovered by Stephen Roettger of the
13282b15cb3dSCy Schubert	Google Security Team.
13292b15cb3dSCy Schubert
13302b15cb3dSCy Schubert* receive(): missing return on error
13312b15cb3dSCy Schubert
13322b15cb3dSCy Schubert  References: Sec 2670 / CVE-2014-9296 / VU#852879
13332b15cb3dSCy Schubert  CVSS: (AV:N/AC:L/Au:N/C:N/I:N/A:P) Base Score: 5.0
13342b15cb3dSCy Schubert  Versions: All NTP4 releases before 4.2.8
13352b15cb3dSCy Schubert  Date Resolved: Stable (4.2.8) 18 Dec 2014
13362b15cb3dSCy Schubert
13372b15cb3dSCy Schubert  Summary: Code in ntp_proto.c:receive() was missing a 'return;' in
13382b15cb3dSCy Schubert  	the code path where an error was detected, which meant
13392b15cb3dSCy Schubert	processing did not stop when a specific rare error occurred.
13402b15cb3dSCy Schubert	We haven't found a way for this bug to affect system integrity.
13412b15cb3dSCy Schubert	If there is no way to affect system integrity the base CVSS
13422b15cb3dSCy Schubert	score for this bug is 0. If there is one avenue through which
13432b15cb3dSCy Schubert	system integrity can be partially affected, the base score
13442b15cb3dSCy Schubert	becomes a 5. If system integrity can be partially affected
13452b15cb3dSCy Schubert	via all three integrity metrics, the CVSS base score become 7.5.
13462b15cb3dSCy Schubert
13472b15cb3dSCy Schubert  Mitigation - any of:
13482b15cb3dSCy Schubert        - Upgrade to 4.2.8, or later,
13492b15cb3dSCy Schubert        - Remove or comment out all configuration directives
13502b15cb3dSCy Schubert	  beginning with the crypto keyword in your ntp.conf file.
13512b15cb3dSCy Schubert
13522b15cb3dSCy Schubert  Credit: This vulnerability was discovered by Stephen Roettger of the
13532b15cb3dSCy Schubert  	Google Security Team.
13542b15cb3dSCy Schubert
13552b15cb3dSCy SchubertSee http://support.ntp.org/security for more information.
13562b15cb3dSCy Schubert
13572b15cb3dSCy SchubertNew features / changes in this release:
13582b15cb3dSCy Schubert
13592b15cb3dSCy SchubertImportant Changes
13602b15cb3dSCy Schubert
13612b15cb3dSCy Schubert* Internal NTP Era counters
13622b15cb3dSCy Schubert
13632b15cb3dSCy SchubertThe internal counters that track the "era" (range of years) we are in
13642b15cb3dSCy Schubertrolls over every 136 years'.  The current "era" started at the stroke of
13652b15cb3dSCy Schubertmidnight on 1 Jan 1900, and ends just before the stroke of midnight on
13662b15cb3dSCy Schubert1 Jan 2036.
13672b15cb3dSCy SchubertIn the past, we have used the "midpoint" of the  range to decide which
13682b15cb3dSCy Schubertera we were in.  Given the longevity of some products, it became clear
13692b15cb3dSCy Schubertthat it would be more functional to "look back" less, and "look forward"
13702b15cb3dSCy Schubertmore.  We now compile a timestamp into the ntpd executable and when we
13712b15cb3dSCy Schubertget a timestamp we us the "built-on" to tell us what era we are in.
13722b15cb3dSCy SchubertThis check "looks back" 10 years, and "looks forward" 126 years.
13732b15cb3dSCy Schubert
13742b15cb3dSCy Schubert* ntpdc responses disabled by default
13752b15cb3dSCy Schubert
13762b15cb3dSCy SchubertDave Hart writes:
13772b15cb3dSCy Schubert
13782b15cb3dSCy SchubertFor a long time, ntpq and its mostly text-based mode 6 (control)
13792b15cb3dSCy Schubertprotocol have been preferred over ntpdc and its mode 7 (private
13802b15cb3dSCy Schubertrequest) protocol for runtime queries and configuration.  There has
13812b15cb3dSCy Schubertbeen a goal of deprecating ntpdc, previously held back by numerous
13822b15cb3dSCy Schubertcapabilities exposed by ntpdc with no ntpq equivalent.  I have been
13832b15cb3dSCy Schubertadding commands to ntpq to cover these cases, and I believe I've
13842b15cb3dSCy Schubertcovered them all, though I've not compared command-by-command
13852b15cb3dSCy Schubertrecently.
13862b15cb3dSCy Schubert
13872b15cb3dSCy SchubertAs I've said previously, the binary mode 7 protocol involves a lot of
13882b15cb3dSCy Schuberthand-rolled structure layout and byte-swapping code in both ntpd and
13892b15cb3dSCy Schubertntpdc which is hard to get right.  As ntpd grows and changes, the
13902b15cb3dSCy Schubertchanges are difficult to expose via ntpdc while maintaining forward
13912b15cb3dSCy Schubertand backward compatibility between ntpdc and ntpd.  In contrast,
13922b15cb3dSCy Schubertntpq's text-based, label=value approach involves more code reuse and
13932b15cb3dSCy Schubertallows compatible changes without extra work in most cases.
13942b15cb3dSCy Schubert
13952b15cb3dSCy SchubertMode 7 has always been defined as vendor/implementation-specific while
13962b15cb3dSCy Schubertmode 6 is described in RFC 1305 and intended to be open to interoperate
13972b15cb3dSCy Schubertwith other implementations.  There is an early draft of an updated
13982b15cb3dSCy Schubertmode 6 description that likely will join the other NTPv4 RFCs
13992b15cb3dSCy Schuberteventually. (http://tools.ietf.org/html/draft-odonoghue-ntpv4-control-01)
14002b15cb3dSCy Schubert
14012b15cb3dSCy SchubertFor these reasons, ntpd 4.2.7p230 by default disables processing of
14022b15cb3dSCy Schubertntpdc queries, reducing ntpd's attack surface and functionally
14032b15cb3dSCy Schubertdeprecating ntpdc.  If you are in the habit of using ntpdc for certain
14042b15cb3dSCy Schubertoperations, please try the ntpq equivalent.  If there's no equivalent,
14052b15cb3dSCy Schubertplease open a bug report at http://bugs.ntp.org./
14062b15cb3dSCy Schubert
14072b15cb3dSCy SchubertIn addition to the above, over 1100 issues have been resolved between
14082b15cb3dSCy Schubertthe 4.2.6 branch and 4.2.8.  The ChangeLog file in the distribution
14092b15cb3dSCy Schubertlists these.
14102b15cb3dSCy Schubert
14112b15cb3dSCy Schubert---
14122b15cb3dSCy SchubertNTP 4.2.6p5 (Harlan Stenn <stenn@ntp.org>, 2011/12/24)
14132b15cb3dSCy Schubert
14142b15cb3dSCy SchubertFocus: Bug fixes
14152b15cb3dSCy Schubert
14162b15cb3dSCy SchubertSeverity: Medium
14172b15cb3dSCy Schubert
14182b15cb3dSCy SchubertThis is a recommended upgrade.
14192b15cb3dSCy Schubert
14202b15cb3dSCy SchubertThis release updates sys_rootdisp and sys_jitter calculations to match the
14212b15cb3dSCy SchubertRFC specification, fixes a potential IPv6 address matching error for the
14222b15cb3dSCy Schubert"nic" and "interface" configuration directives, suppresses the creation of
14232b15cb3dSCy Schubertextraneous ephemeral associations for certain broadcastclient and
14242b15cb3dSCy Schubertmulticastclient configurations, cleans up some ntpq display issues, and
14252b15cb3dSCy Schubertincludes improvements to orphan mode, minor bugs fixes and code clean-ups.
14262b15cb3dSCy Schubert
14272b15cb3dSCy SchubertNew features / changes in this release:
14282b15cb3dSCy Schubert
14292b15cb3dSCy Schubertntpd
14302b15cb3dSCy Schubert
14312b15cb3dSCy Schubert * Updated "nic" and "interface" IPv6 address handling to prevent
14322b15cb3dSCy Schubert   mismatches with localhost [::1] and wildcard [::] which resulted from
14332b15cb3dSCy Schubert   using the address/prefix format (e.g. fe80::/64)
14342b15cb3dSCy Schubert * Fix orphan mode stratum incorrectly counting to infinity
14352b15cb3dSCy Schubert * Orphan parent selection metric updated to includes missing ntohl()
14362b15cb3dSCy Schubert * Non-printable stratum 16 refid no longer sent to ntp
14372b15cb3dSCy Schubert * Duplicate ephemeral associations suppressed for broadcastclient and
14382b15cb3dSCy Schubert   multicastclient without broadcastdelay
14392b15cb3dSCy Schubert * Exclude undetermined sys_refid from use in loopback TEST12
14402b15cb3dSCy Schubert * Exclude MODE_SERVER responses from KoD rate limiting
14412b15cb3dSCy Schubert * Include root delay in clock_update() sys_rootdisp calculations
14422b15cb3dSCy Schubert * get_systime() updated to exclude sys_residual offset (which only
14432b15cb3dSCy Schubert   affected bits "below" sys_tick, the precision threshold)
14442b15cb3dSCy Schubert * sys.peer jitter weighting corrected in sys_jitter calculation
14452b15cb3dSCy Schubert
14462b15cb3dSCy Schubertntpq
14472b15cb3dSCy Schubert
14482b15cb3dSCy Schubert * -n option extended to include the billboard "server" column
14492b15cb3dSCy Schubert * IPv6 addresses in the local column truncated to prevent overruns
14502b15cb3dSCy Schubert
14512b15cb3dSCy Schubert---
14522b15cb3dSCy SchubertNTP 4.2.6p4 (Harlan Stenn <stenn@ntp.org>, 2011/09/22)
14532b15cb3dSCy Schubert
14542b15cb3dSCy SchubertFocus: Bug fixes and portability improvements
14552b15cb3dSCy Schubert
14562b15cb3dSCy SchubertSeverity: Medium
14572b15cb3dSCy Schubert
14582b15cb3dSCy SchubertThis is a recommended upgrade.
14592b15cb3dSCy Schubert
14602b15cb3dSCy SchubertThis release includes build infrastructure updates, code
14612b15cb3dSCy Schubertclean-ups, minor bug fixes, fixes for a number of minor
14622b15cb3dSCy Schubertref-clock issues, and documentation revisions.
14632b15cb3dSCy Schubert
14642b15cb3dSCy SchubertPortability improvements affect AIX, HP-UX, Linux, OS X and 64-bit time_t.
14652b15cb3dSCy Schubert
14662b15cb3dSCy SchubertNew features / changes in this release:
14672b15cb3dSCy Schubert
14682b15cb3dSCy SchubertBuild system
14692b15cb3dSCy Schubert
14702b15cb3dSCy Schubert* Fix checking for struct rtattr
14712b15cb3dSCy Schubert* Update config.guess and config.sub for AIX
14722b15cb3dSCy Schubert* Upgrade required version of autogen and libopts for building
14732b15cb3dSCy Schubert  from our source code repository
14742b15cb3dSCy Schubert
14752b15cb3dSCy Schubertntpd
14762b15cb3dSCy Schubert
14772b15cb3dSCy Schubert* Back-ported several fixes for Coverity warnings from ntp-dev
14782b15cb3dSCy Schubert* Fix a rare boundary condition in UNLINK_EXPR_SLIST()
14792b15cb3dSCy Schubert* Allow "logconfig =allall" configuration directive
14802b15cb3dSCy Schubert* Bind tentative IPv6 addresses on Linux
14812b15cb3dSCy Schubert* Correct WWVB/Spectracom driver to timestamp CR instead of LF
14822b15cb3dSCy Schubert* Improved tally bit handling to prevent incorrect ntpq peer status reports
14832b15cb3dSCy Schubert* Exclude the Undisciplined Local Clock and ACTS drivers from the initial
14842b15cb3dSCy Schubert  candidate list unless they are designated a "prefer peer"
14852b15cb3dSCy Schubert* Prevent the consideration of Undisciplined Local Clock or ACTS drivers for
14862b15cb3dSCy Schubert  selection during the 'tos orphanwait' period
14872b15cb3dSCy Schubert* Prefer an Orphan Mode Parent over the Undisciplined Local Clock or ACTS
14882b15cb3dSCy Schubert  drivers
14892b15cb3dSCy Schubert* Improved support of the Parse Refclock trusttime flag in Meinberg mode
14902b15cb3dSCy Schubert* Back-port utility routines from ntp-dev: mprintf(), emalloc_zero()
14912b15cb3dSCy Schubert* Added the NTPD_TICKADJ_PPM environment variable for specifying baseline
14922b15cb3dSCy Schubert  clock slew on Microsoft Windows
14932b15cb3dSCy Schubert* Code cleanup in libntpq
14942b15cb3dSCy Schubert
14952b15cb3dSCy Schubertntpdc
14962b15cb3dSCy Schubert
14972b15cb3dSCy Schubert* Fix timerstats reporting
14982b15cb3dSCy Schubert
14992b15cb3dSCy Schubertntpdate
15002b15cb3dSCy Schubert
15012b15cb3dSCy Schubert* Reduce time required to set clock
15022b15cb3dSCy Schubert* Allow a timeout greater than 2 seconds
15032b15cb3dSCy Schubert
15042b15cb3dSCy Schubertsntp
15052b15cb3dSCy Schubert
15062b15cb3dSCy Schubert* Backward incompatible command-line option change:
15072b15cb3dSCy Schubert  -l/--filelog changed -l/--logfile (to be consistent with ntpd)
15082b15cb3dSCy Schubert
15092b15cb3dSCy SchubertDocumentation
15102b15cb3dSCy Schubert
15112b15cb3dSCy Schubert* Update html2man. Fix some tags in the .html files
15122b15cb3dSCy Schubert* Distribute ntp-wait.html
15132b15cb3dSCy Schubert
15142b15cb3dSCy Schubert---
15152b15cb3dSCy SchubertNTP 4.2.6p3 (Harlan Stenn <stenn@ntp.org>, 2011/01/03)
15162b15cb3dSCy Schubert
15172b15cb3dSCy SchubertFocus: Bug fixes and portability improvements
15182b15cb3dSCy Schubert
15192b15cb3dSCy SchubertSeverity: Medium
15202b15cb3dSCy Schubert
15212b15cb3dSCy SchubertThis is a recommended upgrade.
15222b15cb3dSCy Schubert
15232b15cb3dSCy SchubertThis release includes build infrastructure updates, code
15242b15cb3dSCy Schubertclean-ups, minor bug fixes, fixes for a number of minor
15252b15cb3dSCy Schubertref-clock issues, and documentation revisions.
15262b15cb3dSCy Schubert
15272b15cb3dSCy SchubertPortability improvements in this release affect AIX, Atari FreeMiNT,
15282b15cb3dSCy SchubertFreeBSD4, Linux and Microsoft Windows.
15292b15cb3dSCy Schubert
15302b15cb3dSCy SchubertNew features / changes in this release:
15312b15cb3dSCy Schubert
15322b15cb3dSCy SchubertBuild system
15332b15cb3dSCy Schubert* Use lsb_release to get information about Linux distributions.
15342b15cb3dSCy Schubert* 'test' is in /usr/bin (instead of /bin) on some systems.
15352b15cb3dSCy Schubert* Basic sanity checks for the ChangeLog file.
15362b15cb3dSCy Schubert* Source certain build files with ./filename for systems without . in PATH.
15372b15cb3dSCy Schubert* IRIX portability fix.
15382b15cb3dSCy Schubert* Use a single copy of the "libopts" code.
15392b15cb3dSCy Schubert* autogen/libopts upgrade.
15402b15cb3dSCy Schubert* configure.ac m4 quoting cleanup.
15412b15cb3dSCy Schubert
15422b15cb3dSCy Schubertntpd
15432b15cb3dSCy Schubert* Do not bind to IN6_IFF_ANYCAST addresses.
15442b15cb3dSCy Schubert* Log the reason for exiting under Windows.
15452b15cb3dSCy Schubert* Multicast fixes for Windows.
15462b15cb3dSCy Schubert* Interpolation fixes for Windows.
15472b15cb3dSCy Schubert* IPv4 and IPv6 Multicast fixes.
15482b15cb3dSCy Schubert* Manycast solicitation fixes and general repairs.
15492b15cb3dSCy Schubert* JJY refclock cleanup.
15502b15cb3dSCy Schubert* NMEA refclock improvements.
15512b15cb3dSCy Schubert* Oncore debug message cleanup.
15522b15cb3dSCy Schubert* Palisade refclock now builds under Linux.
15532b15cb3dSCy Schubert* Give RAWDCF more baud rates.
15542b15cb3dSCy Schubert* Support Truetime Satellite clocks under Windows.
15552b15cb3dSCy Schubert* Support Arbiter 1093C Satellite clocks under Windows.
15562b15cb3dSCy Schubert* Make sure that the "filegen" configuration command defaults to "enable".
15572b15cb3dSCy Schubert* Range-check the status codes (plus other cleanup) in the RIPE-NCC driver.
15582b15cb3dSCy Schubert* Prohibit 'includefile' directive in remote configuration command.
15592b15cb3dSCy Schubert* Fix 'nic' interface bindings.
15602b15cb3dSCy Schubert* Fix the way we link with openssl if openssl is installed in the base
15612b15cb3dSCy Schubert  system.
15622b15cb3dSCy Schubert
15632b15cb3dSCy Schubertntp-keygen
15642b15cb3dSCy Schubert* Fix -V coredump.
15652b15cb3dSCy Schubert* OpenSSL version display cleanup.
15662b15cb3dSCy Schubert
15672b15cb3dSCy Schubertntpdc
15682b15cb3dSCy Schubert* Many counters should be treated as unsigned.
15692b15cb3dSCy Schubert
15702b15cb3dSCy Schubertntpdate
15712b15cb3dSCy Schubert* Do not ignore replies with equal receive and transmit timestamps.
15722b15cb3dSCy Schubert
15732b15cb3dSCy Schubertntpq
15742b15cb3dSCy Schubert* libntpq warning cleanup.
15752b15cb3dSCy Schubert
15762b15cb3dSCy Schubertntpsnmpd
15772b15cb3dSCy Schubert* Correct SNMP type for "precision" and "resolution".
15782b15cb3dSCy Schubert* Update the MIB from the draft version to RFC-5907.
15792b15cb3dSCy Schubert
15802b15cb3dSCy Schubertsntp
15812b15cb3dSCy Schubert* Display timezone offset when showing time for sntp in the local
15822b15cb3dSCy Schubert  timezone.
15832b15cb3dSCy Schubert* Pay proper attention to RATE KoD packets.
15842b15cb3dSCy Schubert* Fix a miscalculation of the offset.
15852b15cb3dSCy Schubert* Properly parse empty lines in the key file.
15862b15cb3dSCy Schubert* Logging cleanup.
15872b15cb3dSCy Schubert* Use tv_usec correctly in set_time().
15882b15cb3dSCy Schubert* Documentation cleanup.
15892b15cb3dSCy Schubert
15902b15cb3dSCy Schubert---
15912b15cb3dSCy SchubertNTP 4.2.6p2 (Harlan Stenn <stenn@ntp.org>, 2010/07/08)
15922b15cb3dSCy Schubert
15932b15cb3dSCy SchubertFocus: Bug fixes and portability improvements
15942b15cb3dSCy Schubert
15952b15cb3dSCy SchubertSeverity: Medium
15962b15cb3dSCy Schubert
15972b15cb3dSCy SchubertThis is a recommended upgrade.
15982b15cb3dSCy Schubert
15992b15cb3dSCy SchubertThis release includes build infrastructure updates, code
16002b15cb3dSCy Schubertclean-ups, minor bug fixes, fixes for a number of minor
16012b15cb3dSCy Schubertref-clock issues, improved KOD handling, OpenSSL related
16022b15cb3dSCy Schubertupdates and documentation revisions.
16032b15cb3dSCy Schubert
16042b15cb3dSCy SchubertPortability improvements in this release affect Irix, Linux,
16052b15cb3dSCy SchubertMac OS, Microsoft Windows, OpenBSD and QNX6
16062b15cb3dSCy Schubert
16072b15cb3dSCy SchubertNew features / changes in this release:
16082b15cb3dSCy Schubert
16092b15cb3dSCy Schubertntpd
16102b15cb3dSCy Schubert* Range syntax for the trustedkey configuration directive
16112b15cb3dSCy Schubert* Unified IPv4 and IPv6 restrict lists
16122b15cb3dSCy Schubert
16132b15cb3dSCy Schubertntpdate
16142b15cb3dSCy Schubert* Rate limiting and KOD handling
16152b15cb3dSCy Schubert
16162b15cb3dSCy Schubertntpsnmpd
16172b15cb3dSCy Schubert* default connection to net-snmpd via a unix-domain socket
16182b15cb3dSCy Schubert* command-line 'socket name' option
16192b15cb3dSCy Schubert
16202b15cb3dSCy Schubertntpq / ntpdc
16212b15cb3dSCy Schubert* support for the "passwd ..." syntax
16222b15cb3dSCy Schubert* key-type specific password prompts
16232b15cb3dSCy Schubert
16242b15cb3dSCy Schubertsntp
16252b15cb3dSCy Schubert* MD5 authentication of an ntpd
16262b15cb3dSCy Schubert* Broadcast and crypto
16272b15cb3dSCy Schubert* OpenSSL support
16282b15cb3dSCy Schubert
16292b15cb3dSCy Schubert---
16302b15cb3dSCy SchubertNTP 4.2.6p1 (Harlan Stenn <stenn@ntp.org>, 2010/04/09)
16312b15cb3dSCy Schubert
16322b15cb3dSCy SchubertFocus: Bug fixes, portability fixes, and documentation improvements
16332b15cb3dSCy Schubert
16342b15cb3dSCy SchubertSeverity: Medium
16352b15cb3dSCy Schubert
16362b15cb3dSCy SchubertThis is a recommended upgrade.
16372b15cb3dSCy Schubert
16382b15cb3dSCy Schubert---
16392b15cb3dSCy SchubertNTP 4.2.6 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
16402b15cb3dSCy Schubert
16412b15cb3dSCy SchubertFocus: enhancements and bug fixes.
16422b15cb3dSCy Schubert
16432b15cb3dSCy Schubert---
1644eb6d21b4SOllivier RobertNTP 4.2.4p8 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
1645eb6d21b4SOllivier Robert
1646eb6d21b4SOllivier RobertFocus: Security Fixes
1647eb6d21b4SOllivier Robert
1648eb6d21b4SOllivier RobertSeverity: HIGH
1649eb6d21b4SOllivier Robert
1650eb6d21b4SOllivier RobertThis release fixes the following high-severity vulnerability:
1651eb6d21b4SOllivier Robert
1652eb6d21b4SOllivier Robert* [Sec 1331] DoS with mode 7 packets - CVE-2009-3563.
1653eb6d21b4SOllivier Robert
1654eb6d21b4SOllivier Robert  See http://support.ntp.org/security for more information.
1655eb6d21b4SOllivier Robert
1656eb6d21b4SOllivier Robert  NTP mode 7 (MODE_PRIVATE) is used by the ntpdc query and control utility.
1657eb6d21b4SOllivier Robert  In contrast, ntpq uses NTP mode 6 (MODE_CONTROL), while routine NTP time
1658eb6d21b4SOllivier Robert  transfers use modes 1 through 5.  Upon receipt of an incorrect mode 7
1659eb6d21b4SOllivier Robert  request or a mode 7 error response from an address which is not listed
1660eb6d21b4SOllivier Robert  in a "restrict ... noquery" or "restrict ... ignore" statement, ntpd will
1661eb6d21b4SOllivier Robert  reply with a mode 7 error response (and log a message).  In this case:
1662eb6d21b4SOllivier Robert
1663eb6d21b4SOllivier Robert	* If an attacker spoofs the source address of ntpd host A in a
1664eb6d21b4SOllivier Robert	  mode 7 response packet sent to ntpd host B, both A and B will
1665eb6d21b4SOllivier Robert	  continuously send each other error responses, for as long as
1666eb6d21b4SOllivier Robert	  those packets get through.
1667eb6d21b4SOllivier Robert
1668eb6d21b4SOllivier Robert	* If an attacker spoofs an address of ntpd host A in a mode 7
1669eb6d21b4SOllivier Robert	  response packet sent to ntpd host A, A will respond to itself
1670eb6d21b4SOllivier Robert	  endlessly, consuming CPU and logging excessively.
1671eb6d21b4SOllivier Robert
1672eb6d21b4SOllivier Robert  Credit for finding this vulnerability goes to Robin Park and Dmitri
1673eb6d21b4SOllivier Robert  Vinokurov of Alcatel-Lucent.
1674eb6d21b4SOllivier Robert
1675eb6d21b4SOllivier RobertTHIS IS A STRONGLY RECOMMENDED UPGRADE.
1676eb6d21b4SOllivier Robert
1677eb6d21b4SOllivier Robert---
16782b15cb3dSCy Schubertntpd now syncs to refclocks right away.
16792b15cb3dSCy Schubert
16802b15cb3dSCy SchubertBackward-Incompatible changes:
16812b15cb3dSCy Schubert
16822b15cb3dSCy Schubertntpd no longer accepts '-v name' or '-V name' to define internal variables.
16832b15cb3dSCy SchubertUse '--var name' or '--dvar name' instead. (Bug 817)
16842b15cb3dSCy Schubert
16852b15cb3dSCy Schubert---
1686eb6d21b4SOllivier RobertNTP 4.2.4p7 (Harlan Stenn <stenn@ntp.org>, 2009/05/04)
1687eb6d21b4SOllivier Robert
1688eb6d21b4SOllivier RobertFocus: Security and Bug Fixes
1689eb6d21b4SOllivier Robert
1690eb6d21b4SOllivier RobertSeverity: HIGH
1691eb6d21b4SOllivier Robert
1692eb6d21b4SOllivier RobertThis release fixes the following high-severity vulnerability:
1693eb6d21b4SOllivier Robert
1694eb6d21b4SOllivier Robert* [Sec 1151] Remote exploit if autokey is enabled.  CVE-2009-1252
1695eb6d21b4SOllivier Robert
1696eb6d21b4SOllivier Robert  See http://support.ntp.org/security for more information.
1697eb6d21b4SOllivier Robert
1698eb6d21b4SOllivier Robert  If autokey is enabled (if ntp.conf contains a "crypto pw whatever"
1699eb6d21b4SOllivier Robert  line) then a carefully crafted packet sent to the machine will cause
1700eb6d21b4SOllivier Robert  a buffer overflow and possible execution of injected code, running
1701eb6d21b4SOllivier Robert  with the privileges of the ntpd process (often root).
1702eb6d21b4SOllivier Robert
1703eb6d21b4SOllivier Robert  Credit for finding this vulnerability goes to Chris Ries of CMU.
1704eb6d21b4SOllivier Robert
1705eb6d21b4SOllivier RobertThis release fixes the following low-severity vulnerabilities:
1706eb6d21b4SOllivier Robert
1707eb6d21b4SOllivier Robert* [Sec 1144] limited (two byte) buffer overflow in ntpq.  CVE-2009-0159
1708eb6d21b4SOllivier Robert  Credit for finding this vulnerability goes to Geoff Keating of Apple.
1709eb6d21b4SOllivier Robert
1710eb6d21b4SOllivier Robert* [Sec 1149] use SO_EXCLUSIVEADDRUSE on Windows
1711eb6d21b4SOllivier Robert  Credit for finding this issue goes to Dave Hart.
1712eb6d21b4SOllivier Robert
1713eb6d21b4SOllivier RobertThis release fixes a number of bugs and adds some improvements:
1714eb6d21b4SOllivier Robert
1715eb6d21b4SOllivier Robert* Improved logging
1716eb6d21b4SOllivier Robert* Fix many compiler warnings
1717eb6d21b4SOllivier Robert* Many fixes and improvements for Windows
1718eb6d21b4SOllivier Robert* Adds support for AIX 6.1
1719eb6d21b4SOllivier Robert* Resolves some issues under MacOS X and Solaris
1720eb6d21b4SOllivier Robert
1721eb6d21b4SOllivier RobertTHIS IS A STRONGLY RECOMMENDED UPGRADE.
1722eb6d21b4SOllivier Robert
1723eb6d21b4SOllivier Robert---
1724eb6d21b4SOllivier RobertNTP 4.2.4p6 (Harlan Stenn <stenn@ntp.org>, 2009/01/07)
1725eb6d21b4SOllivier Robert
1726eb6d21b4SOllivier RobertFocus: Security Fix
1727eb6d21b4SOllivier Robert
1728eb6d21b4SOllivier RobertSeverity: Low
1729eb6d21b4SOllivier Robert
1730eb6d21b4SOllivier RobertThis release fixes oCERT.org's CVE-2009-0021, a vulnerability affecting
1731eb6d21b4SOllivier Robertthe OpenSSL library relating to the incorrect checking of the return
1732eb6d21b4SOllivier Robertvalue of EVP_VerifyFinal function.
1733eb6d21b4SOllivier Robert
1734eb6d21b4SOllivier RobertCredit for finding this issue goes to the Google Security Team for
1735eb6d21b4SOllivier Robertfinding the original issue with OpenSSL, and to ocert.org for finding
1736eb6d21b4SOllivier Robertthe problem in NTP and telling us about it.
1737eb6d21b4SOllivier Robert
1738eb6d21b4SOllivier RobertThis is a recommended upgrade.
1739eb6d21b4SOllivier Robert---
1740ea906c41SOllivier RobertNTP 4.2.4p5 (Harlan Stenn <stenn@ntp.org>, 2008/08/17)
1741ea906c41SOllivier Robert
1742ea906c41SOllivier RobertFocus: Minor Bugfixes
1743ea906c41SOllivier Robert
1744ea906c41SOllivier RobertThis release fixes a number of Windows-specific ntpd bugs and
1745ea906c41SOllivier Robertplatform-independent ntpdate bugs. A logging bugfix has been applied
1746ea906c41SOllivier Robertto the ONCORE driver.
1747ea906c41SOllivier Robert
1748ea906c41SOllivier RobertThe "dynamic" keyword and is now obsolete and deferred binding to local
1749ea906c41SOllivier Robertinterfaces is the new default. The minimum time restriction for the
1750ea906c41SOllivier Robertinterface update interval has been dropped.
1751ea906c41SOllivier Robert
1752ea906c41SOllivier RobertA number of minor build system and documentation fixes are included.
1753ea906c41SOllivier Robert
1754ea906c41SOllivier RobertThis is a recommended upgrade for Windows.
1755ea906c41SOllivier Robert
1756ea906c41SOllivier Robert---
1757ea906c41SOllivier RobertNTP 4.2.4p4 (Harlan Stenn <stenn@ntp.org>, 2007/09/10)
1758ea906c41SOllivier Robert
1759ea906c41SOllivier RobertFocus: Minor Bugfixes
1760ea906c41SOllivier Robert
1761ea906c41SOllivier RobertThis release updates certain copyright information, fixes several display
1762ea906c41SOllivier Robertbugs in ntpdc, avoids SIGIO interrupting malloc(), cleans up file descriptor
1763ea906c41SOllivier Robertshutdown in the parse refclock driver, removes some lint from the code,
1764ea906c41SOllivier Robertstops accessing certain buffers immediately after they were freed, fixes
1765ea906c41SOllivier Roberta problem with non-command-line specification of -6, and allows the loopback
1766ea906c41SOllivier Robertinterface to share addresses with other interfaces.
1767ea906c41SOllivier Robert
1768ea906c41SOllivier Robert---
1769ea906c41SOllivier RobertNTP 4.2.4p3 (Harlan Stenn <stenn@ntp.org>, 2007/06/29)
1770ea906c41SOllivier Robert
1771ea906c41SOllivier RobertFocus: Minor Bugfixes
1772ea906c41SOllivier Robert
1773ea906c41SOllivier RobertThis release fixes a bug in Windows that made it difficult to
1774ea906c41SOllivier Robertterminate ntpd under windows.
1775ea906c41SOllivier RobertThis is a recommended upgrade for Windows.
1776ea906c41SOllivier Robert
1777ea906c41SOllivier Robert---
1778ea906c41SOllivier RobertNTP 4.2.4p2 (Harlan Stenn <stenn@ntp.org>, 2007/06/19)
1779ea906c41SOllivier Robert
1780ea906c41SOllivier RobertFocus: Minor Bugfixes
1781ea906c41SOllivier Robert
1782ea906c41SOllivier RobertThis release fixes a multicast mode authentication problem,
1783ea906c41SOllivier Robertan error in NTP packet handling on Windows that could lead to
1784ea906c41SOllivier Robertntpd crashing, and several other minor bugs. Handling of
1785ea906c41SOllivier Robertmulticast interfaces and logging configuration were improved.
1786ea906c41SOllivier RobertThe required versions of autogen and libopts were incremented.
1787ea906c41SOllivier RobertThis is a recommended upgrade for Windows and multicast users.
1788ea906c41SOllivier Robert
1789ea906c41SOllivier Robert---
1790ea906c41SOllivier RobertNTP 4.2.4 (Harlan Stenn <stenn@ntp.org>, 2006/12/31)
1791ea906c41SOllivier Robert
1792ea906c41SOllivier RobertFocus: enhancements and bug fixes.
1793ea906c41SOllivier Robert
1794ea906c41SOllivier RobertDynamic interface rescanning was added to simplify the use of ntpd in
1795ea906c41SOllivier Robertconjunction with DHCP. GNU AutoGen is used for its command-line options
1796ea906c41SOllivier Robertprocessing. Separate PPS devices are supported for PARSE refclocks, MD5
1797ea906c41SOllivier Robertsignatures are now provided for the release files. Drivers have been
1798ea906c41SOllivier Robertadded for some new ref-clocks and have been removed for some older
1799ea906c41SOllivier Robertref-clocks. This release also includes other improvements, documentation
1800ea906c41SOllivier Robertand bug fixes.
1801ea906c41SOllivier Robert
1802ea906c41SOllivier RobertK&R C is no longer supported as of NTP-4.2.4. We are now aiming for ANSI
1803ea906c41SOllivier RobertC support.
1804ea906c41SOllivier Robert
1805ea906c41SOllivier Robert---
1806ea906c41SOllivier RobertNTP 4.2.0 (Harlan Stenn <stenn@ntp.org>, 2003/10/15)
1807ea906c41SOllivier Robert
1808ea906c41SOllivier RobertFocus: enhancements and bug fixes.
1809