mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 18:45:07 -05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4bedce1f4 | ||
|
|
79eacdb7e6 | ||
|
|
cf19042ecb | ||
|
|
d856bd34c4 |
10
NEWS
10
NEWS
@@ -1,3 +1,13 @@
|
|||||||
|
New in version 1.31.1
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Security fixes
|
||||||
|
--------------
|
||||||
|
* Protect authenticated symmetric NTP associations against DoS attacks
|
||||||
|
(CVE-2015-1799)
|
||||||
|
* Fix access configuration with subnet size indivisible by 4 (CVE-2015-1821)
|
||||||
|
* Fix initialization of reply slots for authenticated commands (CVE-2015-1822)
|
||||||
|
|
||||||
New in version 1.31
|
New in version 1.31
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
|||||||
@@ -199,7 +199,10 @@ set_subnet(TableNode *start_node,
|
|||||||
|
|
||||||
/* How many subnet entries to set : 1->8, 2->4, 3->2 */
|
/* How many subnet entries to set : 1->8, 2->4, 3->2 */
|
||||||
N = 1 << (NBITS-bits_to_go);
|
N = 1 << (NBITS-bits_to_go);
|
||||||
subnet = get_subnet(ip, bits_consumed);
|
|
||||||
|
subnet = get_subnet(ip, bits_consumed) & ~(N - 1);
|
||||||
|
assert(subnet + N <= TABLE_SIZE);
|
||||||
|
|
||||||
if (!(node->extended)) {
|
if (!(node->extended)) {
|
||||||
open_node(node);
|
open_node(node);
|
||||||
}
|
}
|
||||||
|
|||||||
1
cmdmon.c
1
cmdmon.c
@@ -566,6 +566,7 @@ get_more_replies(void)
|
|||||||
for (i=1; i<REPLY_EXTEND_QUANTUM; i++) {
|
for (i=1; i<REPLY_EXTEND_QUANTUM; i++) {
|
||||||
new_replies[i-1].next = new_replies + i;
|
new_replies[i-1].next = new_replies + i;
|
||||||
}
|
}
|
||||||
|
new_replies[REPLY_EXTEND_QUANTUM - 1].next = NULL;
|
||||||
free_replies = new_replies;
|
free_replies = new_replies;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
19
ntp_core.c
19
ntp_core.c
@@ -1005,9 +1005,6 @@ receive_packet(NTP_Packet *message, struct timeval *now, double now_err, NCR_Ins
|
|||||||
|
|
||||||
/* ==================== */
|
/* ==================== */
|
||||||
|
|
||||||
/* Save local receive timestamp */
|
|
||||||
inst->local_rx = *now;
|
|
||||||
|
|
||||||
pkt_leap = (message->lvm >> 6) & 0x3;
|
pkt_leap = (message->lvm >> 6) & 0x3;
|
||||||
if (pkt_leap == 0x3) {
|
if (pkt_leap == 0x3) {
|
||||||
source_is_synchronized = 0;
|
source_is_synchronized = 0;
|
||||||
@@ -1039,14 +1036,6 @@ receive_packet(NTP_Packet *message, struct timeval *now, double now_err, NCR_Ins
|
|||||||
test2 = 1; /* Success */
|
test2 = 1; /* Success */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Regardless of any validity checks we apply, we are required to
|
|
||||||
save this field from the packet into the ntp source
|
|
||||||
instance record. See RFC1305 section 3.4.4, peer.org <- pkt.xmt
|
|
||||||
& peer.peerpoll <- pkt.poll. Note we can't do this assignment
|
|
||||||
before test1 has been carried out!! */
|
|
||||||
|
|
||||||
inst->remote_orig = message->transmit_ts;
|
|
||||||
|
|
||||||
/* Test 3 requires that pkt.org != 0 and pkt.rec != 0. If
|
/* Test 3 requires that pkt.org != 0 and pkt.rec != 0. If
|
||||||
either of these are true it means the association is not properly
|
either of these are true it means the association is not properly
|
||||||
'up'. */
|
'up'. */
|
||||||
@@ -1219,6 +1208,14 @@ receive_packet(NTP_Packet *message, struct timeval *now, double now_err, NCR_Ins
|
|||||||
kod_rate = 1;
|
kod_rate = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The transmit timestamp and local receive timestamp must not be saved when
|
||||||
|
the authentication test failed to prevent denial-of-service attacks on
|
||||||
|
symmetric associations using authentication */
|
||||||
|
if (test5) {
|
||||||
|
inst->remote_orig = message->transmit_ts;
|
||||||
|
inst->local_rx = *now;
|
||||||
|
}
|
||||||
|
|
||||||
valid_kod = test1 && test2 && test5;
|
valid_kod = test1 && test2 && test5;
|
||||||
|
|
||||||
valid_data = test1 && test2 && test3 && test4 && test4a && test4b;
|
valid_data = test1 && test2 && test3 && test4 && test4a && test4b;
|
||||||
|
|||||||
Reference in New Issue
Block a user