Crashing the Party: Vulnerabilities in RPKI Validation
Unknown
Black Hat USA 2024 · Day 1 · Briefing
Overview
This talk, titled "Crashing the Party: Vulnerabilities in RPKI Validation," delves into the critical but often overlooked security posture of the Resource Public Key Infrastructure (RPKI) protocol toolset. Presented by a team whose names are not specified in the provided materials, the research highlights significant security flaws discovered within various RPKI validation software implementations. The speakers regrettably "do not come bearing good news," indicating that the foundational components designed to secure global internet routing are themselves susceptible to attack.

Key moments
- 0:00 Introduction to RPKI security analysis
- 0:50 Understanding BGP's inherent security vulnerabilities
- 1:25 RPKI's role in securing BGP routing
- 2:00 Rapid and widespread adoption of RPKI
- 2:50 Overview of RPKI repository infrastructure
- 3:30 ROAs: Cryptographically verifiable routing data
- 4:00 Relying Party: Offloading RPKI validation from routers
Crashing the Party: Vulnerabilities in RPKI Validation
Speakers: Unknown, Unknown, Unknown
Conference: Black Hat USA
YouTube: https://www.youtube.com/watch?v=mHbCFefRbU0
Overview
This talk, titled "Crashing the Party: Vulnerabilities in RPKI Validation," delves into the critical but often overlooked security posture of the Resource Public Key Infrastructure (RPKI) protocol toolset. Presented by a team whose names are not specified in the provided materials, the research highlights significant security flaws discovered within various RPKI validation software implementations. The speakers regrettably "do not come bearing good news," indicating that the foundational components designed to secure global internet routing are themselves susceptible to attack.
The importance of this research cannot be overstated. RPKI is the leading solution for mitigating severe vulnerabilities in the Border Gateway Protocol (BGP), the core inter-domain routing protocol that underpins the entire internet. With BGP notoriously lacking inherent security mechanisms due to its original design priorities in 1989, RPKI has seen widespread adoption by major Tier 1 providers, Internet Exchange Points (IXPs), and large enterprises. Its success is so profound that even the FCC recently recommended its use across the entire internet infrastructure in the United States. Exposing vulnerabilities in RPKI validation software, therefore, reveals a potential Achilles' heel in the very system intended to protect the internet from routing hijacks and leaks, carrying a "pretty hefty price tag" if exploited.
The talk outlines the methodologies developed to conduct a systematic security analysis of RPKI implementations, primarily focusing on fuzzing. This approach proved fruitful, revealing "two vulnerabilities which are quite easy to find and affect a lot of clients." These initial findings, primarily revolving around denial of service (DoS) conditions and crashes, underscored the necessity for deeper investigation and proactive security measures within the RPKI ecosystem. The research serves as a stark reminder that even protocols designed for security must have their implementations rigorously tested to ensure they do not introduce new attack vectors.
Background
▶ Watch: Introduction to RPKI security analysis (0:00)
The internet's resilience hinges on the Border Gateway Protocol (BGP), the inter-domain routing protocol responsible for exchanging routing information between autonomous systems (ASes). Developed in 1989, BGP's original design prioritized efficiency and speed over security, a decision made during an era when the internet was a much smaller, more trusted network. This historical context has left BGP inherently vulnerable to various attacks, including route hijacking (where an attacker falsely claims ownership of an IP prefix) and BGP leaks (where routing information is accidentally or maliciously misconfigured and propagated). Such incidents can lead to widespread internet outages, traffic misdirection, and significant economic disruption.
To address these critical security gaps, the internet community has developed several protocols, with Resource Public Key Infrastructure (RPKI) emerging as the most widely adopted and promising solution. RPKI leverages a cryptographic framework to verify the origin of routing announcements. Its adoption has accelerated significantly over the past 15 years, particularly in recent years, with key players like major Tier 1 network providers, Internet Exchange Points (IXPs), and large companies integrating it into their infrastructure. The protocol's importance was further underscored by a recent recommendation from the FCC for its widespread use across all ISPs and broadband providers in the United States.
At its core, RPKI operates through a distributed infrastructure comprising RPKI repositories and relying party (RP) software. RPKI repositories store cryptographically verifiable data, organized in a tree-like hierarchy rooted at one of the five Regional Internet Registries (RIRs). The most crucial piece of data for BGP security within these repositories is the Route Origin Authorization (ROA). A ROA is a digitally signed object that explicitly states which Autonomous System (AS) is authorized to originate (announce) a specific IP prefix on the internet. It contains a tuple of the network prefix and the AS number permitted to make that announcement.
The relying party (RP) software acts as the engine of the RPKI infrastructure. Because routers typically lack the computational resources and software complexity to perform extensive cryptographic validation and data processing, these tasks are offloaded to RP software. The RP software is responsible for:
- Downloading data from RPKI repositories, which must be done frequently to keep up with changes and updates.
- Parsing multiple file types, including ROAs, manifests, and certificates.
- Performing cryptographic validation of all downloaded data to ensure its integrity and authenticity, verifying digital signatures and certificate chains.
- Consolidating all valid ROAs into a master file containing verified prefix-AS number tuples.
This master file is then sent to BGP routers. Armed with this validated information, routers become "smarter," capable of distinguishing between legitimate BGP announcements and potentially malicious route hijacks or accidental leaks. This process is fundamental to securing the internet's routing fabric, making the integrity and security of the RPKI validation software itself paramount. Any vulnerability in the RP software could undermine the entire security model RPKI aims to provide, effectively reintroducing the very risks it was designed to mitigate.
Key Findings
▶ Watch: RPKI's role in securing BGP routing (1:25)
The research presented in "Crashing the Party: Vulnerabilities in RPKI Validation" brought to light concerning security deficiencies within the RPKI validation ecosystem. The speakers explicitly stated, "we sadly do not come bearing good news," indicating that the software implementations designed to secure internet routing were found to be vulnerable.
A primary finding was the discovery of "two vulnerabilities which are quite easy to find and affect a lot of clients." While the specific technical nature of these vulnerabilities (e.g., buffer overflows, logic errors, incorrect cryptographic handling) was not detailed in the provided transcript, the speakers emphasized that these issues could lead to denial of service (DoS) conditions. For RPKI validation software, a crash or an unresponsive state is considered a sufficient outcome for a successful vulnerability exploitation. Such an event would prevent the relying party software from providing updated, validated routing information to BGP routers, effectively forcing routers to operate with outdated data or revert to less secure, unvalidated routing decisions.
The ease with which these vulnerabilities were discovered "sparked our interest," prompting the researchers to consider a more systemic and comprehensive analysis of RPKI implementations. This initial success, achieved with relatively straightforward methods, suggested that a dedicated, in-depth security audit would likely uncover further, potentially more severe, issues. The broad impact on "a lot of clients" underscores that these were not isolated bugs but rather systemic weaknesses present across multiple RPKI validation software packages, highlighting a collective challenge for the internet infrastructure community.
It is important to note that the transcript does not provide specific details regarding:
- The exact types of vulnerabilities found (e.g., specific CVE numbers, vulnerability classes).
- The names of the affected RPKI client software implementations.
- Detailed exploit steps or proof-of-concept demonstrations for these specific vulnerabilities.
Despite these omissions in the provided details, the core finding remains clear: RPKI validation software, a critical component of internet security, is susceptible to easily discoverable vulnerabilities that can lead to denial of service, compromising its ability to secure global routing.
Technical Deep Dive
▶ Watch: Rapid and widespread adoption of RPKI (2:00)
The speakers highlighted that their initial findings regarding RPKI validation vulnerabilities prompted them to consider a more systemic analysis of the implementations. For this, they "quickly landed on fuzzing as the most promising solution." Fuzzing is a highly effective automated software testing technique that involves feeding a program with large amounts of semi-random, malformed, or unexpected data inputs to uncover software bugs, crashes, or other vulnerabilities.
The choice of fuzzing was based on several key advantages:
- Ease of Setup: Fuzzing tools and frameworks are often designed for relatively straightforward configuration, allowing researchers to quickly begin testing.
- Broad Coverage: Fuzzing can test a multitude of code paths and functionalities, especially in complex parsing and validation logic, which are abundant in RPKI software.
- Scalability: It allows for testing a wide array of implementations concurrently, which is crucial given the diverse landscape of RPKI relying party software.
- Efficiency in Finding Crashes: For security-critical applications like RPKI validation, a crash or a denial of service (DoS) is a significant vulnerability. Fuzzing excels at detecting such issues by identifying inputs that cause abnormal program termination or resource exhaustion.
In the context of RPKI validation software, fuzzing targets the components responsible for processing external, potentially untrusted data. This includes:
- Certificate Parsing: RPKI relies heavily on X.509 certificates for establishing trust. Fuzzing certificate parsers involves feeding them malformed or excessively large certificate files to trigger vulnerabilities in certificate chain validation, signature verification, or basic structure parsing.
- ROA (Route Origin Authorization) File Parsing: ROAs are the core data objects. Fuzzing ROA parsers would involve manipulating the ROA file format, including invalid prefix lengths, AS numbers, or malformed cryptographic signatures, to test how the software handles these anomalies.
- Manifest and CRL (Certificate Revocation List) Parsing: RPKI also utilizes manifests to ensure integrity of repository contents and CRLs for certificate revocation. Fuzzing these components involves creating malformed manifest or CRL files that could lead to parsing errors, infinite loops, or memory corruption.
- Repository Synchronization Protocols: RP software interacts with RPKI repositories using protocols like rsync or RRDP (Relying Party Repository Delta Protocol). While the talk didn't explicitly mention network protocol fuzzing, malformed responses or data streams from an RPKI repository could also be a target.
The complex nature of RPKI data, which involves intricate cryptographic operations, ASN.1 encoding, and hierarchical trust models, makes it particularly susceptible to parsing vulnerabilities. Fuzzing is well-suited to uncovering issues related to:
- Memory Corruption: Such as buffer overflows or use-after-free errors, which can lead to crashes, arbitrary code execution, or information disclosure.
- Integer Overflows/Underflows: Leading to incorrect size calculations, buffer allocations, or loop bounds.
- Logic Bugs: Where valid but unexpected inputs cause the program to enter an erroneous state or make incorrect validation decisions.
- Resource Exhaustion: Inputs that cause excessive CPU usage, memory allocation, or network requests, leading to denial of service.
The speakers developed "tools and methodologies... from scratch" to conduct this analysis. While the specifics of these tools are not detailed in the transcript, it implies a custom fuzzing harness tailored to the RPKI file formats and validation logic, likely integrating with existing fuzzing engines like AFL++ or libFuzzer. Such a harness would generate test cases, execute the RPKI validation software, and monitor for crashes or abnormal behavior.
It is crucial to reiterate that while the methodology of fuzzing was discussed, the transcript does not provide any specific technical details about the actual vulnerabilities found, such as code snippets, specific malformed inputs, or detailed explanations of how the "two vulnerabilities" manifested at a low technical level. The focus was primarily on the approach and the general outcome of finding easily discoverable DoS vulnerabilities.
Demo / Proof of Concept
▶ Watch: ROAs: Cryptographically verifiable routing data (3:30)
The provided transcript does not contain any explicit mention or description of a live demonstration or a detailed proof-of-concept (PoC) for the vulnerabilities discussed. The speakers introduce the topic, explain the RPKI protocol, discuss their methodology (fuzzing), and then move to their findings and concluding remarks. While the research implies that PoCs were developed to identify and confirm the "two vulnerabilities," the talk itself, as captured in the transcript, does not describe how these were demonstrated or how they worked in practice beyond stating that they led to denial of service (crashes).
Defensive Implications
▶ Watch: Relying Party: Offloading RPKI validation from routers (4:00)
The discovery of easily exploitable denial of service vulnerabilities in RPKI validation software carries significant defensive implications for all stakeholders involved in internet routing security. The integrity of the RPKI system is paramount to protecting BGP, and any weaknesses in its implementations directly undermine this critical security layer.
- For RPKI Relying Party (RP) Software Vendors:
- Prioritize Security Testing: The findings underscore the urgent need for comprehensive security testing, including fuzzing, static analysis, and dynamic analysis, throughout the development lifecycle. Given the complexity of cryptographic parsing and validation, automated tools are essential.
- Secure Coding Practices: Implement rigorous secure coding guidelines, focusing on input validation, memory safety, and error handling for all RPKI-related file formats (ROAs, certificates, manifests, CRLs) and network protocols (RRDP, rsync).
- Prompt Patching and Disclosure: Establish robust processes for vulnerability management, including timely patching of identified flaws and transparent communication with the community.
- Redundancy and Resilience: Design RP software with fault tolerance in mind, ensuring that even if one component fails due to a malicious input, the system can gracefully degrade or recover without compromising the entire validation process.
- For Network Operators and ISPs (RPKI Users):
- Stay Updated: Regularly update RPKI relying party software to the latest versions. The "easy to find" nature of the discovered vulnerabilities suggests that new flaws could emerge, and patches will be crucial.
- Diversify RP Software: Where feasible, consider running multiple, different RPKI validation software implementations in parallel. This can provide a layer of resilience, as a vulnerability in one vendor's software might not affect another's.
- Monitor RP Health: Implement robust monitoring for RP software health, including CPU usage, memory consumption, and the freshness of the validated RPKI data (RTR session status). Early detection of crashes or abnormal behavior is critical.
- Understand Fallback Mechanisms: Network operators must understand how their BGP routers behave if the RPKI validator becomes unavailable or provides invalid data. While RPKI is designed to prevent bad routes, a failed validator could lead to routers either operating with outdated (and potentially vulnerable) data or reverting to unvalidated BGP announcements, reintroducing the risk of hijacks.
- Contribute to Open Source: For operators using open-source RP software, consider contributing to its security through bug bounties, code audits, or community engagement.
- For the Broader Internet Community:
- Continued Research: The "sparked interest" in systemic analysis should be pursued by the security community. Continuous, independent security audits of RPKI implementations are vital to maintaining the protocol's integrity.
- Standardization and Best Practices: Encourage the development and adoption of common security best practices and test suites for RPKI software to ensure a baseline level of robustness across implementations.
- Education and Awareness: Raise awareness among network engineers and decision-makers about the critical role of RPKI and the potential impact of vulnerabilities in its supporting software.
The defensive implications are clear: the security of the internet's routing infrastructure is only as strong as its weakest link. For RPKI to fulfill its promise of securing BGP, its implementations must be subjected to the same rigorous security scrutiny as any other critical infrastructure software. Failure to address these vulnerabilities could lead to widespread disruption, undermining the trust and stability of global internet connectivity.
Key Takeaways
- RPKI is Critical but Vulnerable: While the Resource Public Key Infrastructure (RPKI) is essential for securing the internet's Border Gateway Protocol (BGP) against routing hijacks and leaks, its software implementations are susceptible to significant security vulnerabilities.
- Easily Discoverable DoS Issues: Researchers found "two vulnerabilities which are quite easy to find and affect a lot of clients," primarily leading to denial of service (DoS) conditions or crashes in RPKI validation software.
- Fuzzing as a Key Methodology: Fuzzing proved to be a highly effective and promising solution for systematically identifying security flaws in complex RPKI parsing and validation logic across various implementations.
- Undermining Internet Security: Vulnerabilities in RPKI validation software directly compromise the security benefits RPKI is designed to provide, potentially re-exposing the internet to the very routing attacks it aims to prevent.
- Urgent Need for Robust Security Practices: Network operators must prioritize keeping RPKI relying party software updated, and software vendors must implement comprehensive security testing (including fuzzing) and secure coding practices to ensure the integrity of the RPKI ecosystem.
- Continuous Vigilance Required: The security of global routing depends on continuous, proactive security analysis and prompt patching of RPKI software to maintain a trusted routing environment.
About the Speaker(s)
The provided metadata and transcript indicate that the talk was given by "my colleague and I." However, the names, titles, or affiliations of the speakers are not specified in the available materials. Therefore, specific biographical details about the individual(s) who presented "Crashing the Party: Vulnerabilities in RPKI Validation" at Black Hat USA are unavailable.