The GitHub 1.35 Tbps DDoS Attack (2018)

On February 28, 2018, GitHub was hit by the largest distributed denial-of-service (DDoS) attack ever recorded at that time: a sustained flood peaking at 1.35 terabits per second (Tbps) of inbound traffic. The attack used a relatively new amplification technique that exploited misconfigured memcached servers across the internet, and it required no botnet at all. Despite the unprecedented volume, Akamai Prolexic absorbed and mitigated the attack in roughly ten minutes. The incident fundamentally changed how the internet community thinks about UDP-based amplification and exposed services.

What is Memcached?

Memcached is an open-source, high-performance, distributed memory caching system. It is designed to speed up dynamic web applications by caching data and objects in RAM to reduce the number of times an application must read from a database. Companies like Facebook, Wikipedia, and Twitter use memcached at massive scale internally.

Memcached was designed to run on trusted internal networks. It has no authentication mechanism, no access control, and no encryption. If you can reach a memcached server, you can read from and write to its cache. This is fine behind a firewall, but by 2018, hundreds of thousands of memcached servers were exposed directly to the public internet on UDP port 11211 -- reachable by anyone.

The Amplification Technique

The attack exploited a class of vulnerability known as a reflection and amplification attack. The concept is straightforward: the attacker sends a small request to a third-party server, spoofing the source IP address to be the victim's address. The server then sends a much larger response to the victim. The attacker never communicates with the victim directly.

Attacker spoofs src IP Memcached #1 UDP :11211 Memcached #2 UDP :11211 Memcached #3 UDP :11211 Memcached #N UDP :11211 GitHub 192.30.252.0/22 15-byte request (spoofed src IP) ~750 KB response (51,000x amplified) Memcached reflection and amplification attack

What made memcached uniquely dangerous was the amplification factor. A memcached GET request can be as small as 15 bytes, but if the cache key stores a large value, the response can be hundreds of kilobytes or even a megabyte. Researchers measured amplification factors as high as 51,000x -- meaning a single byte of attacker traffic could generate 51,000 bytes of traffic directed at the victim. For comparison, DNS amplification attacks typically achieve a factor of 28-54x, and NTP amplification tops out around 556x. Memcached blew every previous amplification vector out of the water.

Why UDP Made This Possible

The attack depended entirely on UDP (User Datagram Protocol). Unlike TCP, UDP is connectionless -- there is no handshake, no session, no verification that the source IP address is legitimate. When a memcached server receives a UDP request claiming to be from a certain IP address, it sends the response to that IP without question. This is what makes source IP spoofing trivial with UDP.

Memcached supports both TCP and UDP, but the UDP listener was enabled by default in all versions prior to 1.5.6. Most operators who deployed memcached on internet-facing servers either did not realize UDP was enabled or did not understand the implications. The memcached protocol over UDP was originally intended for performance optimization in trusted data center environments where the overhead of TCP connection setup was undesirable.

Anatomy of the GitHub Attack

Before the attack, the adversary likely spent days or weeks preparing. The preparation phase involved two steps:

  1. Scanning -- The attacker scanned the internet for memcached servers with UDP port 11211 open. Shodan and Censys data from early 2018 showed roughly 100,000 exposed memcached instances worldwide, though some estimates ranged higher.
  2. Priming -- The attacker sent SET commands to these memcached servers, storing large payloads (hundreds of kilobytes) under known cache keys. This ensured that when the GET requests came during the attack, the responses would be as large as possible.

Then, on February 28, the attacker launched the assault. The sequence unfolded rapidly:

17:21 UTC First wave begins. Traffic spikes to 1.35 Tbps ~126.9 million packets per second 17:21 - 17:26 GitHub partially unreachable for ~5 minutes GitHub's DDoS defenses overwhelmed 17:26 GitHub activates Akamai Prolexic BGP reroutes traffic through Akamai scrubbing centers 17:30 Second wave peaks at ~400 Gbps Akamai absorbs it without impact 17:31 Attack fully mitigated. GitHub restored. Total incident duration: ~10 minutes Timeline of the GitHub DDoS attack (Feb 28, 2018)

