Thunderclap flaws impact how Windows, Mac, Linux handle Thunderbolt peripherals
Windows, Mac, Linux, and FreeBSD systems are all impacted by a new vulnerability that was disclosed this week at the NDSS 2019 security conference.
The vulnerability –named Thunderclap– affects the way Thunderbolt-based peripherals are allowed to connect and interact with these operating systems, allowing a malicious device to steal data directly from the operating system’s memory, including highly sensitive information.
The research team behind this vulnerability says that “all Apple laptops and desktops produced since 2011 are vulnerable, with the exception of the 12-inch MacBook.”
Similarly, “many laptops, and some desktops, designed to run Windows or Linux produced since 2016 are also affected,” as long as they support Thunderbolt interfacing.
What is Thunderbolt?
Thunderbolt is the name of a hardware interface designed by Apple and Intel to allow the connection of external peripherals (keyboards, chargers, video projectors, network cards, etc.) to a computer.
These interfaces became wildly popular because they combined different technologies into one single cable, such as the ability to transmit DC power (for charging purposes), serial data (via PCI Express), and video output (via DisplayPort).
The technology was initially available for Apple devices but was later made available for all hardware vendors, becoming ubiquitous nowadays, especially thanks to the standard’s latest version, Thunderbolt 3.
But according to the research team, all Thunderbolt versions are affected by Thunderclap. This means Thunderbolt 1 and 2 (the interface versions that use a Mini DisplayPort [MDP] connector) and Thunderbolt 3 (the one that works via USB-C ports).
What is Thunderclap?
Thunderclap is a collection of flaws in the way the Thunderbolt hardware interface has been implemented on operating systems.
At the core of this vulnerability, researchers say they are exploiting an OS design issue where the operating system automatically puts faith in any newly connected peripheral, granting it access to all of its memory –a state known as Direct Memory Access (DMA).
Thunderclap flaws allow attackers to create malicious, but fully-working peripherals that when connected via a Thunderbolt-capable port can perform their normal operations, but also run malicious code in the operating system’s background without any restriction from the operating.
This makes the Thunderclap attack highly dangerous, as it can be easily hidden inside any peripheral.
The Thunderclap vulnerabilities are even capable of bypassing an OS security feature known as Input-Output Memory Management Units (IOMMUs) that hardware and OS makers have created in the early 2000s to counter malicious peripherals that abuse their access to the entire OS memory (in what’s known as a DMA attack).
The reason why Thunderclap vulnerabilities work against IOMMU is either because operating systems disable this feature by default, or, in cases the feature has been enabled by the user, the OS leaves user data in the same memory space where the malicious peripheral runs its exploit code, making IOMMU useless.
What’s being done about it?
Researchers from the University of Cambridge, Rice University, and SRI International discovered the Thunderclap issues back in 2016, and they’ve been working with hardware and OS versions for three years in complete silence to have them fixed.
However, despite the almost three-year warning, OS makers have been slow to react, with most of the Thunderclap attack variations described in a research paper published today still working. Here’s the current state of patches, according to researchers:
Windows – “Microsoft have enabled support for the IOMMU for Thunderbolt devices in Windows 10 version 1803, which shipped in 2018. Earlier hardware upgraded to 1803 requires a firmware update from the vendor. This brings them into line with the baseline for our work, however the more complex vulnerabilities we describe remain relevant.”
macOS – “In macOS 10.12.4 and later, Apple addressed the specific network card vulnerability we used to achieve a root shell. However the general scope of our work still applies; in particular that Thunderbolt devices have access to all network traffic and sometimes keystrokes and framebuffer data.”
Linux – “Recently, Intel have contributed patches to version 5.0 of the Linux kernel (shortly to be released) that enable the IOMMU for Thunderbolt and prevent the protection-bypass vulnerability that uses the ATS feature of PCI Express.”
FreeBSD – “The FreeBSD Project indicated that malicious peripheral devices are not currently within their threat model for security response. However, FreeBSD does not currently support Thunderbolt hotplugging.”
As the table below shows, most Thunderclap flaws are still unpatched.
In the meantime, users are advised to disable Thunderbolt ports via BIOS/UEFI firmware settings and to avoid plugging in peripherals from untrusted sources.
Technical details about the Thunderclap flaws are available in a research paper entitled “Thunderclap: Exploring Vulnerabilities in Operating System IOMMU Protection via DMA from Untrustworthy Peripherals,” available for download in PDF format from here and here, with more details here.
The research team also released the “Thunderclap platform” on GitHub, which is a collection of ready-made proof-of-concept code to create malicious Thunderclap peripherals.
As a closing note, Thunderclap vulnerabilities can also be exploited by compromised PCI Express (PCIe) peripherals, such as plug-in cards or chips soldered to the motherboard, but these attacks require compromising the peripheral’s firmware, making the attack much harder to pull off than just plugging in a charger or video projector via a Thunderbolt interface.