Quantcast
Channel: Tenable Blog
Viewing all articles
Browse latest Browse all 1935

NUMBER:JACK: Nine Vulnerabilities Across Multiple Open Source TCP/IP Stacks

$
0
0

Nine new vulnerabilities have been identified across several TCP/IP stacks embedded in millions of OT, IoT and IT devices, spurring continued scrutiny of these already vulnerable asset types.

Background

On February 10, researchers at Forescout published a report called NUMBER:JACK, which details nine vulnerabilities discovered across nine open source TCP/IP stacks. The prevalence of these stacks across embedded devices is significant. NUMBER:JACK follows in the footsteps of AMNESIA:33, a previous report by the same researchers that detailed 33 vulnerabilities across four open source TCP/IP stacks, affecting millions of operational technology (OT), internet of things (IoT) and IT devices. NUMBER:JACK adds seven additional vulnerable TCP/IP stacks, and many millions more potentially impacted devices.

Analysis

Of the nine vulnerabilities included in the NUMBER:JACK report, four exist in the same stacks that were examined during the AMNESIA:33 research (highlighted in bold below). The nine vulnerabilities are identified as follows:

CVEAffected TCP/IP StackCVSSv3
CVE-2020-27213Ethernut (Nut/Net)7.5
CVE-2020-27630uC/TCP-IP7.5
CVE-2020-27631CycloneTCP7.5
CVE-2020-27632NDKTCPIP7.5
CVE-2020-27633FNET7.5
CVE-2020-27634uIP/Contiki-OS/Contiki-NG7.5
CVE-2020-27635picoTCP7.5
CVE-2020-27636MPLAB Net7.5
CVE-2020-28388Nucleus NET6.5

Flaw stems from weakness in TCP/IP Initial Sequence Number (ISN) generation

All nine vulnerabilities are linked to the same type of flaw: a weakness in the TCP/IP protocol’s generation of the Initial Sequence Number (ISN), a 32-bit randomly generated number that is used when establishing a new session. The purpose of the randomization is to ensure connection to the intended device and to prevent an attacker from being able to tamper with an existing connection.

Historical research into sequence number attacks

These findings are the latest in decades worth of research surrounding attacks against sequence numbers. One of the earliest was first published in 1985 by Robert T. Morris. There have been subsequent pieces of research into these types of attacks covered in requests for comments (RFCs) such as RFC1948 and RFC6528.

It appears the flaws identified in NUMBER:JACK are the result of several implementations not adhering to the guidance outlined in these RFCs as well as the usage of a poor pseudorandom number generator (PRNG) algorithm.

NUMBER:JACK vulnerabilities are limited in impact, but far easier to identify

Unlike AMNESIA:33, which included several critical memory corruption flaws, the vulnerabilities identified in NUMBER:JACK are less critical, which is why none of them received a CVSSv3 score of greater than 7.5. However, despite the lack of criticality, the flaws are much easier for attackers to identify, making them more likely to be exploited.

An attacker that is able to exploit these flaws could cause a denial of service against a vulnerable device, perform an authentication bypass or malicious code injection.

Proof of concept

At the time this blog post was published, there was no proof-of-concept (PoC) code for any of the nine vulnerabilities identified in NUMBER:JACK.

Solution

Each of the maintainers/vendors of the TCP/IP stacks identified through this research were notified of these flaws in October 2020. The following table contains the list of the stacks, their vulnerable versions and fixed versions if available.

Affected TCP/IP Stack Vulnerable VersionFixed Version
CycloneTCP1.9.62.0.0
FNET4.6.3Not fixed, documentation updated
MPLAB Net3.6.13.6.4
NDKTCPIP2.257.02 (Processor SDK)
Nucleus NET4.35.2 (and Nucleus ReadyStart v2012.12)
Nut/Net5.1Not Available (In-Progress)
picoTCP1.7.02.1 (with guidance)
uC/TCP-IP3.6.0No longer supported; Upgrade to Micrium OS project instead
uIP, Contiki-OS, Contiki-NG1.0, 3.0, 4.5No Response

Merely identifying these vulnerabilities is just a small part of the broader challenge when dealing with vulnerabilities inside of embedded libraries. The primary issue is about identifying and addressing the underlying assets affected. There are potentially millions of devices from hundreds of vendors across the world that have utilized any one of these TCP/IP stacks. More important than the availability of any given patch is to identify the manufacturers of impacted devices so they can adequately deploy those patches and protect their users.

Identifying affected systems

A list of Tenable plugins to identify these vulnerabilities will appear here as they’re released.

Get more information

Join Tenable's Security Response Team on the Tenable Community.

Learn more about Tenable, the first Cyber Exposure platform for holistic management of your modern attack surface.

Get a free 30-day trial of Tenable.io Vulnerability Management.


Viewing all articles
Browse latest Browse all 1935

Trending Articles