I use Cloudflare for everything. DNS, CDN, Zero Trust access, email routing. When their Miami router started telling the internet to route every internal IPv6 route - including prefixes belonging to Meta, and hundreds of other networks - through it on January 22, my first reaction was professional curiosity. My second was: I trust these people with my infrastructure, and this is the kind of mistake that BGP makes trivially easy.
An automated policy change removed the last prefix-list entries from a term in an export policy on a single router. In JunOS, when a policy term's from clause loses all its prefix-list constraints, the remaining match conditions - in this case, route-type internal - become the only filter. That made every IBGP-learned IPv6 route eligible for external advertisement. For 25 minutes, traffic destined for peers and providers got funneled through Cloudflare's Miami data center - a location that never expected to carry it. Cloudflare's own firewall filters dropped roughly 12 Gbps of it. The rest hit backbone links between Miami and Atlanta, causing congestion and packet loss for Cloudflare customers sharing those paths.
If you were on an IPv6 connection trying to reach an affected network, your packets took a detour through infrastructure not built to handle them. Best case: higher latency. Worst case: your traffic was silently dropped by firewall rules that had no reason to expect it. BGP believed the route was legitimate, so everyone else did too.
The fixes exist. RFC 9234 (BGP Roles) can prevent this class of leak locally, even without the neighbor's cooperation - but Cloudflare's postmortem says they're still "validating routing equipment vendors' implementation" before rollout. RPKI ASPA would let networks reject anomalous paths globally, but under 1% of autonomous systems have published ASPA records. The protocol that routes all internet traffic still runs on a trust-by-default model designed for a few hundred participants. We're at 80,000+ autonomous systems now.
RFC 9234: Simple Config, Complicated Rollout
RFC 9234 defines a BGP Role capability: each router declares its relationship to its neighbor (provider, customer, peer) during session establishment. An Only-to-Customer (OTC) attribute then constrains route propagation. Routes received from a provider or peer can only be sent downstream to customers - exactly the valley-free routing rule that the Cloudflare leak violated.
On Junos, it's a single line per neighbor group:
set protocols bgp group TRANSIT otc-local-role customer
Critically, RFC 9234 works in loose mode by default. If the neighbor doesn't support the capability, the session still establishes and the OTC attribute is enforced locally. The deploying network gets local leak prevention without waiting for the rest of the internet. Strict mode - where the session fails if the neighbor doesn't support RFC 9234 - is optional.
So why isn't Cloudflare running it? Vendor readiness. As of early 2026, Juniper added support in September 2025, making it the first major commercial vendor to do so. Cisco's support remains incomplete. IXPs running open-source route servers (YYCIX on OpenBGPD, FranceIX on BIRD) have had it in production since 2022-2024. But Cloudflare's postmortem language - "validating routing equipment vendors' implementation" - confirms they need it working reliably on the specific platforms in their network before they flip it on.
Why RPKI ASPA Is Still Under 1%
ASPA (Autonomous System Provider Authorization) takes a different approach. It uses existing RPKI infrastructure to publish records declaring "these are my upstream providers." Routers consuming RPKI data can then verify whether an AS path makes sense: if a route passes through an AS that isn't declared as a legitimate provider, it gets flagged.
Three things held it back:
RIR support just arrived. RIPE NCC integrated ASPA into its production RPKI Dashboard in November 2025 (enabled November 26, announced on the routing-wg list December 2). ARIN followed in January 2026. APNIC has indicated plans for Q2 2026, though the NRO's own language commits all RIRs to ASPA support by the end of 2026. Until the registries supported publishing ASPA objects, nobody could publish them.
Commercial routers don't support it. OpenBGPD, BIRD, and FRRouting support ASPA, but those run primarily at internet exchanges. Cisco IOS-XR, Junos, Nokia SR OS don't support ASPA verification yet. The large transit providers carrying the most traffic run commercial stacks.
Maintenance burden is real. Unlike ROA (where you declare "I own these prefixes"), ASPA requires listing every upstream provider. Add a transit link and forget to update the ASPA record, and routes through that provider get rejected.
As of February 2026, well under 1% of global ASNs have published ASPA records. ROV followed the same trajectory and took roughly a decade to reach meaningful adoption.
What the Miami Detour Meant at the Packet Level
The leak was IPv6-only and affected all internal routes Cloudflare redistributes across its backbone - not just Meta's prefixes. The monocle traces show Meta (AS32934) routes propagating through Lumen (AS3356), Cogent (AS174), and Telia (AS1299), but the scope was every IBGP-learned route on that Miami router.
For end users on IPv6 connections reaching affected prefixes:
Firewall drops. Cloudflare's edge routers accept traffic only for their own services and customers. Traffic arriving for other networks' prefixes was discarded - roughly 12 Gbps at peak. Users saw connection timeouts and failed page loads.
Backbone congestion. The Miami-to-Atlanta links weren't sized for this unplanned load. Cloudflare customers sharing those links got elevated packet loss and latency.
Unintended path traversal. Route leaks create conditions for packet inspection by intermediate networks and potential DNS spoofing. Cloudflare is a trusted operator, so the security risk here was low. The same class of leak from a less scrupulous network is a different story.
Cloudflare's team investigated within 15 minutes and reverted in 25. That's fast. The underlying problem is structural.
Sources:
- Cloudflare engineering blog: Route leak incident on January 22, 2026
- MANRS: Preventing and Detecting BGP Route Leaks With RFC 9234
- APNIC Blog: Preventing route leaks made simple - BGP roleplay with Junos
- FastNetMon: ASPA - the next layer of routing security
- RIPE NCC: Autonomous System Provider Authorization (ASPA)
- SIDN: Adoption of RPKI/ROV security protocol progressing very quickly
- NANOG mailing list: RFC 9234 route leak prevention in the wild
- NetworkLessons: BGP Route Leaking
- BleepingComputer: Cloudflare misconfiguration behind recent BGP route leak
- RIPE routing-wg: ASPA support added to the RIPE NCC RPKI Dashboard
- NRO RPKI Program: 2025 in Review