Class · High

CWE-406: Insufficient Control of Network Message Volume (Network Amplification)

The product does not sufficiently monitor or control transmitted network traffic volume, so that an actor can cause the product to transmit more traffic than should be allowed for that actor.

CWE-406 · Class Level ·5 CVEs ·3 Mitigations

Description

The product does not sufficiently monitor or control transmitted network traffic volume, so that an actor can cause the product to transmit more traffic than should be allowed for that actor.

In the absence of a policy to restrict asymmetric resource consumption, the application or system cannot distinguish between legitimate transmissions and traffic intended to serve as an amplifying attack on target systems. Systems can often be configured to restrict the amount of traffic sent out on behalf of a client, based on the client's origin or access level. This is usually defined in a resource allocation policy. In the absence of a mechanism to keep track of transmissions, the system or application can be easily abused to transmit asymmetrically greater traffic than the request or client should be permitted to.

Potential Impact

Availability

DoS: Amplification, DoS: Crash, Exit, or Restart, DoS: Resource Consumption (CPU), DoS: Resource Consumption (Memory), DoS: Resource Consumption (Other)

Demonstrative Examples

This code listens on a port for DNS requests and sends the result to the requesting address.
Bad
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.bind( (UDP_IP,UDP_PORT) )while true:
                        data = sock.recvfrom(1024)if not data:break
                           (requestIP, nameToResolve) = parseUDPpacket(data)record = resolveName(nameToResolve)sendResponse(requestIP,record)
This code sends a DNS record to a requesting IP address. UDP allows the source IP address to be easily changed ('spoofed'), thus allowing an attacker to redirect responses to a target, which may be then be overwhelmed by the network traffic.

Mitigations & Prevention

Architecture and Design

An application must make network resources available to a client commensurate with the client's access level.

Policy

Define a clear policy for network resource allocation and consumption.

Implementation

An application must, at all times, keep track of network resources and meter their usage appropriately.

Detection Methods

  • Automated Static Analysis — Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then sea

Real-World CVE Examples

CVE IDDescription
CVE-1999-0513Classic "Smurf" attack, using spoofed ICMP packets to broadcast addresses.
CVE-1999-1379DNS query with spoofed source address causes more traffic to be returned to spoofed address than was sent by the attacker.
CVE-2000-0041Large datagrams are sent in response to malformed datagrams.
CVE-1999-1066Game server sends a large amount.
CVE-2013-5211composite: NTP feature generates large responses (high amplification factor) with spoofed UDP source addresses.

Taxonomy Mappings

  • PLOVER: — Network Amplification

Frequently Asked Questions

What is CWE-406?

CWE-406 (Insufficient Control of Network Message Volume (Network Amplification)) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Class-level weakness. The product does not sufficiently monitor or control transmitted network traffic volume, so that an actor can cause the product to transmit more traffic than should be allowed for that actor.

How can CWE-406 be exploited?

Attackers can exploit CWE-406 (Insufficient Control of Network Message Volume (Network Amplification)) to dos: amplification, dos: crash, exit, or restart, dos: resource consumption (cpu), dos: resource consumption (memory), dos: resource consumption (other). This weakness is typically introduced during the Operation, Architecture and Design, Implementation phase of software development.

How do I prevent CWE-406?

Key mitigations include: An application must make network resources available to a client commensurate with the client's access level.

What is the severity of CWE-406?

CWE-406 is classified as a Class-level weakness (High abstraction). It has been observed in 5 real-world CVEs.