CVE-1999-0636
Executive Summary
This report analyzes CVE-1999-0636, a critical configuration vulnerability related to the presence of the 'discard' service (RFC 863) running on TCP and/or UDP port 9. This is not a software flaw in an application but rather a high-risk legacy network service that should be disabled. The service, designed for debugging, discards any data it receives.
The extreme threat level, historically rated at CVSS 10.0, stems from its potential for abuse in large-scale Denial of Service (DoS) reflection and amplification attacks, similar to "Smurf" or "Fraggle" attacks. An attacker can send packets to multiple servers with this service enabled, spoofing the source IP address to be that of a target victim. These servers then flood the victim with response traffic, potentially overwhelming their network capacity and causing a complete service outage.
Given that the discard service has no legitimate modern use case on production systems, immediate remediation is strongly advised. The primary mitigation is to disable the service via inetd or xinetd configurations and implement network-level firewall rules to block all traffic to and from port 9.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
While the original CVSSv2 score was a critical 10.0, modern CVSSv3.1 scoring provides a more nuanced view.
- CVSS v3.1 Score: 7.5 (High)
- CVSS v3.1 Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Breakdown:
- Attack Vector (AV:N): Network. The vulnerable service is exposed over the network.
- Attack Complexity (AC:L): Low. An attacker only needs to send standard network packets to the open port.
- Privileges Required (PR:N): None. This is an unauthenticated service.
- User Interaction (UI:N): None. No user action is needed to facilitate an attack.
- Scope (S:U): Unchanged. The attack impacts the availability of the target system but does not allow the attacker to pivot or impact other security domains.
- Confidentiality (C:N): None. No information is disclosed.
- Integrity (I:N): None. No data is modified.
- Availability (A:H): High. The primary impact is a total loss of availability for the targeted system or network due to a Denial of Service attack.
The historical 10.0 score reflected the widespread nature of this misconfiguration in the late 1990s and its ability to be used as a massive amplifier in distributed DoS (DDoS) attacks, which could cripple significant portions of internet infrastructure at the time.
Deep Dive & Mechanics
The Discard Protocol, defined in RFC 863, is a very simple service for testing and debugging. It operates on both TCP and UDP port 9.
- TCP: A server listens on TCP port 9. Once a connection is established, any data received is thrown away until the connection is closed.
- UDP: A server listens on UDP port 9. Any datagram received is simply discarded without any response.
The vulnerability does not lie within the protocol's function but in its abuse for DoS attacks. The most common attack is a UDP-based reflection and amplification attack (Fraggle attack):
- Spoofing: The attacker crafts UDP packets destined for port 9 of multiple vulnerable servers (amplifiers). The source IP address in these packets is forged to be the IP address of the intended victim.
- Reflection: While the RFC specifies no response for UDP discard, many early implementations would send an ICMP "Port Unreachable" or other error message back to the spoofed source if the service wasn't running correctly, or even just respond with traffic. Even if the service just absorbs the traffic, it can be part of a larger DoS. The more severe threat vector involves other legacy services like
chargenoften found alongsidediscard. An attacker could send a spoofed packet from the victim's IP to an amplifier'schargenport (19), which would then send a stream of characters to the victim'sdiscardport (9), creating a continuous loop that consumes bandwidth. - Amplification & Aggregation: The attacker sends small queries to many different amplifiers. The combined traffic reflected towards the single victim is aggregated, overwhelming the victim's network bandwidth and resources, leading to a Denial of Service.
Vulnerable vs. Secure Configuration
This vulnerability is purely configuration-based. There is no "code" to patch. The insecure state is having the service enabled, typically in the internet super-server daemon (inetd or xinetd).
Vulnerable Configuration (/etc/inetd.conf)
A vulnerable system will have the following lines active (uncommented) in its /etc/inetd.conf file:
# /etc/inetd.conf
#
# Discard service -- enabled and vulnerable
discard stream tcp nowait root internal
discard dgram udp wait root internal
Secure Configuration (/etc/inetd.conf)
A secured system will have these lines commented out or removed entirely.
# /etc/inetd.conf
#
# Discard service -- disabled and secure
# discard stream tcp nowait root internal
# discard dgram udp wait root internal
For systems using xinetd, the configuration would be in a file like /etc/xinetd.d/discard, which should be deleted or have the disable = no flag set to disable = yes.
Exploitation & Lab Setup
Exploitation does not require custom tools. Standard network utilities can be used to test for and interact with the service.
Lab Setup
- Vulnerable Host: Set up a Linux VM (e.g., an older Debian or CentOS image).
- Install Super-Server: Install
inetdorxinetd. For example:sudo apt-get install openbsd-inetd. - Enable Service: Ensure the
discardlines in/etc/inetd.confare uncommented. - Restart Service: Restart the daemon:
sudo systemctl restart inetd. - Attacker Host: Any machine with network tools like
nmapandhping3or a scripting language like Python with Scapy.
Verification and Exploitation Steps
Verify the Port is Open: From the attacker machine, use
nmapto scan for port 9.# nmap -sU -sT -p 9 <vulnerable_host_ip> Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC Nmap scan report for <vulnerable_host_ip> Host is up (0.0010s latency). PORT STATE SERVICE 9/tcp open discard 9/udp open|filtered discardSimulate Reflection (PoC): This PoC demonstrates sending a single spoofed packet. A real attack would automate this across thousands of amplifiers. We need three machines: Attacker, Amplifier (running discard), and Victim.
On the Victim machine, start a packet capture to see the reflected traffic:
sudo tcpdump -i eth0 -n "src <amplifier_ip>"On the Attacker machine, use
hping3to send a UDP packet to the amplifier's discard port, but with the victim's IP as the source:sudo hping3 --spoof <victim_ip> -c 1 --udp -p 9 <amplifier_ip>Observe the output on the Victim machine. You may see an ICMP response or other traffic from the amplifier, proving that the reflection works.
Detection Engineering
Detection focuses on identifying network traffic targeting this obsolete port. Any traffic to port 9 is highly suspicious and should be investigated.
Suricata Rule
This rule will detect any UDP or TCP traffic directed to port 9 from an external source, which is a strong indicator of scanning or a potential DoS attack.
# Alert on any inbound traffic to the Discard service port (9)
alert any any -> $HOME_NET 9 (
msg:"ET INFO Inbound Traffic to Discard Service Port (9)";
flow:to_server;
classtype:bad-unknown;
sid:9900636;
rev:1;
metadata:attack_target Server, cve CVE_1999_0636, created_at 2023_10_27, deployment Perimeter, signature_severity Major, tag DoS;
)
This high-fidelity rule can be deployed in an alert or drop mode on perimeter network sensors.
Remediation & Mitigation
Remediation is straightforward and involves disabling and blocking the service.
Disable the Service:
For
inetd: Edit/etc/inetd.confand place a#at the beginning of the lines fordiscardto comment them out.# # /etc/inetd.conf: # #discard stream tcp nowait root internal #discard dgram udp wait root internalThen, send a
SIGHUPsignal to theinetdprocess or restart it to apply the changes.# Find the PID ps aux | grep inetd # Reload the configuration kill -HUP <inetd_pid>For
xinetd: Edit the corresponding file in/etc/xinetd.d/(e.g.,discardordiscard-stream) and setdisable = yes.# default: no # description: Discards all incoming data service discard { disable = yes ... }Then, restart the
xinetdservice:systemctl restart xinetd.
Firewalling: As a defense-in-depth measure, explicitly block all ingress and egress traffic on TCP/UDP port 9 at your network perimeter firewall.
# Example using iptables to block incoming traffic to port 9 sudo iptables -A INPUT -p tcp --dport 9 -j DROP sudo iptables -A INPUT -p udp --dport 9 -j DROPNetwork Best Practices: Implement network ingress filtering as described in BCP 38 / RFC 2827. This practice prevents hosts within your network from sending packets with spoofed source IP addresses, ensuring your systems cannot be used as amplifiers in such DDoS attacks against others.
[!] This Threat Intelligence report was automatically generated by Valters IT (valtersit.com) Neural Engine.
{/* [Security Hash: 70F5E7240284B782AAA0520F] */}
Security researchers use these queries on Shodan.io to find vulnerable systems globally.
Full Shodan queries for this CVE are available through the ValtersIT API. They were moved behind the API in response to large-scale automated scraping, and to keep this independently-researched intelligence sustainable. The written analysis above remains fully open.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.