An ICMP Flood (commonly called a ping flood) is a volumetric Distributed Denial-of-Service (DDoS) attack that sends a high rate of Internet Control Message Protocol packets — typically Echo Request (“ping”) messages — to a target, consuming inbound bandwidth, outbound bandwidth for replies, and CPU cycles needed to process each packet, without requiring any connection state.
TL;DR: ICMP is a network-layer control protocol used for diagnostics and error reporting, not a service with authentication or handshakes. A ping flood exploits this by sending Echo Request packets faster than the target (or its link) can absorb, forcing it to spend bandwidth and CPU generating Echo Replies or simply dropping the excess. A related historical variant, the Smurf attack, amplifies this by spoofing the victim’s IP and broadcasting Echo Requests to an entire subnet, causing every host on that subnet to reply to the victim at once. Mitigation relies on rate-limiting ICMP at the host and edge, disabling directed broadcast forwarding on routers, and upstream scrubbing — never disabling ICMP entirely, since that breaks legitimate diagnostics and Path MTU Discovery.
Last updated: 2026-08-27
ICMP Flood is one of the earliest documented denial-of-service techniques, predating most modern DDoS tooling. The “ping of death” and basic ping flood were already well-known nuisances in the mid-1990s, and the Smurf attack — named after the 1997 “smurf.c” exploit tool — became notorious later that decade for its high amplification factor against improperly configured networks. While raw ICMP floods are less devastating today against hardened infrastructure, the technique remains a common component of DDoS-for-hire toolkits and a useful diagnostic case study in why network-layer protocols need default-deny and rate-limiting postures.
How an ICMP Flood Works
ICMP operates directly over IP (protocol number 1) with no ports, no handshake, and no session concept. The Echo Request/Echo Reply pair defined for the ping utility exists purely for reachability testing — any host receiving an Echo Request is expected to answer immediately with an Echo Reply carrying the same payload.
Normal ping:Client ──ICMP Echo Request (Type 8)──▶ ServerClient ◀──ICMP Echo Reply (Type 0)──── Server
Direct ICMP Flood:Bot 1 ──ICMP Echo Request──▶ TargetBot 2 ──ICMP Echo Request──▶ TargetBot 3 ──ICMP Echo Request──▶ Target... [millions of requests per second, often with spoofed source IPs]
Target: attempts to generate an Echo Reply for each requestResult: inbound bandwidth saturated by requests outbound bandwidth saturated by replies CPU consumed classifying and responding to each packetStep-by-step mechanism:
- The attacker (directly or via botnet) generates ICMP Echo Request packets at high volume, targeting the victim’s IP address.
- Source IPs may be spoofed to prevent replies from ever reaching the real attacker and to hinder source-based filtering.
- The target’s network stack processes each Echo Request and, unless rate-limited or filtered, generates a corresponding Echo Reply — doubling the traffic at the target’s link (inbound requests plus outbound replies).
- At sufficient volume, the target’s uplink saturates, its CPU spends disproportionate cycles in the network stack, and legitimate traffic — including ICMP messages needed for functions like Path MTU Discovery — is delayed or dropped alongside the flood.
- If the flood is large enough relative to upstream capacity, intermediate routers and links can also become congested, extending impact beyond the immediate target.
The Smurf Attack: Broadcast Amplification
The classic Smurf attack turns a modest amount of attacker bandwidth into a much larger flood by abusing IP directed broadcast addressing.
Step 1: Attacker spoofs source IP = victim's IPStep 2: Attacker sends ICMP Echo Request to a subnet's broadcast addressAttacker (spoofed src: victim) ──Echo Request──▶ 203.0.113.255 (broadcast)
Step 3: Every live host on that subnet receives the broadcasted requestHost 1, Host 2, ... Host 250 each process the Echo Request
Step 4: Every host replies — to the victim, not the attackerHost 1 ──Echo Reply──▶ VictimHost 2 ──Echo Reply──▶ Victim...Host 250 ──Echo Reply──▶ Victim
Amplification factor ≈ number of live hosts on the broadcast subnetSmurf attacks depend on routers being configured to forward “directed broadcast” traffic (a packet addressed to a subnet’s broadcast address arriving from outside that subnet) — a practice RFC 2644 recommended disabling by default as early as 1999. Most modern routers and IP stacks disable directed broadcast forwarding out of the box, which has made classic Smurf attacks rare in practice, though misconfigured legacy equipment can still be abused this way.
ICMP Flood vs. UDP Flood vs. SYN Flood
| Criterion | ICMP Flood | UDP Flood | SYN Flood |
|---|---|---|---|
| Protocol layer | Network (Layer 3) | Transport (Layer 4) | Transport (Layer 4) |
| Port concept | None | Yes (random or fixed target port) | Yes (target service port) |
| Primary exhausted resource | Bandwidth, CPU | Bandwidth, PPS capacity, CPU | Connection table (kernel memory) |
| State required on target | None | None | Yes (half-open TCB) |
| Reply generated by target | ICMP Echo Reply (if not filtered) | ICMP Port Unreachable (if no listener) | SYN-ACK |
| Amplification potential | High via Smurf-style broadcast abuse (largely mitigated today) | High via reflection (DNS, NTP, etc.) | Low — no amplification, only spoofing |
| Typical detection signal | High ICMP-to-total-traffic ratio, Echo Request spike | PPS/bandwidth spike, ICMP Unreachable spike | High SYN rate, low handshake completion |
| Effective at low bandwidth | No — needs volume (except Ping of Death-style malformed variants) | No — needs volume | Yes — small packets can exhaust connection table |
Attack Variations
Direct ICMP Flood. The attacker sends Echo Requests straight to the victim from a single source or a botnet of many sources, with or without spoofing. This is the simplest and still most common form.
Smurf-style broadcast flood. As described above, the attacker spoofs the victim’s address and sends Echo Requests to a subnet broadcast address, causing many hosts to reply simultaneously to the victim. Effectiveness today depends on finding networks that still forward directed broadcasts, which is uncommon on modern routers.
Fragmented/oversized ICMP flood. The attacker sends ICMP packets that are fragmented or exceed the maximum legal IP datagram size, forcing the target to spend additional CPU and memory on reassembly before it can even process the ICMP payload. Historically, the Ping of Death exploited buffer-handling bugs triggered by reassembling oversized ICMP Echo Requests — a related but distinct malformed-packet vector rather than a pure volumetric flood. See malformed ICMP flood techniques for the crash-oriented variant, and IP Fragmentation attacks for reassembly-exhaustion mechanics that apply across protocols.
Reflected ICMP via other error types. Rather than Echo Request/Reply, some variants abuse ICMP error messages (such as Time Exceeded or Destination Unreachable) generated by intermediate routers in response to malformed or expiring packets, redirecting that error traffic toward a victim through spoofing. This is less common than direct Echo flooding but follows the same underlying principle: ICMP has no cost to the sender and no built-in source validation.
Detection Signals and Telemetry
# Per-protocol ICMP countersnetstat -s -p icmp# Look for a sharp rise in "ICMP messages received" and "Echo Requests received"
# Kernel-level ICMP countersnstat -az | grep -i icmp
# Live capture of ICMP traffic (use sampling in production to avoid capture overhead)tcpdump -i eth0 icmp -c 200
# Current ICMP rate-limit configuration on Linuxsysctl net.ipv4.icmp_ratelimitsysctl net.ipv4.icmp_ratemask
# nftables counter for monitoring ICMP volume without blockingnft add rule inet filter input icmp counter
# iptables equivalent with loggingiptables -I INPUT -p icmp --icmp-type echo-request -m limit --limit 10/s -j ACCEPTiptables -A INPUT -p icmp --icmp-type echo-request -j DROP| Indicator | Normal | Under ICMP Flood | Tool |
|---|---|---|---|
| Inbound ICMP PPS | Low, occasional diagnostic pings | Sharp spike, often sustained | NetFlow/sFlow, nstat |
| ICMP-to-total-traffic ratio | Very small percentage | Disproportionately high | NetFlow, netstat -s |
| Echo Reply volume from target | Matches Echo Request volume 1:1 | Rate-limited replies vs. much higher request volume | nstat, packet capture |
| Source IP diversity | Low (diagnostic tools, monitoring systems) | Very high, often random/spoofed | NetFlow sampling |
| Unsolicited Echo Replies arriving (Smurf pattern) | Near zero | High volume from many distinct subnet hosts | tcpdump, flow analysis |
| CPU in softirq/interrupt handling | Baseline | Elevated without proportional legitimate traffic increase | mpstat, sar |
NetFlow, IPFIX, or sFlow scale better than full packet capture during high-PPS floods, since ICMP volume alone rarely requires payload inspection to confirm the pattern.
Mitigation Techniques
| Technique | How It Works | Effectiveness |
|---|---|---|
| ICMP rate limiting | Caps the rate of ICMP replies/requests processed per second (Linux: net.ipv4.icmp_ratelimit) | High — contains resource cost without disabling ICMP entirely |
| Disable directed broadcast forwarding | Routers refuse to forward packets addressed to a subnet broadcast address from outside that subnet (RFC 2644) | Eliminates classic Smurf amplification at the source network |
| BCP38 / uRPF ingress filtering (RFC 2827) | ISPs drop packets whose source IP doesn’t belong to the originating network | Reduces spoofed-source ICMP floods and Smurf reflection |
| Stateful firewall rules per source | Limit ICMP Echo Request rate per source IP/subnet | Medium-high for non-spoofed or low-diversity attacks |
| Selective ICMP type filtering | Allow required types (e.g., Destination Unreachable for PMTU) while rate-limiting or dropping excess Echo Request volume | High — avoids collateral damage from blanket ICMP blocking |
| Fragment/oversized packet drop policy | Reject ICMP packets exceeding expected size or requiring unusual reassembly | Medium-high against fragmented/oversized variants |
| Upstream scrubbing | Provider-side filtering absorbs volumetric ICMP traffic before it reaches the customer’s link | High for large-volume attacks exceeding local capacity |
| Anycast + edge absorption | Distributes attack volume across many points of presence | High for large, distributed floods |
Why you should not simply disable ICMP. ICMP is not an optional convenience protocol. Path MTU Discovery depends on ICMP “Fragmentation Needed” (Type 3, Code 4) messages to let TCP senders learn the correct segment size for a path; blocking all ICMP causes those messages to be silently dropped, which manifests as mysteriously hanging TCP connections for certain payload sizes (“black-holed” PMTUD). The correct posture is selective, rate-limited ICMP — not a blanket block.
Common Mistakes
| Mistake | Impact | Correct Solution |
|---|---|---|
| Blocking all ICMP at the firewall | Breaks Path MTU Discovery, traceroute-based diagnostics, and legitimate network troubleshooting | Rate-limit ICMP Echo Request; allow error types required for PMTUD |
| Assuming Smurf attacks are obsolete everywhere | Legacy or misconfigured routers may still forward directed broadcasts | Explicitly verify and disable directed broadcast forwarding (RFC 2644) on all edge routers |
| Treating ICMP volume alone as proof of attack | Legitimate monitoring systems and network scans also generate ICMP bursts | Correlate volume with source diversity, ratio to total traffic, and business context |
| Relying only on on-premises firewall capacity | Firewall or uplink saturates before local rules can act | Add upstream scrubbing or edge-based absorption sized for peak attack volume |
| Ignoring unsolicited Echo Replies as a Smurf indicator | Reflected-amplification attacks go undetected until bandwidth is already saturated | Monitor for inbound Echo Replies with no corresponding outbound Echo Request |
| Using the same rate limit for all ICMP types | Legitimate error messages (e.g., PMTUD-related) get dropped along with flood traffic | Apply per-type rate limits, prioritizing delivery of error/diagnostic types over Echo Request volume |
How to Implement on Azion
Azion’s distributed network can help absorb and filter ICMP Flood traffic before it reaches your origin, depending on the products enabled and how they are configured:
- DDoS Protection provides always-on detection and mitigation for volumetric network-layer traffic, including ICMP floods, at the edge rather than at your origin.
- Network Shield can apply rate limiting and protocol-based filtering rules to reduce the impact of anomalous ICMP traffic before it reaches application infrastructure.
- Firewall enables custom rules to allow, drop, or rate-limit ICMP traffic by type, source pattern, or volume threshold specific to your environment.
- WAAP combines network- and application-layer controls when ICMP-based volumetric pressure accompanies application-layer attack attempts.
Because Azion’s Anycast network distributes inbound traffic across many points of presence, an ICMP Flood aimed at a single IP is spread across the data centers closest to each traffic source, reducing concentration of impact — though actual distribution depends on routing, topology, and configured policies.
Related Resources
- What Is a DDoS Attack?
- DDoS Attack Types
- What Is DDoS Protection and Mitigation?
- What Is a UDP Flood Attack?
- What Is an IP Fragmentation Attack?
- Azion DDoS Protection
- Azion Network Shield
Frequently Asked Questions
What is an ICMP flood attack? An ICMP flood, or ping flood, sends a high volume of ICMP Echo Request packets to a target, consuming its inbound and outbound bandwidth and CPU as it attempts to process requests and generate replies. It requires no connection state and no application-layer complexity, making it simple to launch and a common component of DDoS-for-hire toolkits.
What is a Smurf attack and how does it relate to ICMP flooding? A Smurf attack is a Layer 3 amplification technique that spoofs a victim’s IP address and sends ICMP Echo Requests to a network’s broadcast address, causing every live host on that subnet to send an Echo Reply to the victim simultaneously. It is a specific amplified form of ICMP flood that depends on routers forwarding directed broadcast traffic, a practice most modern networks disable by default.
Why doesn’t disabling ICMP entirely fix ICMP flood risk?
ICMP carries essential control messages beyond Echo Request/Reply, including the “Fragmentation Needed” messages that Path MTU Discovery depends on to determine correct TCP segment sizes. Blocking all ICMP breaks PMTUD and legitimate diagnostic tools like traceroute, causing unrelated connectivity problems that can be harder to diagnose than the original flood risk.
How is an ICMP flood different from a UDP flood? An ICMP flood operates at the network layer with no port concept and typically involves Echo Request/Reply pairs, while a UDP flood operates at the transport layer and targets specific ports, often triggering ICMP Port Unreachable replies as a side effect when no service is listening. Both are volumetric and stateless, but they use different protocols and generate different reply patterns for detection.
Are Smurf attacks still a real threat today? Classic Smurf attacks are much less effective today because RFC 2644 has led most router vendors to disable directed broadcast forwarding by default since the early 2000s. The technique remains relevant to understand because misconfigured legacy equipment, certain private networks, and IoT devices with non-standard network stacks can still be vulnerable to broadcast-based amplification.
Can rate limiting fully stop an ICMP flood? Rate limiting is effective at containing the resource cost of processing and replying to ICMP traffic, and it is the standard first-line defense, but it does not stop a sufficiently large volumetric flood from saturating the inbound link itself. Rate limiting should be combined with BCP38 filtering and upstream scrubbing capacity for attacks that exceed local bandwidth.
What is the difference between an ICMP flood and the Ping of Death? An ICMP flood is a volumetric attack relying on sheer packet rate to exhaust bandwidth and CPU. The Ping of Death is a malformed-packet attack that sends oversized or invalid ICMP Echo Request packets designed to trigger buffer-handling bugs during reassembly, historically causing crashes rather than simple resource exhaustion. Modern operating systems have largely patched the specific vulnerabilities the Ping of Death exploited.
How can I tell a legitimate ICMP spike from an attack? Legitimate ICMP spikes usually come from a small, identifiable set of sources — monitoring systems, network scans, or troubleshooting activity — and show a normal 1:1 ratio of Echo Requests to Echo Replies. Attack traffic typically shows high source IP diversity, a disproportionate ICMP-to-total-traffic ratio, and, in Smurf-style attacks, unsolicited Echo Replies arriving without corresponding outbound requests.
Does IP spoofing matter for ICMP floods the same way it does for UDP or SYN floods? Spoofing serves the same purposes across all three: it hides the real attacker’s identity and prevents return traffic from consuming the attacker’s own resources. For ICMP specifically, spoofing is also the mechanism that makes Smurf-style amplification possible, since the victim’s spoofed address is what causes broadcast replies to converge on it rather than on the actual sender.
What telemetry best confirms an ICMP flood in progress?
The clearest signal is a sharp, sustained rise in ICMP packets-per-second relative to baseline, combined with a disproportionate ICMP-to-total-traffic ratio and high source IP diversity, visible through NetFlow, sFlow, or kernel counters like nstat -az. For suspected Smurf activity, watch specifically for unsolicited Echo Replies arriving from many distinct source hosts with no matching outbound Echo Request.
Sources
- IETF. “Internet Control Message Protocol.” RFC 792. 1981.
- IETF. “Changing the Default for Directed Broadcasts in Routers.” RFC 2644 (BCP 34). 1999.
- IETF. “Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing.” RFC 2827 (BCP 38). 2000.
- IETF. “Path MTU Discovery.” RFC 1191. 1990.
- CERT|CC. “CERT Advisory CA-1998-01: Smurf IP Denial-of-Service Attacks.” 1998.
- CISA. “Understanding and Responding to Distributed Denial-of-Service Attacks.”
- NIST. “Guide to Intrusion Detection and Prevention Systems.” SP 800-94.