Summary
- Sharon Goldberg, Aanchal Malhotra, Isaac E. Cohen and Erik Brakke showed that older
ntpdclients accepted a forged Kiss-o'-Death reply without verifying that its origin timestamp matched their request. - One spoofed packet per configured server could stop synchronization for an attacker-selected interval; the durable repair combined request binding with a cap on how long any negative signal may command a client to retreat.
In most network attacks, scale is part of the story: more packets, more sources, more pressure. The NTP failure examined in 2015 by Aanchal Malhotra, Isaac E. Cohen, Erik Brakke and Sharon Goldberg inverted that intuition. The attacker did not have to overwhelm a time server or keep a flood running. A small control reply could persuade a client to do the denial work itself.
The reply was a Kiss-o'-Death packet, usually shortened to KoD. NTP servers use such messages to protect themselves. A server that sees an abusive request rate can send the code RATE; other codes, including DENY and RSTR, refuse service. The mechanism is reasonable. A shared server must be able to tell an over-eager client to slow down or leave.
The vulnerability lay in the authority granted to that instruction. In the ntpd releases the team tested, a client could accept a KoD whose origin timestamp did not match any request it had sent. It would then obey a polling value chosen by the apparent sender. A safety valve for the server had become an unauthenticated remote control for the client.
The nonce was already in the packet
An ordinary NTP exchange has a useful piece of state. The client sends a mode-3 request containing a transmit timestamp. A mode-4 response echoes that value in its origin-timestamp field. NTP's TEST2 check compares the echo with the outstanding request, much as a nonce binds an answer to the question that produced it.
The old KoD path did not enforce that check. The packet still had the shape of a server reply—mode 4, leap indicator 3, stratum 0, with a four-character kiss code in the reference-ID field—but the client did not require proof that this particular reply belonged to its particular request. An off-path attacker who could spoof a server's IP address did not need to observe the exchange or guess its timestamp.
That omission changed the meaning of “back off.” The poll field represents an interval as a power of two. A value of 17 asks for at least 2^17 seconds between requests, about 36 hours. The researchers found that clients would accept values above the range contemplated by the specification. A value of 25 corresponds to roughly a year. The packet was momentary; the state it installed could be durable.
The semantic problem was deeper than a missing comparison. A negative control message was allowed to affect future behavior without three independent restraints: evidence that it answered a request, assurance about who sent it, and a reasonable upper bound on its effect. Any one of those controls changes the attacker's job. Together they decide whether politeness remains a server defense or becomes a denial primitive.
One packet for each source of truth
The attacker needed the victim's address and an NTP server the victim used. The paper described a practical way to learn the active server. Send the client an NTP mode-3 query and inspect its mode-4 response: for a synchronized IPv4 client, the reference ID could reveal the current server's address.
The attacker could then forge a KoD that appeared to come from that server. If the client moved to another server in its configuration, the process could be repeated. The decisive unit was not packets per second but one accepted instruction per source of time. Remove each configured source and the client had nobody left to ask.
In the team's laboratory experiment, ntpd 4.2.8p2 used three public servers. The researchers elicited the third KoD within about ninety minutes. After they stopped the experiment, the client remained quiet for the next fifty hours; the forged instruction had requested a minimum silence of about thirty-six.
Periodic KoDs could preserve the outage indefinitely, but the first round already shows the asymmetry. A receiver performed the long-running action after a sender paid a one-packet cost. Rate controls are often designed around the opposite threat model—protecting a service from callers who keep transmitting. Here, the rate-control response itself was the scarce, high-authority event.
The Internet scan in the 2015 study suggested that more than 13 million IPv4 addresses answered the kind of query needed for the first step. That number belongs to the measurement conditions of 2015. It is not a count of current vulnerable devices, and a response was only one prerequisite: the target also had to react to KoD and expose a synchronized IPv4 server.
Silence is not the same as a false time
The direct KoD attack did not write an arbitrary timestamp into the victim's clock. It stopped the stream of corrections. The client then free-ran on its local clock, and the consequence depended on how that clock behaved.
A stable physical machine might drift slowly. A virtual machine or a CPU-intensive system could fare worse. Authentication systems, logs, distributed databases, certificate checks and scheduled work can all depend on time, but their sensitivity differs. The honest claim is therefore narrower and stronger: the attacker could remove external correction for a long interval. What followed was a property of the victim and its dependencies, not a deterministic promise made by the packet.
This boundary matters because denial and manipulation demand different evidence. If an incident report observes clock error after synchronization ceased, it should preserve the last successful sample, the KoD state, the local oscillator behavior and the systems that consumed the time. Otherwise the silence between cause and consequence is easily filled with more certainty than the protocol provides.
The repair raised the price of saying no
The NTP Project's notice for Bug 2901 identifies releases before 4.2.8p4 as affected by the direct spoofing vector. Version 4.2.8p4 added origin-timestamp validation. A KoD now had to echo a value from a real request before the client would act on it.
That check did not cryptographically authenticate a server. It did, however, remove the attacker's ability to invent a valid off-path reply at negligible cost. The paper explored a residual “priming pump” route: spoof enough requests from the victim's address toward the real server, make that server rate-limit the victim, and let it generate a KoD with a valid echo. This required more work and typically produced a shorter retreat, such as poll 10—about fifteen minutes—rather than an arbitrary year.
Later operational guidance completed the lesson. RFC 8633 requires a valid origin timestamp before accepting a KoD and says a client should impose a reasonable maximum RATE interval, never above poll 13, or two hours. It also warns that one request carrying an abnormally large poll value may itself be evidence of attack.
Binding answers to requests raises the cost of fabrication. Bounding the response's effect limits the damage even when the answer is genuine. Observing implausible commands turns silent compliance into a detectable event. None is a substitute for cryptographic peer authentication, but each remains valuable where authentication is absent, partial or misconfigured.
Goldberg's method kept protocol and deployment together
Goldberg's Boston University profile describes research that joins cryptography and algorithms with measurement, modeling and simulation. The NTP study used that combination. The packet format showed what a client was supposed to verify; implementation tests showed what two widely used ntpd branches actually accepted; a controlled experiment showed the installed state; scanning estimated the exposed preconditions; disclosure and patches tested whether the finding could be turned into safer practice.
The credit is collective. Malhotra, Cohen, Brakke and Goldberg authored the work, and the public project record says responsible disclosure began on 20 August 2015. The Network Time Foundation, NTPsec, Cisco and Red Hat issued patches before public release on 21 October. The point of profiling Goldberg here is not to collapse a team into one name. It is to see the research posture she helped lead: treat a standards sentence, an implementation branch and an Internet population as different layers of evidence.
The broader control question is now easy to state. When a system receives retry later, stop, deny, quarantine or unsubscribe, what binds that instruction to a request and a peer? Who chooses the duration? What is the maximum? What remains visible while the receiver obeys?
A negative message is not merely an error. It is a command over future behavior. The 2015 KoD attack became powerful because the command was cheap to forge and expensive for the receiver to outlive. Good control design reverses that bargain: prove the context, limit the retreat, and leave enough telemetry for an operator to know that the clock has stopped asking.
Sources
- Malhotra, Cohen, Brakke and Goldberg — Attacking the Network Time Protocol
- Sharon Goldberg research group — Attacking NTP
- RFC 5905 — Network Time Protocol Version 4
- RFC 8633 — Network Time Protocol Best Current Practices
- NTP Project — Bug 2901 security notice
- Boston University Computer Science — Sharon Goldberg
- BU Today — Could Hackers Change the Time?
Member Briefing
Deeper Profile Context
Sign in with the right membership level to unlock the full briefing and source notes.
Only for Strategic Circle
Strategic Circle
Open to all readers. Unlock profile briefings after joining and signing in.
Join Strategic CircleOnly for Leadership Alliance
Leadership Alliance
For qualified IP-asset owners and management; sign in to unlock alliance briefings.
Join Leadership Alliance
