POPS: From History to Mitigation of DNS Cache Poisoning Attacks
Yehuda Afek
34th USENIX Security Symposium (USENIX Security '25) · Day 2 · Network Security 2: Routing and DoS
Overview
The internet's foundational Domain Name System (DNS) remains a critical yet vulnerable component, with DNS cache poisoning attacks posing a persistent threat to user security. This talk introduces POPS, a novel and highly effective method for detecting and mitigating a broad spectrum of these attacks. Presented by Yehuda Afek, a joint effort with Ariel Ber from Ariel University and Professor Anad Bremler from Tel Aviv University, POPS offers a significant advancement in defending against these pervasive threats. The presentation highlights that despite numerous CVEs and decades of research, new DNS poisoning vectors continue to emerge, with a recent attack reported in SP 2024 underscoring the ongoing danger.

Key moments
- 0:00 Introduction to POPS and DNS cache poisoning problem
- 1:00 Overview of the standard DNS request process
- 2:00 Detailed explanation of a standard DNS poisoning attack
- 3:00 POPS detection and mitigation for statistical attacks
- 5:50 Understanding DNS fragmentation poisoning attacks
- 7:50 POPS detection and mitigation for fragmentation attacks
- 9:30 Introduction to Out-of-Bailiwick DNS poisoning
POPS: From History to Mitigation of DNS Cache Poisoning Attacks
Speakers: Yehuda Afek, Ariel Ber, Anad Bremler
Conference: USENIX Security
YouTube: https://www.youtube.com/watch?v=3ITvV3lch5Q
Overview
The internet's foundational Domain Name System (DNS) remains a critical yet vulnerable component, with DNS cache poisoning attacks posing a persistent threat to user security. This talk introduces POPS, a novel and highly effective method for detecting and mitigating a broad spectrum of these attacks. Presented by Yehuda Afek, a joint effort with Ariel Ber from Ariel University and Professor Anad Bremler from Tel Aviv University, POPS offers a significant advancement in defending against these pervasive threats. The presentation highlights that despite numerous CVEs and decades of research, new DNS poisoning vectors continue to emerge, with a recent attack reported in SP 2024 underscoring the ongoing danger.
POPS distinguishes itself by providing a fast and efficient detection and mitigation framework that boasts zero false negatives for all statistical DNS poisoning attacks, alongside a negligible amount of false positives. The system is designed to counter standard statistical attacks, sophisticated fragmentation attacks, and the often-overlooked out-of-bailiwick poisoning attempts. By focusing on fundamental DNS protocol behaviors and leveraging TCP for secure resolution, POPS offers a robust defense that aims to catch nearly 100% of these attacks, thereby protecting users from malicious redirects to phishing sites and other cyber threats.
The significance of POPS lies in its comprehensive coverage and practical implementation. Unlike passive intrusion detection systems, POPS actively mitigates attacks by forcing suspicious DNS queries to be re-resolved over a secure TCP connection, effectively neutralizing the attacker's ability to spoof responses. This proactive approach ensures that legitimate DNS resolutions are always completed securely, even when under active attack, safeguarding critical online activities such as banking and e-commerce.
Background
▶ Watch: Introduction to POPS and DNS cache poisoning problem (0:00)
The Domain Name System (DNS) is often referred to as the "phonebook of the internet," translating human-readable domain names (like bank.com) into machine-readable IP addresses (like 192.0.2.1). This process typically involves a client sending a request to a recursive resolver, which then queries an authoritative server for the requested domain's IP address. Once resolved, the IP address is returned to the client, allowing it to connect to the intended service. To improve efficiency, recursive resolvers cache these mappings for a period, reducing the need for repeated queries to authoritative servers.
DNS cache poisoning exploits this caching mechanism. An attacker aims to inject malicious or incorrect DNS records into a recursive resolver's cache, causing subsequent legitimate queries for a specific domain to resolve to an attacker-controlled IP address. This can lead users to phishing websites, malware distribution sites, or other malicious destinations, severely compromising their security and privacy. The core vulnerability often lies in the stateless nature of UDP, the primary transport protocol for DNS queries, which makes it relatively easy to spoof source IP addresses.
Historically, DNS cache poisoning has been a persistent and evolving threat. Early attacks, notably the Kaminsky attack in 2008, highlighted fundamental weaknesses in DNS implementations, primarily the predictability of the 16-bit Transaction ID (TXID) used to match queries to responses, and the UDP source port. Attackers would flood resolvers with forged responses, attempting to guess the correct TXID and port combination before the legitimate authoritative server could respond. The discovery of these vulnerabilities led to widespread patching and the implementation of source port randomization, significantly raising the bar for attackers but not eliminating the threat entirely.
Over the past two decades, numerous CVEs have been issued related to DNS cache poisoning, indicating a continuous cat-and-mouse game between attackers and defenders. These vulnerabilities have ranged from weaknesses in specific resolver implementations to more complex attacks leveraging DNS fragmentation or exploiting misconfigurations in glue records. The speaker explicitly notes that a new attack surfaced and was reported as recently as SP 2024, demonstrating that the problem remains active and dangerous. POPS is designed to address the current landscape of these attacks, building upon the lessons learned from this extensive history of DNS security challenges.
Key Findings
▶ Watch: Detailed explanation of a standard DNS poisoning attack (2:00)
The POPS system presents several key findings and contributions that significantly advance the state of DNS cache poisoning mitigation. Foremost among these is its ability to provide fast and efficient detection and mitigation for all major categories of statistical DNS poisoning attacks. This includes standard transaction ID/port guessing attacks, sophisticated fragmentation attacks, and the often-misunderstood out-of-bailiwick poisoning.
A critical achievement of POPS is its commitment to zero false negatives for all statistical DNS poisoning attacks. This means that no actual poisoning attempt will be missed by the system. Furthermore, for standard statistical attacks, it achieves a negligible amount of false positives, ensuring that legitimate DNS traffic is not unduly disrupted. Even in scenarios where a legitimate response might be temporarily flagged (e.g., due to "stuttering"), the mitigation mechanism ensures correct resolution, ultimately resulting in zero false negatives overall. For fragmentation and out-of-bailiwick attacks, POPS also achieves 100% detection and, through its mitigation strategy, zero false negatives and zero false positives in the final resolution.
POPS leverages specific, simple rules derived from observed attacker behaviors to achieve its high detection rates. For instance, it identifies statistical attacks by detecting more than five responses for the same domain within a short timeframe (e.g., 10 seconds). It explicitly blocks all UDP packets labeled as fragments and all out-of-bailiwick glue records. These precise rules allow for highly targeted and effective detection.
The core of POPS's mitigation strategy relies on forcing recursive resolvers to re-query over TCP by flipping the TC (Truncation Control) bit in a spoofed response. This is a standard DNS protocol mechanism that most recursive resolvers (estimated at over 97%) obey. TCP, with its inherent three-way handshake, provides strong authentication and integrity, making it virtually impossible for an attacker to spoof a response. This proactive mitigation transforms a potentially poisoned UDP query into a secure TCP exchange.
Finally, POPS demonstrates comprehensive coverage against historical and contemporary threats. The speaker asserts that the system detects and mitigates all DNS poisoning attacks reported in CVEs over the last 20 years, up to the recent SP 2024 attack. This broad applicability, combined with its superior performance compared to traditional passive Intrusion Detection Systems (IDSs) like Suricata and Snort, positions POPS as a robust and essential tool in the ongoing fight against DNS cache poisoning.
Technical Deep Dive
▶ Watch: POPS detection and mitigation for statistical attacks (3:00)
The POPS system is engineered to counter specific attack vectors by leveraging a deep understanding of DNS protocol behaviors and vulnerabilities. Its technical approach is segmented across three primary categories of DNS cache poisoning attacks: standard statistical attacks, fragmentation attacks, and out-of-bailiwick attacks.
Standard Statistical DNS Cache Poisoning Attacks
The fundamental DNS resolution process begins when a client requests the IP address for a domain, say bank.com, from its recursive resolver. The resolver, in turn, queries the authoritative server for bank.com. Attackers exploit this by knowing a query for bank.com is in progress and quickly flooding the resolver with forged responses. These fake responses spoof the authoritative server's IP address and contain an incorrect IP address for bank.com, aiming to redirect the client to a malicious site.
The challenge for attackers lies in correctly guessing two critical parameters: the 16-bit Transaction ID (TXID), which matches a query to its response, and the UDP source port used by the resolver. While attackers have developed techniques to guess one of these parameters, guessing both simultaneously is statistically difficult. Therefore, they resort to sending a large number of spoofed packets—often thousands, attempting to hit the correct combination out of 65,536 possible TXIDs and 65,536 possible ports.
POPS detects these statistical attacks by monitoring incoming DNS responses. If more than five responses for the same domain arrive within a short period (e.g., 10 seconds), the system flags this as a potential poisoning attempt. To efficiently track these repetitions, POPS utilizes a count-min sketch, a probabilistic data structure that can estimate frequencies of elements in a data stream with limited memory, making it ideal for high-volume DNS traffic.
Upon detection, POPS initiates a proactive mitigation. It sends a spoofed response back to the recursive resolver, mimicking the authoritative server, but with the TC (Truncation Control) bit flipped on. This is a standard mechanism in the DNS protocol, indicating that the response is truncated and the full information should be retrieved via TCP. Nearly all recursive resolvers globally (estimated at over 97%) are programmed to obey this directive. When the resolver receives this TC-bit-flagged response, it re-issues the original query, but this time over TCP. A TCP connection involves a three-way handshake that authenticates the communicating parties, making it impossible for an attacker to spoof the authoritative server's identity or inject malicious responses. Only the legitimate authoritative server can complete the TCP handshake and provide the correct IP address, ensuring the client reaches the intended bank.com website safely.
This approach yields zero false negatives for statistical attacks, as any legitimate response that might "stutter" and trigger the detection threshold will still be correctly resolved via the TCP mitigation path. The number of false positives is negligible because successful attacks requiring five or more attempts within a short window are rare for legitimate traffic, with a success chance of less than one per mille.
Fragmentation Attacks
DNS responses, especially those containing multiple records or large DNSSEC records, can sometimes exceed the standard UDP packet size limit (typically 512 bytes for legacy reasons, though often larger with EDNS0). When this occurs, the authoritative server may send the response in fragments. Each fragment carries a 16-bit identification number to allow the recursive resolver to reassemble the complete response.
Attackers exploit fragmentation by attempting to spoof one of these fragments, typically the second one. They aim to guess the 16-bit identification number used by the authoritative server. If successful, when the first legitimate fragment arrives, the resolver will combine it with the attacker's spoofed second fragment, leading to a complete, but poisoned, DNS response being cached and delivered to the client.
POPS addresses fragmentation attacks with a straightforward yet highly effective rule: any UDP packet labeled as a fragment is immediately blocked. This blanket policy prevents any attacker-controlled fragment from ever reaching the recursive resolver's reassembly engine. While this detection strategy results in 100% false negatives at the detection stage (as it blocks legitimate fragments too), the subsequent mitigation process ensures overall accuracy. Similar to statistical attacks, POPS then sends a TC-bit-flagged response to the recursive resolver, compelling it to re-query over TCP. Since TCP connections handle larger data streams without fragmentation and provide inherent authentication, the full, legitimate response is securely delivered, resulting in zero false negatives and zero false positives for fragmentation attacks in the final outcome.
Out-of-Bailiwick Attacks
Out-of-bailiwick attacks leverage a specific behavior related to glue records in DNS. A glue record is an IP address provided by a parent zone (e.g., .com) for a name server that is itself within the child zone (e.g., ns1.example.com for example.com). This is necessary so the parent zone can point to the child's name server without creating a circular dependency.
In a legitimate scenario, an authoritative server for far.com might provide a response that includes an additional record (a glue record) for ns1.bank.com with its IP address. If bank.com is within the same top-level domain (.com), the recursive resolver typically trusts this information.
In an out-of-bailiwick attack, the attacker spoofs an authoritative server's response for a domain like far.com. Within this response, they embed a malicious glue record for ns1.bank.com, but crucially, bank.com is declared to be in a different top-level domain (e.g., .net) than the original query's domain (.com). This means the glue record is "out of bailiwick" – outside the jurisdiction of the .com domain. While robust resolvers should ignore such out-of-bailiwick glue records, the speaker notes that "quite a few" resolvers do not obey this rule and will incorrectly cache the malicious IP address for ns1.bank.com. Subsequently, when a client queries bank.com, the resolver consults the poisoned cache, directs the query to the attacker's malicious name server, and ultimately delivers a fake IP address for bank.com to the client.
POPS detects and mitigates out-of-bailiwick attacks by strictly enforcing the bailiwick rule. Its software checks whether the domain being resolved and the domain specified in any glue record are within the same jurisdiction (i.e., the same top-level domain). If they are not, the response containing the out-of-bailiwick glue record is immediately ignored and blocked. This direct blocking mechanism prevents the malicious glue record from ever being cached, effectively neutralizing this attack vector with 100% success and zero false negatives.
In summary, POPS employs a multi-faceted technical strategy: statistical analysis with count-min sketch for repetitive attacks, aggressive blocking of all fragments, and strict enforcement of bailiwick rules for glue records. The common thread for statistical and fragmentation attacks is the use of the TC bit to force secure TCP resolution, ensuring that even initial detection inaccuracies are rectified by a robust mitigation process.
Demo / Proof of Concept
▶ Watch: POPS detection and mitigation for fragmentation attacks (7:50)
While the presentation extensively details the mechanisms of various DNS poisoning attacks and POPS's detection and mitigation strategies, it does not explicitly describe a live, real-time demonstration or a dedicated proof-of-concept setup during the talk itself. The speaker refers to "our software checks" and "our system detects," implying the existence of an implemented system. However, the talk focuses on the theoretical and practical efficacy of the POPS methodology, outlining how it functions at a protocol level and its performance metrics. The speaker mentions that further details, including records, are available on their lab website and Zenodo, suggesting that the implementation and validation are well-documented in associated research papers.
Defensive Implications
▶ Watch: Introduction to Out-of-Bailiwick DNS poisoning (9:30)
The POPS system offers profound implications for network defenders, providing a proactive and highly effective shield against a persistent and dangerous class of cyberattacks. Its capabilities translate into several actionable insights and recommendations for improving DNS security.
Firstly, POPS provides a robust, active mitigation strategy rather than just passive detection. Traditional Intrusion Detection Systems (IDSs) like Suricata and Snort are valuable tools for identifying suspicious traffic patterns. However, as the speaker highlights, they are primarily passive; they alert defenders to an attack but do not prevent it from succeeding. Furthermore, these IDSs often aggregate data based on IP packet fields, making it challenging for them to correlate multiple spoofed responses to the same domain name efficiently, which is crucial for detecting statistical poisoning. POPS, by contrast, aggregates on the domain name using mechanisms like the count-min sketch, allowing for much faster detection and, critically, immediate mitigation. This shift from "detect and alert" to "detect and prevent" is a significant advantage for defenders.
Secondly, the reliance on the TC bit and subsequent TCP resolution is a powerful defensive primitive. Defenders should ensure that their recursive resolvers are configured to strictly obey the TC bit and initiate TCP queries when prompted. While the speaker notes that "nearly all" resolvers (less than 3% don't, representing a negligible amount of DNS traffic) adhere to this, it's a critical configuration to verify. For organizations operating their own resolvers or managing large networks, auditing resolver behavior to confirm TC bit compliance is an essential step to leverage POPS's full mitigation potential.
Thirdly, the specific rules employed by POPS – blocking all UDP fragments and enforcing strict bailiwick checks for glue records – are strong defensive postures. While POPS implements these automatically, network architects could consider similar filtering rules at the network edge where appropriate, though the beauty of POPS is its ability to operate closer to the resolver. The explicit blocking of all fragments, though initially leading to 100% false negatives at the detection stage, is a pragmatic and effective security-first approach, knowing that TCP will reliably deliver the correct, unfragmented response.
Furthermore, POPS's architecture allows its mitigation component to be integrated with other detection methods. This means organizations with existing sophisticated detection systems could potentially layer POPS's zero false negative/positive mitigation capabilities on top, creating a highly resilient DNS infrastructure. This modularity enhances the overall quality of DNS security by providing a robust fallback mechanism for any suspicious activity.
Finally, the talk underscores the continuous evolution of DNS threats. The fact that POPS covers all CVEs related to DNS poisoning over the last two decades, including new attacks reported in SP 2024, implies that organizations should view DNS security as an ongoing challenge requiring dynamic solutions. Implementing systems like POPS, or adopting its principles, is crucial for staying ahead of attackers who constantly seek new ways to exploit this fundamental internet service.
Key Takeaways
- Comprehensive DNS Poisoning Defense: POPS effectively detects and mitigates standard statistical, fragmentation, and out-of-bailiwick DNS cache poisoning attacks.
- Zero False Negatives for All Covered Attacks: Through its detection logic and robust TCP-based mitigation, POPS guarantees that no actual poisoning attempt will succeed in delivering a malicious response to the client.
- Proactive TCP Mitigation: The core mitigation strategy involves flipping the TC bit to force recursive resolvers to re-query over authenticated TCP, neutralizing UDP-based spoofing attempts.
- Superior to Passive IDSs: POPS offers active mitigation and faster, domain-name-aware detection compared to traditional passive IDSs like Suricata and Snort, which struggle with domain-level aggregation.
- Broad CVE Coverage: The system addresses and protects against all major DNS poisoning CVEs identified over the last 20 years, including recently reported attacks.
- Critical Resolver Compliance: The effectiveness of POPS's TCP mitigation relies on recursive resolvers obeying the TC bit, a behavior observed in over 97% of resolvers.
About the Speaker(s)
The talk was presented by Yehuda Afek, whose affiliation or title was not explicitly stated in the transcript beyond being the presenter. He delivered the research as a joint effort with Ariel Ber from Ariel University and Professor Anad Bremler from Tel Aviv University. Their collective work focuses on developing robust and efficient solutions for critical network security challenges, particularly in the realm of DNS. The presentation highlights their expertise in network protocols, security vulnerabilities, and the design of advanced mitigation strategies to safeguard internet infrastructure.
Reviews
Dr. Zero (Offensive Security Researcher) — SOLID
Legitimate academic DNS security research with a coherent threat model and a technically sound mitigation strategy. POPS isn't groundbreaking, but it's honest work — the TC-bit forcing trick is clever reuse of protocol semantics, and the unified coverage across three attack classes is a real contribution. It won't make DEF CON's greatest hits, but it belongs at USENIX.
Heather Calloway (CISO) — WEAK
Solid protocol-level research with a clever mitigation mechanism, but this talk lives almost entirely inside the DNS stack. It delivers no governance signal, no institutional accountability framing, and no path for a security leader to act on what they just heard.
→ Top-rated talks at 34th USENIX Security Symposium (USENIX Security '25)
All talks from 34th USENIX Security Symposium (USENIX Security '25)