A long-known implementation error in the Transmission Control Protocol (TCP) that network devices use to communicate with each other continues to persist in TCP/IP stacks used in millions of IT, OT, and IoT devices.
The vulnerabilities give attackers a way to hijack TCP connections, close them, spoof packets, bypass authentication, and inject data into network traffic. The flaws were discovered in nine out of 11 TCP/IP stacks recently analyzed by Forescout as part of a broader study in recent months of the communication protocol's security.
The vulnerabilities—the same across all nine stacks—involve the manner in which the so-called Initial Sequence Number (ISN) is generated.
The ISN ensures that every TCP connection is unique, that there are no collisions with other connections, and that no third party can interfere with an ongoing connection. To guarantee this, the ISN is randomly generated so no one can guess the number and use it to hijack an ongoing connection or spoof a new one.
Forescout's analysis showed problems with the manner in which the TCP/IP stacks that were analyzed generate the ISNs. In nine of the 11 stacks, the ISNs were improperly generated, leaving the connections open to attacks. In some cases, the numbers were predictable, and in others, the problem had to do with the underlying algorithm. In other cases, the numbers had constant increments, while others used a combination of values that could be inferred, Forescout said in its report.
"TCP/IP stacks tend to have many critical vulnerabilities that are widespread," says Daniel dos Santos, research manager at Forescout Research Labs.
The vulnerabilities in general tend not to be related to a specific stack vendor or to a stack being open- or closed source. Rather, the problem has to do with code that was designed and implemented decades ago - that there's been relativley little analysis by the security community in this space. "These vulnerabilities are reminiscent of issues seen and fixed in the IT world—think Linux, Windows, UNIX—a long time ago."
Forescout's study involved seven open-source TCP/IP stacks (uIP, FNET, picoTCP, Nut/Net, lwIP, cycloneTCP, and uC/TCP-IP) and four from commercial vendors: MPLAB Net from Microchip; Texas Instruments' NDKTCPIP, ARM's Nanostack, and Siemens' Nucleus NET. Forescout last October informed the vendors and maintainers of these stacks of the vulnerabilities it had discovered; patches or mitigations have been issued for all the vulnerable stacks except for Nut/Net and uIP.
Second Batch of TCP/IP Vulnerabilities
Forsecout's discovery of the ISN vulnerabilities -- which it is collectively calling Number:Jack -- follows a similar disclosure by the company last year of 33 memory corruption vulnerabilities in TCP/IP implementations in products from 150 vendors. According to the company those vulnerabilities, dubbed Amnesia:33, were more severe than the ISN flaws it announced this week. That's because Amnesia:33 allowed for device compromise, remote code execution, data theft, and denial-of-service attacks.
But Dos Santos says that finding and exploiting ISN generation vulnerabilities is much easier for an attacker than discovering and exploiting memory corruption issues. "[That's] because the analysis of the code is more targeted and the exploitation is similar across devices, regardless of specifics of architecture or memory organization."
The bug discoveries are part of a broader Project Memoria initiative by Forescout to analyze the security of widely used TCP/IP stacks.
"Project Memoria was prompted by us recognizing the foundational nature of embedded TCP/IP stacks in modern devices and the fact that these stacks are often 'ancient' pieces of code that get reused many times over," Dos Santos says. The goal is not just to find new vulnerabilities, but to consolidate the knowledge around these types of issues, he says.
Going into the study, Forescout expected to unearth new vulnerabilities in TCP/IP, but not at the scale it has, he says. What the research has shown is that these stacks have several vulnerabilities and often in the same places.
"We tend to find these 'anti-patterns' repeated over and over again," Dos Santos notes. "The ISN issue is a typical example of a very specific feature that is vulnerable in almost every instance we analyzed."
In its report this week Forescout pointed to several public use cases of the TCP/IP stacks that the company analyzed, including in medical devices, IT storage systems, wind-turbine monitoring systems, and remote terminal units.
The company says that organizations using devices with these stacks should consider employing encrypted connections and limiting exposure of the devices to the Internet.
To mitigate risk of exposure to these vulns, Forescout recommends using IPSec encrypted connections, limiting the network exposure of critical vulnerable devices, and patching whenever device vendors release advisories. The security vendor also advocates that organizations discover and inventory devices with buggy TCP/IP stacks, and segment their network to minimize damage.