DoS Vulnerability Found in Scapy Packet Manipulation Tool

Scapy, the free and open source packet manipulation tool, is affected by a denial-of-service (DoS) vulnerability, Imperva revealed on Tuesday.

Developed in Python, Scapy is a powerful tool that allows users to forge, decode, send, capture, store, and read packets. It can be used for network discovery, attacks, scans, tracerouting and probing, and its developers say it can replace tools such as hping, nmap, arp-sk, Wireshark, arping, tcpdump, and arpspoof.

While looking into more efficient ways of detecting and mitigating distributed denial-of-service (DDoS) attacks, Imperva researchers noticed that a specially crafted packet can cause Scapy to enter a DoS condition.

Specifically, experts says the algorithm used by the tool to determine the type of an inspected packet relies on port numbers, allowing the packet type to be easily spoofed. If an attacker sends a specially crafted packet that appears to be a RADIUS packet, Scapy enters an infinite loop.

“This can potentially affect the health of an enterprise network – for instance, if Scapy is being used by IT to monitor network traffic, the monitoring process will stop functioning,” Imperva’s Johnathan Azaria and Koby Kilimnik said in a blog post.

Imperva reported the vulnerability to Scapy developers and a patch has been released. However, when Imperva published its blog post, it warned that the current Scapy version (2.4.0) from the Python pip repositories had still contained the vulnerability. Users have been advised to build Scapy using code obtained directly from the official GitHub account.

“The potential impact is large – Scapy is quite a popular tool, and other libraries that depend on Scapy might be vulnerable as well. Networks relying on Scapy for traffic monitoring or other functions can also be affected,” explained Azaria and Kilimnik.

Imperva noted that some libraries with a Scapy dependency may be affected as well. The list includes IcmpTool, jldcmds, mim, ooniprobe, pyersinia, scapy-http and pysap.

Eduard Kovacs (@EduardKovacs) is a contributing editor at SecurityWeek. He worked as a high school IT teacher for two years before starting a career in journalism as Softpedia’s security news reporter. Eduard holds a bachelor’s degree in industrial informatics and a master’s degree in computer techniques applied in electrical engineering.