The first wave struck at 17:21 UTC and peaked almost instantly at 1.35 Tbps -- approximately 126.9 million packets per second. To put that in perspective, this was more than double the previous record-holding DDoS attack (the 2016 Dyn attack, estimated at around 620 Gbps, which itself was powered by the Mirai botnet's hundreds of thousands of compromised IoT devices). The GitHub attack achieved more than double that bandwidth with zero compromised devices.

GitHub's infrastructure was immediately overwhelmed. The site became intermittently available. GitHub's own network monitoring detected the anomaly within seconds, and their systems automatically initiated a failover to Akamai Prolexic, their contracted DDoS mitigation provider.

How Akamai Prolexic Stopped It

Akamai Prolexic is a DDoS mitigation service that works by rerouting a customer's traffic through Akamai's globally distributed scrubbing centers. The mechanism relies heavily on BGP. Here is how the mitigation worked:

  1. BGP reroute -- When GitHub activated Prolexic, Akamai began announcing GitHub's IP prefixes (such as 192.30.252.0/22) from Akamai's own autonomous system. Because anycast distributes Akamai's presence across hundreds of global points, traffic destined for GitHub was now attracted to the nearest Akamai scrubbing center instead of GitHub's origin servers.
  2. Traffic scrubbing -- At each scrubbing center, Akamai's systems inspected the incoming traffic. The memcached amplification flood consisted of UDP packets on port 11211 carrying memcached responses that nobody at GitHub had requested. These were trivially distinguishable from legitimate web traffic (which arrives via TCP on ports 80 and 443). The attack traffic was dropped; legitimate traffic was forwarded to GitHub through a clean tunnel.
  3. Capacity absorption -- The key factor is scale. No single data center can absorb 1.35 Tbps. But because Akamai operates scrubbing infrastructure in dozens of locations worldwide, the attack traffic was distributed across all of them. Each location only needed to handle a fraction of the total volume. This is the same principle behind CDN architecture and anycast DDoS defense.
Attack Traffic Akamai Scrubbing BGP anycast + filtering UDP :11211 DROPPED clean tunnel GitHub 192.30.252.0/22 Legitimate Users BGP Reroute Akamai announces GitHub's prefixes Akamai Prolexic mitigation via BGP rerouting

Within about eight minutes of rerouting, the attack was fully contained. A second wave struck around 17:30 UTC, peaking at approximately 400 Gbps, but Akamai absorbed it without any impact on GitHub's availability. The entire incident, from the first spike to full mitigation, lasted roughly ten minutes.

The BGP Mechanics of DDoS Mitigation

The GitHub incident is a textbook example of how BGP is used defensively. Under normal operation, GitHub announces its own IP prefixes to the internet from its own autonomous system. Traffic flows directly to GitHub's servers.

When a DDoS attack overwhelms GitHub's capacity, the mitigation provider takes over by advertising the same prefixes from its own network. Because BGP path selection considers AS path length, local preference, and other attributes, the mitigation provider's routes can be made more attractive than GitHub's direct routes. Traffic globally converges on the mitigation provider's scrubbing infrastructure, where malicious packets are discarded and clean traffic is tunneled back to GitHub.

This approach is sometimes called BGP-based traffic diversion or remote triggered black hole (RTBH) routing in its more aggressive form. The critical requirement is that the mitigation provider must have enough aggregate bandwidth, distributed across enough locations, to absorb the full volume of the attack. In 2018, Akamai's Prolexic network had over 2.3 Tbps of dedicated scrubbing capacity globally -- enough to handle the 1.35 Tbps peak.

Comparing Amplification Vectors

The memcached amplification factor is extraordinary when placed alongside other commonly abused protocols:

DDoS Amplification Factors by Protocol Memcached NTP CharGEN SSDP DNS SNMP 51,000x 556x 358x 30x 28-54x 6x Bar widths log-scaled for readability. Memcached is ~92x greater than NTP.

DNS amplification, which had been the workhorse of DDoS attacks for years, achieves a maximum of about 54x amplification by sending a small query for a large DNS response (typically using EDNS0 and the ANY query type). NTP amplification, which powered the 400 Gbps Spamhaus attack of 2014, achieves about 556x by exploiting the monlist command. Memcached's 51,000x factor is nearly 100 times more efficient than NTP amplification.

The practical implication is staggering. An attacker with a 1 Gbps internet connection and a list of exploitable memcached servers could, in theory, generate over 51 Tbps of attack traffic -- far more than any organization or even most mitigation providers could absorb. The only saving grace is that the number of open memcached servers is finite and was shrinking rapidly as operators patched their systems after the GitHub attack became public.

No Botnet Required

Previous record-setting DDoS attacks required botnets -- large networks of compromised devices. The 2016 Mirai botnet that took down Dyn (and temporarily disrupted Twitter, Netflix, Reddit, and GitHub itself) consisted of an estimated 100,000 compromised IoT devices like cameras and DVRs. Building and maintaining a botnet requires significant effort: finding vulnerable devices, exploiting them, deploying command-and-control infrastructure, and evading takedowns.

The memcached attack required none of this. The attacker needed only:

This dramatically lowered the barrier to entry for launching record-breaking DDoS attacks. A single attacker with modest resources could generate traffic volumes that previously required coordinated botnets of tens of thousands of devices.

BCP38 and Source Address Validation

All UDP reflection attacks depend on IP source address spoofing -- the attacker sends packets with a forged source address (the victim's IP) so the reflector sends its response to the victim. If every network on the internet implemented BCP38 (RFC 2827), which mandates that networks should filter outbound traffic and only allow packets with source addresses from their own assigned ranges, spoofed-source attacks would be impossible.

In practice, BCP38 adoption remains incomplete. While most large ISPs and cloud providers implement ingress filtering, many smaller networks, hosting providers, and enterprise networks do not. Attackers specifically seek out networks that allow spoofed traffic to originate their attacks. The Spoofer Project, run by CAIDA, continuously measures BCP38 adoption and has found that roughly a quarter of tested networks still allow some degree of spoofing.

The Aftermath: Securing Memcached

The GitHub attack triggered an immediate, global response. Within days:

Security researchers at Cloudflare, Akamai, Arbor Networks (now NETSCOUT), and others published detailed analyses, amplification measurement data, and mitigation guidance within hours of the attack. The speed of the community response reflected the severity of the threat: memcached amplification had the potential to generate attacks far larger than anything the internet's infrastructure could absorb if widely exploited.

Why GitHub?

GitHub never disclosed the attacker's identity or motivation, and no group publicly claimed responsibility. GitHub is a high-profile target that would generate maximum media attention, which may have been the point -- many DDoS attacks are motivated by the desire to demonstrate capability rather than by a specific grievance.

It is also worth noting that the attack was not particularly sophisticated in its targeting. The flood was a volumetric assault aimed at overwhelming GitHub's inbound bandwidth. It did not attempt to exploit application-layer vulnerabilities, target specific repositories, or exfiltrate data. This is consistent with a demonstration or proof-of-concept attack using the then-new memcached amplification vector.

Historical Context: The DDoS Arms Race

The GitHub attack was the apex of a long escalation in DDoS attack volumes, driven by the discovery of increasingly powerful amplification vectors:

After 2018, the DDoS landscape continued to evolve. The memcached vector was largely neutralized through patching, but new amplification protocols continued to emerge (CLDAP, WS-Discovery, ARMS). By 2023-2024, DDoS attacks exceeding 1 Tbps had become relatively routine for large mitigation providers, driven by a combination of improved botnets, new amplification vectors, and volumetric attacks targeting cloud infrastructure.

Lessons for Network Operators

The GitHub memcached attack highlighted several enduring lessons for anyone operating internet infrastructure:

The Role of BGP in DDoS Defense

BGP is both the enabler of DDoS defense and, in some ways, a contributing factor to DDoS vulnerability. The ability to reroute traffic by changing BGP announcements is what makes services like Akamai Prolexic and Cloudflare Magic Transit possible. When an attack hits, the mitigation provider advertises the victim's prefixes, attracting attack traffic to distributed scrubbing centers where it can be filtered.

At the same time, BGP's global propagation delay -- the time it takes for route changes to converge across all networks -- means there is always a gap between when mitigation is activated and when it becomes fully effective. During the GitHub attack, this convergence window was the ~5 minutes during which GitHub was partially unreachable. Modern mitigation providers use techniques like always-on routing (where traffic permanently flows through scrubbing infrastructure, even when there is no attack) to eliminate this convergence gap entirely.

The defense against volumetric DDoS attacks is fundamentally a routing problem. The attacker generates more traffic than the victim's links can carry. The solution is to distribute that traffic across enough links and locations that no single point is overwhelmed. Anycast and BGP make this distribution possible. The GitHub attack proved that this model works, even at previously unimaginable traffic volumes.

Explore the Networks Involved

You can examine the routing infrastructure of the key players in this incident using the looking glass:

See BGP routing data in real time

Open Looking Glass
More Articles
The Pakistan YouTube BGP Hijack (2008)
The Facebook DNS Outage (October 2021)
The Cloudflare-Verizon BGP Leak (2019)
The AWS S3 Outage (February 2017)
The Dyn DNS DDoS Attack and Mirai Botnet (2016)
The CenturyLink/Level3 Flowspec Outage (2020)