[git commit] ntpd: respond only to client and symmetric active packets
Denys Vlasenko
vda.linux at googlemail.com
Mon Aug 1 18:25:06 UTC 2016
commit: https://git.busybox.net/busybox/commit/?id=150dc7a2b483b8338a3e185c478b4b23ee884e71
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
The busybox NTP implementation doesn't check the NTP mode of packets
received on the server port and responds to any packet with the right
size. This includes responses from another NTP server. An attacker can
send a packet with a spoofed source address in order to create an
infinite loop of responses between two busybox NTP servers. Adding
more packets to the loop increases the traffic between the servers
until one of them has a fully loaded CPU and/or network.
Signed-off-by: Miroslav Lichvar <mlichvar at redhat.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
networking/ntpd.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 130cef0..8ca62cf 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -2051,6 +2051,13 @@ recv_and_process_client_pkt(void /*int fd*/)
goto bail;
}
+ /* Respond only to client and symmetric active packets */
+ if ((msg.m_status & MODE_MASK) != MODE_CLIENT
+ && (msg.m_status & MODE_MASK) != MODE_SYM_ACT
+ ) {
+ goto bail;
+ }
+
query_status = msg.m_status;
query_xmttime = msg.m_xmttime;
More information about the busybox-cvs
mailing list