NTP BUG 2948: Potential Infinite Loop in ntpq
Last update: April 22, 2024 18:49 UTC (7e7bd5857)
Summary
Description
ntpq
processes incoming packets in a loop in getresponse()
. The loop’s only stopping conditions are receiving a complete and correct response or hitting a small number of error conditions. If the packet contains incorrect values that don’t trigger one of the error conditions, the loop continues to receive new packets.
Note well, this is an attack against an instance of ntpq
, not ntpd
, and this attack requires the attacker to do one of the following:
- Own a malicious NTP server that the client trusts.
- Prevent a legitimate NTP server from sending packets to the
ntpq
client.
- MITM the
ntpq
communications between the ntpq
client and the NTP server.
Mitigation
Credit
This weakness was discovered by Jonathan Gardner of Cisco ASIG.
Timeline