⇒ The PoC embargo period is over and it is available at BrakTooth PoC Website (GitHub).
⇒ BrakTooth research was leveraged into improvements in Keysight IoT Security Assessment software. See the official press release from Keysight.
8th November of 2021: Mediatek has produced firmware
patches for V10-V12. Such patches will be available to the
end-user as soon as the OEMs employs them in their next
security patch update. Make sure to keep your Mediatek devices
updated to obtain patches for:
Mediatek Host Conn. Flooding (8.10) - CVE-2022-20021
Mediatek Same Host Connection (8.11) - CVE-2022-20022
Mediatek AU Rand Flooding (8.12) - CVE-2022-20023
1st November of 2021: We have updated Table 5 with additional affected devices. Such affected devices were reported directly to us by the following chipset vendors: Samsung, Mediatek and Airoha. We will update Table 5 for any additional patch status updates from such vendors. Furthermore, Qualcomm has issued CVEs for V6 (8.6) and V15 (8.15).
BrakTooth affects certain MacBooks and iPhones as independently reported by seemolab. For more information check their blogpost.
31st August of 2021: As of today, vulnerabilities V6, V15 and V16 are pending CVE trackers. These vulnerabilities affect Qualcomm and Intel which are vendors that can issue CVEs by themselves (CVE Numbering Authorities - CNA). However, their default policy is to issue CVEs only after a patch has been distributed. Therefore, Table 2 will be updated accordingly once fixes for V6, V15 and V16 are available. Regarding the availability of patches, when our team had contacted Intel, we were informed that their next patch is scheduled to be released by the end of October 2021. Similarly, we are also informed by Qualcomm that their patch for V15 will take another few months to be propagated.
Bluetooth Classic (BT) protocol is a widely used wireless protocol in laptops, handheld devices, and audio devices. BT main procedures are shown in Figure 1 for reference. In the past few years, Bluetooth has come under scrutiny due to the discovery of several critical vulnerabilities. In this report, we disclose BrakTooth , a family of new security vulnerabilities in commercial BT stacks that range from denial of service (DoS) via firmware crashes and deadlocks in commodity hardware to arbitrary code execution (ACE) in certain IoTs. We have evaluated 13 BT devices from 11 vendors. We have discovered a total of 16 new security vulnerabilities, with 25 common vulnerability exposures (CVEs) already assigned and two (2) are pending CVE assignment from Intel.
All the vulnerabilities are already reported to the respective vendors, with several vulnerabilities already patched and the rest being in the process of replication and patching. Moreover, four of the BrakTooth vulnerabilities have received bug bounty from Espressif System and Xiaomi. An exploration on Bluetooth listing [33] reveals that BrakTooth affects over 1400 product listings. BrakTooth exposes fundamental attack vectors in the closed BT stack.
As the BT stack is often shared across many products, it is highly probable that many other products (beyond the ≈1400 entries observed in Bluetooth listing) are affected by BrakTooth. Therefore, we suggest vendors producing BT system-on-chips (SoCs), BT modules or BT end products to use the BrakTooth proof-of-concept (PoC) code to validate their BT stack implementation. The availability of the BrakTooth PoC is discussed at the end of this report.
The code name BrakTooth is the combination of two words: 1) Brak and 2) Tooth. While the word Tooth is clearly pointing towards Bluetooth targets, the word Brak is Norwegian and translates to crash in English. The BrakTooth family of vulnerabilities affect Bluetooth enabled devices by continuously crashing or deadlocking them, while some result in more serious consequences such as arbitrary code execution.
Figure 2 showcases the generic scenario in which BrakTooth attacks are performed. The attacker only requires (1) a cheap ESP32 development kit (ESP-WROVER-KIT [38]) with a custom (non-compliant) LMP firmware and (2) a PC to run the PoC tool. The PoC tool communicates with the ESP32 board via serial port (/dev/ttyUSB1) and launches the attacks according to the specified target BDAddress (<target bdaddr>) and exploit name parameter (<exploit_name>).
Furthermore, the PoC tool logs over-the-air (OTA) packets and checks the health of the target by getting a paging timeout (no response) or alternatively getting status directly from the target via a serial port, ssh connection, etc.
Due to some vendors having a fixed release schedule, we will release the Proof of Concept (PoC) tool publicly only at the end of October 2021. This is the time when we expect most vendors to have released their patches. In the meantime, any BT semiconductor or module vendor can acquire the PoC by filling up a simple form at the BrakTooth PoC website.
BT SoC Vendor | BT SoC | Dev. Kit / Product | Sample Code
|
Bluetooth 5.2 | |||
Intel | AX200 | Laptop Forge15-R | N.A |
Qualcomm | WCN3990 | Xioami Pocophone F1 | N.A |
Bluetooth 5.1 | |||
Texas Instruments | CC2564C | CC256XCQFN-EM | SPPDMMultiDemo |
Zhuhai Jieli Technology | AC6366C | AC6366C_DEMO_V1.0 | app_keyboard |
Bluetooth 5.0 | |||
Cypress | CYW20735B1 | CYW920735Q60EVB-01 | rfcomm_serial_port |
Bluetrum Technology | AB5301A | AB32VG1 | Default |
Zhuhai Jieli Technology | AC6925C | XY-WRBT Module | N.A |
Actions Technology | ATS281X | Xiaomi MDZ-36-DB | N.A |
Bluetooth 4.2 | |||
Zhuhai Jieli Technology | AC6905X | BT Audio Receiver | N.A |
Espressif Systems | ESP32 | ESP-WROVER-KIT | bt_spp_acceptor |
Bluetooth 4.1 | |||
Harman International | JX25X | JBL TUNE500BT | N.A |
Bluetooth 4.0 | |||
Qualcomm | CSR 8811 | Laird DVK-BT900-SA | vspspp.server.at |
Bluetooth 3.0 + HS | |||
Silabs | WT32i | DKWT32I-A | ai-6.3.0-1149 |
Anomalies | CVE ID(s) | Device(s) | State(s) | Target Layer(s) | Impact Type | Compliance Violated
| ||||||||||||||||||||||||||||||||||||||||||||||||
8.1 V1 Feature Pages Execution | CVE-2021-28139 | ESP-WROVER-KIT | Feature Exchange | LMP | ACE / Deadlock | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.2 V2 Truncated SCO Link Request | CVE-2021-34144 | AC6366C_DEMO_V1.0 | After Paging | LMP | Deadlock | [V.2] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.3 V3 Duplicated IOCAP | CVE-2021-28136 | ESP-WROVER-KIT | Bounding | LMP | Crash | [V.2] Part C, Sec. 4.2.7.1 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.4 V4 Feature Resp. Flooding |
|
| After Paging | LMP | Crash | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.5 V5 LMP Auto Rate Overflow |
|
| Data Rate Change | Baseband | Crash | [V.2] Part B, Sec. 6.6.2 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.6 V6 LMP 2-DH1 Overflow | CVE-2021-35093 | DVK-BT900-SA | After EDR Change | Baseband | Deadlock | [V.2] Part C, Sec. 2.3 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.7 V7 LMP DM1 Overflow | CVE-2021-34150 | AB32VG1 | Many | Baseband | Deadlock | [V.2] Part B, Sec. 6.5.4.1 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.8 V8 Truncated LMP Accepted | CVE-2021-31613 |
| Many | LMP | Crash | [V.2] Part C, Sec. 5.1 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.9 V9 Invalid Setup Complete | CVE-2021-31611 |
| Feature Exchange | LMP | Deadlock | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.10 V10 Host Conn. Flooding |
|
| Host Connection | LMP | Deadlock | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.11 V11 Same Host Connection |
|
| Host Connection | LMP | Deadlock | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.12 V12 AU Rand Flooding |
|
| After Paging | LMP |
| [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.13 V13 Invalid Max Slot Type | CVE-2021-34145 | CYW920735Q60EVB | After Setup Complete | Baseband | Crash | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.14 V14 Max Slot Length Overflow | CVE-2021-34148 | CYW920735Q60EVB | After Setup Complete | Baseband | Crash | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.15 V15 Invalid Timing Accuracy |
|
| Timing Accuracy | LMP, Baseband | Crash | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
8.16 V16 Paging Scan Deadlock | CVE-2021-33155 | Intel AX200 | After Host Connection | LMP, Baseband | Deadlock | [V.1] Part E, Sec. 2.7 | ||||||||||||||||||||||||||||||||||||||||||||||||
A1 Accepts Lower LMP Length | N.A | All tested, expect ESP32 | Many | Baseband | Non-Compliance | [V.2] Part C, Sec. 5.1 | ||||||||||||||||||||||||||||||||||||||||||||||||
A2 Accepts Higher LMP Length | N.A | All tested devices | Many | Baseband | Non-Compliance | [V.2] Part C, Sec. 5.1 | ||||||||||||||||||||||||||||||||||||||||||||||||
A3 Allows Multiple Encryption Start | N.A | Xiaomi MDZ-36-DB | After Encryption Start | LMP | Non-Compliance | [V.2] Part C, Sec. 4.2.5.3 | ||||||||||||||||||||||||||||||||||||||||||||||||
A4 Ignored Role Switch Reject | N.A | Pocophone F1 (WCN3990) | Role Switch | LMP | Non-Compliance | [V.2] Part C, Sec. 4.4.2 | ||||||||||||||||||||||||||||||||||||||||||||||||
A5 Invalid Response | N.A |
| Feature Exchange | LMP | Non-Compliance | [V.2] Part C, Sec. 4.3.4 | ||||||||||||||||||||||||||||||||||||||||||||||||
A6 Unexpected Encryption Stop | N.A | CYW920735Q60EVB | After Encryption Start | LMP | Non-Compliance | [V.2] Part C, Sec. 4.2.5.4 | ||||||||||||||||||||||||||||||||||||||||||||||||
A summary of BrakTooth appears in Table 2. In each row, we use the prefix V to identify a security vulnerability and A to indicate an anomalous behaviour (i.e., faulty target responses) that deviates from the Core Specifications [32]. Moreover, Table 2 outlines the respective CVEs, affected devices, protocol layers, and the violated compliance. In summary, we discovered 16 new security vulnerabilities. For all the discovered vulnerabilities, we have followed a responsible disclosure process. Specifically, we have reached out to the affected vendors and we have provided them at least 90 days until the public disclosure of this report. In most cases, we have also actively helped the vendors to reproduce the reported attacks at their end. Several vendors (e.g. Cypress, Bluetrum, Espressif) have already produced patches with many in the process of producing them (e.g. Qualcomm, Intel). The status of patches is discussed in Section 5.
The impact of our discovered vulnerabilities is categorized into (I) crashes and (II) deadlocks. Crashes generally trigger a fatal assertion, segmentation faults due to a buffer or heap overflow within the SoC firmware. Deadlocks, in contrast, lead the target device to a condition in which no further BT communication is possible. This may happen due to the paging scan being forcibly disabled (V16), state machine corruption on V6 or entirely disabling BT functionality via arbitrary code execution (ACE) on V1. Our results affect popular BT vendors (i.e, Intel, Qualcomm, Cypress, Texas Instruments) and relatively less known (i.e., Bluetrum, Jieli Technology, Harman), which are still employed in many consumers products such as BT speakers, keyboards, toys, etc.
V1 affects ESP32, which is used in many products ranging from consumer electronics to industrial equipment such as programmable logic controllers (PLCs). Hence, the impact is significant, as the attacker only requires knowledge of the target BDAddress to launch the attack. Indeed, all the vulnerabilities V1-V16 can be triggered without any previous pairing or authentication. Moreover, the impact of V1-V16 reaches beyond the devices listed in Table 2, since any other BT product employing an affected SoC is also vulnerable.
Multiple Link Manager Protocol (LMP) flooding attacks (e.g., V4, V12) and V15 were detected across SoCs from different BT vendors. Since the affected vendors are majors in their fields (i.e., Intel & Qualcomm), it indicates that there is a lack of flexible tools for over-the-air testing even in 2021. Besides, the Core Specifications only allows a limited "LMP test mode" [32] that restricts the SoC to operate with few LMP procedures.
We created different concrete attacks leveraging the BrakTooth vulnerabilities. In the following, we show three such sample attacks that launch arbitrary code execution (ACE) or Denial of Service (DoS) on target devices.
The most critical vulnerability (V1 in Table 2 - 8.1) affects ESP32 SoC [37], which is used in many Wi-Fi and Bluetooth IoT appliances such as Industry Automation, Smart Home, Fitness, etc. The attack is illustrated in Figure 3. A lack of out-of-bounds check in ESP32 BT Library [11] allows the reception of a mutated LMP_feature_response_ext. This results in the injection of eight bytes of arbitrary data outside the bounds of Extended Feature Page Table ("E. Features Table" in Figure 3). An attacker, which knows the firmware layout of a target device, can write a known function address (JMP Addr.) to the offset pointed by Features Page ("Feat. Page" in the LMP_feature_response_ext packet) field. It turns out that the BT Library stores some callback pointers within the out-of-bounds Features Page offset and such a callback is eventually invoked during the BT connection. While exploiting this vulnerability, we forced ESP32 into erasing its NVRAM data (normally written during product manufacturing) by setting JMP Addr. to the address of nvs_flash_erase. Such erase function is always included in ESP32 SDK [9] and therefore, it is present in any ESP32 firmware. Similarly, disabling BT or BLE can be done via esp_bt_controller_disable and Wi-Fi via disable_wifi_agc. Additionally, general-purpose input/output (GPIO) can be controlled if the attacker knows addresses to functions controlling actuators attached to ESP32. As expected, this has serious implications if such an attack is applied to Bluetooth-enabled Smart Home products.
We discuss two sample DoS attacks discovered on laptops and smartphones employing Intel AX200 SoCs [20] and Qualcomm WCN3990 SoC [34]. Due to the number of smartphones and laptops vulnerable to such attacks, and the common use of BT connectivity during video conference calls and music streaming, updating the affected devices is essential.
The first DoS (Invalid Timing Accuracy - 8.15) is due to a failure in the SoC to free resources upon receiving an invalid LMP_timing_accuracy_response from a BT slave. The attacker can exhaust the SoC by (a) paging, (b) sending the malformed packet, and (c) disconnecting without sending LMP_detach. These steps are repeated with a different BT address (i.e., BDAddress) until the SoC is exhausted from accepting new connections. On exhaustion, the SoC fails to recover itself and disrupts current active connections, triggering firmware crashes sporadically. This vulnerability allows an attacker to forcibly disconnect slave BT devices currently connected to AX200 under Windows or Linux Laptops. Similarly, Android phones such as Pocophone F1 and Oppo Reno 5G [26] experience BT disruptions. For example, users connected to BT Headsets experience audio to be continuously "cut" during the attack. This also results in firmware crashes and restart of Android BT Service. In all cases, the OS tries to recover connectivity which can be continuously disrupted.
The second DoS (Paging Scan Disable - 8.16) affects only devices using Intel AX200 and it is triggered when an oversized LMP_timing_accuracy_request (>17 bytes) is sent to AX200 slave. This temporarily corrupts AX200 firmware, which responds incorrectly during a subsequent BT connection and eventually disables the paging scan procedure (cf., Figure 1). Thus, scanning AX200 works, but no connection is established from an external BT device. Therefore, this attack can be used to trick an user to connect to the attacker’s BT hardware instead of the legitimate target since AX200 paging scan is disabled. Indeed, the user needs to manually re-enable BT to restore functionality. The attack is also used to disconnect certain master BT devices connected to a vulnerable Laptop. This leads to sporadic BT firmware crashes.
Many vulnerabilities were discovered while testing with a BT Speaker (Mi Portable Bluetooth Speaker - MDZ-36-DB [42]), BT Headphone (JBL TUNE 500BT [21]) and BT Audio Modules (XY-WRBT [29] and an unbranded BT Audio Receiver). The discovered vulnerabilities arise from failures when sending oversized LMP packets (LMP Auto Rate Overflow - 8.5), truncated packets (Truncated LMP Accepted - 8.8), starting procedures out-of-order (Invalid Setup Complete - 8.9) and finally by flooding LMP packets (Feature Response Flooding - 8.4).
The vulnerabilities can "freeze" Xiaomi MDZ-36-DB and completely shut down JBL TUNE 500BT. This requires the user to manually turn on the unresponsive devices. Since both devices accept multiple BT connections, an attack can be triggered while the user is playing some music. As an exception, XY-WRBT and BT Audio Receiver accept only one connection, which avoids an attack to be launched during an active BT connection with the user. Nevertheless, different products employing the same SoC may enable multiple BT connections depending on the product requirements.
Although issues were found in SoCs targeted to Audio products, the BT Implementation can be reused in a number of SoCs destined to different BT products. Hence, our discoveries are not limited to the type of products discussed in this section, but rather to the LMP stack implementation.
In this section, we measure the potential impact of BrakTooth vulnerabilities. To this end, we estimate the number of product listings employing the affected BT chipsets. Each listing may contain one or multiple (up to hundreds) products from the same company. We get such an estimated number by querying the Bluetooth Listings Website [33]. In particular, we use the qualification IDs (QIDs) of each affected SoCs to get their corresponding products listings. The total number of potentially affected product listings is illustrated in Table 3. In summary, as of August 23, 2021, the total number of listings affected is over 1400. We note that even if the number of listings for a major vendor such as Intel seems low, its listings have up to hundreds of product models referenced by popular PC brands such as HP, Asustek, Dell, etc.
Vendor | SoC | QID(s) | Listing(s) Count |
Intel | AX200 | 127398 | 17* |
Texas Instruments | CC2564C | 87924, 126789, 117855 | 14 |
Cypress | CYW20735B1 | 169362, 112768 | 1 |
Bluetrum Technology | AB32VG1 | 115952, 131655 | 201 |
Zhuhai Jieli Technology | AC6905X | 91274 | 341 |
Zhuhai Jieli Technology | AC6925C | 110839 | 376 |
Zhuhai Jieli Technology | AC6366C | 136145 | 173 |
Actions Technology | ATS281X | 124400, 124265 | 47 |
Qualcomm | WCN3990/8 | 96248, 116819 | 22 |
Qualcomm | CSR8811/CSR8510 | 30846, 58778, 70941 | 92 |
Espressif Systems | ESP32 | 116661 (ESP32 Dual-Mode Stack) | 28 |
Harman International | JX25X | 84803, 62232 | 63 |
Silabs | WT32i | 49552 | 48 |
Total Listings | 1423 | ||
It is worthwhile to mention that while we can get the total number of registered products within Bluetooth Listings website for a certain chipset QID, it only reveals a lower-bound of the exact total number of listings employing a particular chipset. This is because product vendors may choose to customize the design. In this case, the QID of the employed chipset or BT stack is written to a field called Combined Designs. Unfortunately, the Bluetooth Listings site do not cross-reference Combined Designs when searching for a QID, which makes it almost impossible to get the total number of products employing a particular chipset. Furthermore, products employing modules derived from chipsets such as ESP32, CSR8811, etc are also not shown during the search of a chipset QID.
In conclusion, the total number of individual product models that are potentially affected by BrakTooth could be an order of magnitude higher than the listings estimated in Table 3.
Product Vendor | Product Type | Product Model | SoC Model | Declaration ID | |||||||||||||||||
Microsoft | Laptop |
| Intel AX200 | D048122 | |||||||||||||||||
Dell |
|
| Intel AX200 | D044215 | |||||||||||||||||
Sony | Smartphone | Xperia XZ2 | WCN3990 | D048452 | |||||||||||||||||
Oppo | Smartphone | Reno 5G CH1921 | WCN3998 | D044072 | |||||||||||||||||
Ericsson | Home Entertainment Hub | KDE20102 | CSR8510 | D054397 | |||||||||||||||||
Volvo Technology | Automotive Infotainment |
| CSR8811/510 | D053903 | |||||||||||||||||
Hella GmbH | Electronic Control Unit | PMP3 | CC2564C | D044076 | |||||||||||||||||
Walmart Stores | Audio |
| Jieli AC63XX | D049113 | |||||||||||||||||
Walmart Stores | Audio |
| ATS281X | D048582 | |||||||||||||||||
Panasonic | Audio | Sound Bar SC-HTB100 | ATS281X | D053923 | |||||||||||||||||
Becker Avionics | Aircraft Entertainment System |
| WT32i | D044945 | |||||||||||||||||
u-box | Industrial IoT Module | NINA-W106 | ESP32 | D050596 | |||||||||||||||||
Koyo Electronics | PLC (Industrial Automation) | C2-02CPU | ESP32 | D050601 | |||||||||||||||||
From the listings shown in Table 3, we capture some interesting products employing the vulnerable chipsets and list them in Table 4. The observed types of products range from audio appliances (BT Speakers, headsets, ambience, etc) to personal PC/laptop computers, smartphones, and surprisingly even automotive multimedia electronic control units (PMP3), automotive infotainment systems (Volvo FH) and in-flight audio systems such as AMU6500. Notably Volvo FH and AMU6500 are employing Qualcomm CSR8811/510 and Silabs WT32i chipsets, respectively. As discussed in Section 5, the Qualcomm CSR8811/510 is unlikely to receive a patch (affected by V6) and we are not able to receive a response from Silicon Labs regarding their status of the investigation on Silabs WT32i (affected by V5).
It is important to clarify that any product employing a vulnerable Bluetooth chipset, is not necessarily insecure (nevertheless, affected due to BT connectivity being impaired). The overall security of an end-product, which has an internal chipset with firmware flaws, depends on how much the product relies on such a vulnerable chipset for its main functionality.
Figure 4 showcases common BT product design strategies and their dependency on the BT chipset or stack.
1. In the Isolated Design, products may have their main processor application (Product SW) communicating with a standalone BT chipset via a simplistic interface (e.g., serial AT commands, SPI/I2C transfers, etc). Such products may not need targeted handling of vulnerabilities in the BT stack and therefore are less impacted by a vulnerable BT chipset. This means that BT vulnerabilities are not likely to affect the Product SW or at least, the design allows to fully isolate attacks coming from a vulnerable chipset. WT32i is an example of such a BT Standalone chipset.
2. In between, a Mixed Design, which shares the BT stack between the main processor and the BT controller, are somewhat susceptible to attacks on the specific part of the BT stack. Since BrakTooth affects the BT Baseband or LMP implementation, the host stack is not affected directly. However, since both the BT Controller Stack and the BT Host Stack are continuously communicating depending on what happens inside the BT Controller, issues on the Product SW could arise if the HCI interface hangs. HCI interface may also misbehave in terms of whether the BT Controller provides expected responses or not. Therefore, it is up to the product software designer to investigate and handle all potential issues that can arise in the BT host stack. In general, this involves significant expertise and cannot be easily derived. The Mixed Design choice was unfortunately observed to affect products that rely on MSP432 as the main processor and Texas Instruments CC2564C as the BT controller when we had tested a sample code from TI’s BT stack (CC2564CMSP432BTBLESW1 (v4.2.1.1) + Service pack v1.4). In this context, attack V12 (8.12) causes a temporary hang on MSP432, which could cause an impact on the underlying product. In contrast, operating systems in smartphones and laptops have a mature mechanism to handle BT controller hardware errors originated from attacks in the BT controller. See Section 4.2 where we illustrate the impact of BrakTooth attacks on smartphones and laptops.
3. Lastly, we have the Fully Integrated Design, which is an obvious choice for cost reduction and is widely deployed for IoTs, speakers, headphones, and computer accessories. This design is susceptible to BrakTooth hangs, crashes, and RCE directly on the main product functionalities. Such is due to both the Product SW and BT Stack being coexistent on the same hardware. This is exemplified by V1 attack (8.1), which affects ESP32 running Bluedroid BR/EDR stack.
To conclude, the assessment of a product based on its dependency on the BT chipset is a fundamental approach to understand and calculate the final risk factors. Nevertheless, since BrakTooth affects the lower layers of several BT implementations, at least BT connectivity is impaired regardless of the design choice. Therefore, this should be taken into consideration when evaluating the product risks. Specifically, it needs to be evaluated whether a stable BT connectivity is always required for the assessed product to properly function.
SoC or Module Vendor | BT SoC | Firmware or SDK Ver. | Vuln. / Anomalies | Patch Status | ||||||
Espressif Systems | ESP32 | esp-idf-4.4 | V1,V3-4 / A1 | [36, 12] Available | ||||||
Intel | AX200 |
| V15-16 / A1-2, A5 | TBA | ||||||
Qualcomm | WCN3990/8 | crbtfw21.tlv, patch 0x0002 | V15 / A1-2,A4 | TBA | ||||||
Qualcomm | CSR8811/CSR8510 | v9.1.12.14 | V6 / A1-2 | No fix | ||||||
Texas Instruments | CC2564C | cc256xc_bt_sp_v1.4 | V12 / A1-2 | No fix | ||||||
Infineon (Cypress) | CYW20735B1 | WICED SDK 2.9.0 | V12-15 / A2,A6 | [17] Available | ||||||
Bluetrum Technology | AB5301A | V06X_S6645 (LMP Subver. 3) | V7,V12 / A1-2 | Available * | ||||||
Zhuhai Jieli Technology | AC6925C | unspecified (LMP Subver. 12576) | V8-9 / A1-2 | Investigation in progress | ||||||
Zhuhai Jieli Technology | AC6905X | unspecified (LMP Subver. 12576) | V5,V8-9 / A1-2 | Investigation in progress | ||||||
Zhuhai Jieli Technology | AC6366C | fw-AC63_BT_SDK 0.9.0 | V2,V12 / A1-2 | [22] Available | ||||||
Actions Technology | ATS281X | unspecified (LMP Subver. 5200) | V4,V10-11 / A1-2 | Investigation in progress | ||||||
Harman International | JX25X | unspecified (LMP Subver. 5063) | V4 / A1-2 | Patch in progress | ||||||
Silabs | WT32i | iWRAP 6.3.0 build 1149 | V5 / A1-2 | Investigation in progress | ||||||
Samsung † | Not Disclosed | Not Disclosed | V4,V6,V12 | TBA | ||||||
Mediatek † | Not Disclosed | Not Disclosed | V10-V12 | TBA | ||||||
Airoha † | Not Disclosed | Not Disclosed | Not Disclosed | TBA | ||||||
Table 5 captures the affected vendors and the status of their investigation. We categorize the status of the investigation in the following forms:
We observe that Espressif Systems, Infineon (former Cypress) and Bluetrum have so far produced the patches. All other vendors are currently at the stage of investigation or patch development of the reported issues. We are working with the vendors to help them reproduce the issues in their systems such that patches are available to the public.
The vendor Texas Instruments has successfully replicated the security issue, however, at this stage has no plan for producing a patch. In particular, according to the Texas Instruments PSIRT team, they will consider producing a patch only if requested by customers. Through technical analysis, TI PSIRT concluded the potential vulnerability causes the CC256x device to enter a deadlock state, resulting in a denial of service, which could impact the availability to the user, but does not impact sensitive information in the system.
Our team approached Qualcomm to inquire whether a patch would be available for the affected devices. We were informed that they are working on a fix for WCN3990/8 and that the security issue reported in Qualcomm CSR8811A08 [28] has been fixed since 2011 only for ROM Versions A12 and beyond. However, new products in 2021 are still being listed to use CSR8811A08, which has no plan to be fixed. Moreover, a patch for the issue on CSR8510A10 [27] that causes V6 (see Section 8.6) is not possible for CSR8510A10 due to the lack of ROM patch space.
Zhuhai Jieli Technology confirmed that a fix for AC6366C [40] would be released soon, but they did not confirm whether a patch would also be available to their other audio devices AC6925C and AC6905X. Finally, we notice for certain vendors (e.g. Harman International, Silabs), the investigation status is unclear, as indicated by the Pending status in Table 5.
As part of our work of reverse engineering ESP32 BT stack, we are releasing to the community a low-cost BT Classic (BR/EDR) Active Sniffer which is available at the following URL:
At the time of writing, this is the cheapest BR/EDR active sniffer, we are aware of due to the low price of ESP32 boards. ESP32-PICO-KIT can be purchased for $14.80 [25], but it is possible to find alternative ESP32 boards on AliExpress for as low as $4 [10].
Note that differently than passive sniffers, which does not interact with the network, the ESP32 active sniffer must act as either a BT Master or Slave device within the BT piconet. As exemplified in Figure 5, the sniffer logs BT BR/EDR OTA protocols such as Baseband header, FHS, LMP, and ACL packets. The sniffer cannot be used to inject packets at the moment due to the PoC embargo. The embargo will be lifted at the end of October 2021 and our full PoC tool will be made available to the public for research and reproduction. Nevertheless, some open-source tools such as InternalBlue BT patching framework [6] and Ubertooth experimental BTBR implementation [16] could be used by someone with certain BT firmware skill to attempt triggering BrakTooth LMP attacks.
In recent years, Bluetooth has come under scrutiny due to several design and implementation level vulnerabilities, such as KNOB [3], BIAS [2], SweynTooth [15], BLESA [41], BlueMirror [7], etc. Our previous disclosure of SweynTooth [15] vulnerabilities (2020) has clearly indicated the lack of basic tests in Bluetooth certification to validate the security of Bluetooth Low Energy (BLE) devices. The BrakTooth family of vulnerabilities revisits and reasserts this issue in the case of the older, but yet heavily used Bluetooth classic (BR/EDR) protocol implementations. Additionally, during the responsible disclosure period, we had the following observations that might shed light on the future research in Bluetooth security.
Replication difficulty: Bluetooth Core Specifications allows a limited "LMP test mode" [32]. This limits the vendors to operate with only a few LMP procedures and therefore, the vendors are unlikely to have full control over the messages exchanged over all LMP procedures without expensive certification hardware. All BrakTooth vulnerabilities V1-V16 involve specific mutation or duplication to create potentially unexpected scenarios in the Bluetooth link manager (see Section 8 for details). We postulate that due to the lack of tools (or flexibility thereof) to control all LMP procedures, BT devices were not tested thoroughly on such uncommon scenarios. This is also evident during our communication even with popular BT vendors (e.g. Intel, Cypress, and Qualcomm). Specifically, in contrast to our disclosure of SweynTooth [15] vulnerabilities, we experienced the following crucial differences: 1) The replication of BrakTooth vulnerabilities involves significantly more interaction with the vendors. In the past, our experience with BLE vendors suggests that they were able to use in-house tools (without using our custom fuzzer) to replicate the SweynTooth vulnerabilities. However, while replicating BrakTooth , vendors had to use the exact setup used to discover BrakTooth vulnerabilities. This involves the usage of the ESP32 device, the custom LMP firmware and the BrakTooth PoC tool (see Figure 2). We believe such is the case due to the lack of BT tooling for comprehensively testing the security of Bluetooth link manager implementations under unexpected packet exchanges. Thankfully, our PoC brings the control over LMP to the host, dismissing the need to change the BT firmware just to create specific test cases. This approach was inspired from our previous work with the "SweynTooth Non-Compliant BLE Controller" [15].
Downstream dependency: During the responsible disclosure period, we experienced that it is impossible for certain BT module vendors to produce a patch due to their dependency on downstream vendors. Specifically, this was observed while reporting the vulnerability V6 (LMP 2-DH1 Overflow) for Laird BT900 and BT820 SoC devices. A discussion with Laird Technologies, Inc. revealed that the underlying LMP Stack used by both BT900 (CSR8811) and BT820 (CSR8510) devices is Stonestreet One’s Bluetopia stack (currently acquired by Qualcomm) and the rectification of V6 requires the support of Qualcomm. After a discussion between our team and Laird Connectivity, it was revealed (from Laird Connectivity contacting Qualcomm internal support forum) that the CSR8811 has no patch space available and therefore, the vulnerability V6 is not possible to fix. In other words, any devices using CSR8811, including but not limited to BT900 and BT820 SoC devices, are likely to remain vulnerable forever. This clearly shows the complexity of resolving IoT vulnerabilities due to the downstream dependencies on multiple vendors. The implication of such a problem is not trivial to gauge. Considering that certain devices may remain vulnerable for a prolonged time, it is advised that the IoT module and product vendors conduct a thorough risk assessment. This is particularly important if the target module or product uses a vulnerable component where patching is difficult due to software lock-down (similar to CSR8811).
Reverse engineering effort: During our research on Bluetooth Link Manager testing, we clearly observe the gap of security testing tools to validate arbitrary BT devices. While there exists emulation-based approaches [30], these works need to spend significant effort in reverse engineering the target devices (if at all possible). The absence of any open source and feature-complete Bluetooth LMP stack further complicates the security testing problem. During our research, we have designed a fuzzing interface by reverse-engineering the ESP32 BT stack which is located in the static library libbtdm_app.a [11] and ESP32 ROM memory. The reverse engineering effort was utilized to design a (non-compliant) LMP firmware that can be used off-the-shelf to validate any devices with BR/EDR functionality. While the reverse-engineering effort of a commodity BT stack was significant, we believe that the effort was fruitful and necessary in comprehensively analysing the security of any BT implementations in the wild. As discussed in the preceding paragraphs, we also experienced that even major industries lack flexible tools for comprehensively testing BT Link Managers.
In this section, we provide a detailed description of each vulnerability, the affected system-on-chip (SoC) models and the SDKs where applicable. Some vulnerabilities were discovered when testing developments kits and others were detected by testing final products (e.g. speakers or headphones).
The Bluetooth Classic implementation in Espressif ESP-IDF 4.4 and earlier [9] does not properly restrict the Feature Page upon reception of an LMP Feature Response Extended packet, allowing attackers in radio range to trigger arbitrary code execution (ACE) in ESP32 via a crafted Extended Features bitfield payload. As shown in Figure 6, the ACE vulnerability is triggered by simply sending LMP_feature_res_ext with an invalid feature page of 0x62 after LMP Setup procedure (c.f., Figure 1). Moreover, the contents of extended features in the LMP_feature_res_ext can be used to execute code at an arbitrary address within the ESP32 firmware. For example, as described in Section 4.1, such an address may point to the erase function (nvs_flash_erase) and disabling Wi-Fi (disable_wifi_agc), among others.
The Bluetooth Classic implementation in the Zhuhai Jieli AC6366C BT SDK 0.9.1 and earlier [40] does not properly handle the reception of truncated LMP_SCO_Link_Request packets while no other BT connections are active. This allows attackers in radio range to prevent new BT connections (disabling the AC6366C inquiry and page scan procedures) via a crafted LMP packet. The user needs to manually perform a power cycle (restart) of the device to restore BT communication. Following Figure 7, the attack can be launched by sending an LMP_SCO_Link_Request with ACL length=2 instead of its normal size of 7.
The Bluetooth Classic implementation in Espressif ESP-IDF 4.4 and earlier [9] does not properly handle the reception of multiple LMP_IO_Capability_req packets during the pairing process (see Figure 8). This allows attackers in radio range to trigger memory corruption (and consequently a crash) in ESP32 via a replayed (duplicated) LMP packet. The issue was raised due to the sudden disconnection of ESP32 while its bluedroid host stack was still in the pairing process. The patch provided by Espressif rectifies this issue by handling a sudden disconnection during the pairing procedure (c.f., Table 5).
The Bluetooth Classic implementation in Espressif ESP-IDF 4.4 and earlier [9] does not properly handle the reception of continuous unsolicited LMP responses. This allows attackers in radio range to trigger a denial of service (crash) in ESP32 by flooding the target device with LMP Feature Response data. As shown in Figure 9, LMP_features_res packets are sent within a BT transmission slot of 1.25ms, which effectively floods the Slave with unsolicited responses. This attack vector is also effective against a range of other BT chipsets such as JBL TUNE500BT [21] and Xiaomi MDZ-36-DB (Actions Semi. ATS2815) [42, 39]. See Table 2 for all the targets affected by V4.
The Bluetooth Classic implementation in Silicon Labs iWRAP 6.3.0 and earlier [23] does not properly handle the reception of an oversized LMP packet greater than 17 bytes, allowing attackers in radio range to trigger a crash in WT32i [24] via a crafted LMP packet. As shown in Figure 10, the attack is triggered by sending an LMP with an ACL size higher than 17 bytes. Normally this is not allowed by the BT Core Specification [31], but ESP32 radio can indeed send such oversized LMP packets over the DM1 transport channel. Our proof of concept (PoC) firmware bypasses some length checks on the transmission path to make this possible. This attack vector also works on some Jieli AC6905X (BT Audio Receiver). Note that this attack requires sending this malformed packet many times over many reconnections to trigger a firmware crash. Particularly, a firmware crash on WT32i may take around 3-5 minutes to be triggered.
The Bluetooth Classic implementation on Laird CSR8811 A08 [28] and CSR8510 A10 [27] SoCs allows an LMP length overflow over 2-DH1, resulting in a Deadlock (state machine or packet handler corruption) outcome. Figure 11 captures the sequence of messages exchanged to expose this vulnerability. In particular, the attack is performed by changing the transport type of the normal LMP packet to 2-DH1 and then adding more bytes to the LMP payload. This, for example, results in a total ACL length of 27.
The Bluetooth Classic implementation on Bluetrum AB5301A [5] (tested with AB32VG1 dev. kit [4]) with unspecified firmware versions does not properly handle the reception of oversized DM1 LMP packets. This allows attackers in radio range to prevent new BT connections (disabling the AB5301A inquiry and page scan procedures) via a crafted LMP packet. Following Figure 12, an arbitrary LMP packet (LMP_packet_type_table_req) is sent with an ACL length of 31, which is much higher than the expected 17 byte limit for DM1 transport. Due to a lack of check of DM1 length, an undefined behaviour on the target baseband implementation was observed. This eventually disables the paging scan procedure and hence blocks new connections. If the user is already connected to AB5301A and the attack is started (multiple BT connections are allowed), the active connection is not disrupted, but new connections or reconnection is not possible. As compared to V5 (Section 8.5), this attack works with any overflown LMP packet rather than a specific LMP packet.
The Bluetooth Classic implementation on Zhuhai Jieli AC690X and AC692X devices with unknown firmware does not properly handle the reception of a truncated LMP packet during LMP auto rate procedure, allowing attackers in radio range to immediately crash (and restart) a device via a crafted LMP packet. As depicted in Figure 13, an attacker sends a malformed LMP_accepted just after the LMP Setup procedure. This malformed packet has an ACL size of one byte, rather than the expected 2 bytes for the opcode LMP_accepted. The implementation of the target BT device does not properly reject such packets with a truncated size. This eventually results in a firmware crash, which, in turn, triggers a prompt restart.
As the BT implementation of the target is closed source, the exact root cause of this vulnerability is not known. However, it is common that LMP procedures involving slot and rate adjustments are usually implemented in an interrupt handler different than other non-real-time LMP packets, such as feature requests and version requests. Such a handler may miss some checks which are present on the other handlers, explaining why some overflow/underflow attacks only work for certain LMP packet opcodes. This split in the LMP handler is present, for instance, in ESP32 BT implementation.
The Bluetooth Classic implementation on Zhuhai Jieli AC690X and AC692X devices does not properly handle the reception of an out-of-order LMP Setup procedure (c.f., Figure 1) followed by a malformed LMP packet.
This scenario is illustrated in Figure 14. The attacker sends an unexpected (duplicated) LMP_setup_complete, followed by a malformed LMP_features_req_ext with an invalid LMP opcode such as 0x64. The behaviour seen in Figure 14 allows attackers in radio range to deadlock a device via injecting crafted LMP packets. Moreover, the user needs to manually reboot the device to restore communication.
The Bluetooth Classic implementation on Actions ATS2815/ATS2819 [39] chipsets does not properly handle the reception of multiple LMP_host_connection_req as shown in Figure 15. This allows attackers in radio range to trigger a denial of service (deadlock) if no user is connected to the target. Manual user intervention is required to restart the device and restore Bluetooth communication.
The Bluetooth Classic Audio implementation on products based on Actions ATS2815/ATS2819 [39] chipset may not properly handle a connection attempt from a host with the same BDAddress as the currently connected BT host. As illustrated in Figure 16, by simply connecting to the target device (BT Speaker) with a forged BDAddress that matches the BDAddress of the originally connected host (Device A - E0:D4:E8:19:C7:69), the target device triggers a disconnection and eventually deadlocks. This requires the user to reboot the target device to restore BT functionality.
When reaching Actions Semi during the disclosure period, the company has informed us that they recommend the product vendors to only allow one audio BT connection. However, when we tested an ATS chipset based product Xiaomi MDZ-36-DB, we observed that multiple BT connections are allowed, albeit only one device can play audio at a time. Normally, connections with repeated host BDAddress are rejected on LMP Setup procedure (c.f., Figure 1). However, this procedure is successful when testing Xiaomi MDZ-36-DB with repeated host BDAddress, leading the audio device to an undefined state.
The Bluetooth Classic implementation on several chipsets does not properly handle the reception of continuous unsolicited LMP responses that trigger a heap overflow within the BT firmware. This allows attackers in radio range to trigger a denial of service (either restart or deadlock the device) by flooding a device with LMP_AU_rand packet as shown in Figure 17. Only CC2564C [18] from Texas Instruments enters a deadlock state, which requires user intervention to recover. Additionally, use of TI Dual-mode Bluetooth Stack for MSP432 [19] may temporarily hang the host MCU (MSP432) during the attack.
Many major chipset vendors are affected by this attack as shown in Table 2. This attack is similar to Feature Response Flooding (Section 8.4), indicating that flooding testing with packets from certain LMP procedures may not have been well tested. This may arise because the Core Specifications only allows a limited LMP testing mode [32] that restricts the SoC to work with only a few LMP packets. This, in turn, may restrict the test flexibility for BT vendors. Specifically, vendors may have a limited capacity of tests that they can perform with their production BT firmware, such as flooding or sending out-of-order packets during normal LMP procedures.
The Bluetooth Classic implementation in the Cypress WICED BT stack 2.9.0 [14] and earlier for CYW20735B1 [13] devices does not properly handle the reception of LMP_max_slot with an invalid Baseband packet type and LT_ADDRESS (see Type and LT_ADDR fields in Figure 18). The vulnerability is triggered after completion of the LMP setup procedure, allowing attackers in radio range to trigger a denial of service (firmware crash) via a crafted LMP packet.
The Bluetooth Classic implementation in the Cypress WICED BT stack 2.9.0 [14] and earlier for CYW20735B1 [13] devices does not properly handle the reception of LMP_max_slot with a higher ACL Length (Length=31 as shown in Figure 19) after completion of the LMP setup procedure. This allows attackers in radio range to trigger a denial of service (firmware crash) via a crafted LMP packet.
The Bluetooth Classic implementations in the Cypress WICED BT stack 2.9.0 [14] and earlier for CYW20735B1 [13] devices, Intel AX200 [20] and Qualcomm WCN3990 [34] chipsets do not properly handle the reception of a malformed LMP timing accuracy response followed by multiple re-connections to the target link slave. This allows attackers to exhaust device BT resources. Eventually, the attacker can trigger a crash or BT disturbance via multiple attempts of sending a crafted LMP_timing_acc_response (i.e. LMP timing accuracy response) followed by a sudden reconnection to the target with a random BDAddress.
As shown in Figure 20, the attacker needs to perform a loop of reconnection and injection of the malformed LMP_timing_acc_response until the target chipset gets unstable. This either triggers a firmware crash (in the case of WCN3990 and CYW20735B1) or disconnects other active BT devices (in the case of Intel AX200). The faster the reconnection is performed, the easier is for the attack to succeed in disturbing other BT devices connected to the target chipset.
The impact of this attack does not persist after the attack stops. This is because the target normally tries to recover the BT connection by performing a re-connection to previously disconnected devices (e.g., Intel AX200 under Linux or Windows). In the case of a WCN3990 firmware crash, the Android OS restarts the Bluetooth daemon and re-uploads a firmware image to WCN3990. Finally, for CYW20735B1, it restarts automatically upon any fault due to its watchdog timer being enabled by default. Nevertheless, in all cases, it is not possible to normally use the device while the attack is in progress, as the BT connection can be disrupted continuously. The attacker only needs to know the BDAddress of the target device and no authentication is required to launch the attack.
This vulnerability is depicted in Figure 21. As shown in Figure 21, sending an invalid packet during the LMP timing accuracy procedure (i.e. packet LMP_timing_acc_request), followed by a forced re-connection with the same BDAddress (any arbitrary BDAdress of choice of the attacker), leads Intel AX200 to reject any externally initiated BT connections for an undetermined amount of time. This persists even after the attack stops and requires user intervention to recover AX200 normal functionalities.
Figure 21 illustrates the attack, which, similarly to attack V15 (Section 8.15), involves a loop of sending the malformed packet throughout re-connections to trigger the vulnerability. In contrast to V15, the attack is triggered before role switch procedure (see Figure 1), requires the same BDAddress when initiating re-connections and injects a malformed LMP_timing_acc_request with an oversized LMP length greater than 17 bytes. As a reminder, the maximum length limit of an LMP packet under DM1 channel is 17 bytes, which suggests that oversized LMP packets are not correctly handled by AX200 under a sudden disconnection scenario.
Furthermore, during the next re-connection, AX200 sends an out-of-order response which does not correspond to the original request. For instance, during the second re-connection involved in the scenario captured in Figure 21, AX200 sends LMP_version_res when receiving a feature request from the attacker. This depicts anomaly A5 as listed in Table 2.
Finally, as a second side effect of the vulnerability, the user may not be able to initiate as much BR/EDR connections as AX200 originally supports even after the attack stops. For example, the user is able to connect a maximum of only one or two BR/EDR devices depending on when the vulnerability is triggered. More specifically, if the vulnerability is triggered when AX200 is not connected to any device, then the user can only connect to one device. Otherwise, if AX200 is already connected to a device when the vulnerability is triggered, then AX200 can only connect to two devices.
Firmware crashes may be sporadically triggered on AX200 during the attacks, but no specific scenario was found to reliably trigger such crashes all the time.
Update: The PoC embargo period is over and it is available at BrakTooth PoC Website (GitHub).
BrakTooth proof-of-concept (PoC) tool is available to download for vendors producing BT SoCs, modules and products. To download the BrakTooth proof-of-concept (PoC) tool, kindly fill up the following simple form: BrakTooth PoC. The form requires certain basic information (job role, organization, and valid email) to be provided. The detailed instructions to download and launch the exploits on a target device will be sent (to the provided email) once the required information is given. We encourage vendors producing BT SoCs, BT modules, and BT end products to use the PoC and validate against BrakTooth attacks. We will be glad to help with replication and validation. Send all questions related to BrakTooth to ask@braktooth.com.
This research was partially supported by NRF National Satellite of Excellence in Trustworthy Software Systems (Project no. RGNSOE2001 and RGNSOE2101). This research is also successfully translated to a Keysight IOT Security Assessment with the generous funding and support provided by Keysight Technologies. We also want to thank all the involved vendors for their support during the coordination process and Cyber Security Agency of Singapore (CSA) [1] for working with us and publishing the SingCERT advisory [35]. We thank Ezekiel O. Soremekun for coining the term BrakTooth. We thank Rushati Chakraborty for creating the BrakTooth title design. Additionally, special thanks to Olof Astrand for his support on the open-source Tensilica Xtensa module for Ghidra [8] and Kwok Chuo Willis Yip for the ESP32 attack video.
[1] Cyber Security Agency of Singapore (CSA). https://www.csa.gov.sg/, 2021.
[2] Daniele Antonioli, Nils Ole Tippenhauer, and Kasper Rasmussen. BIAS: bluetooth impersonation attacks. In 2020 IEEE Symposium on Security and Privacy, SP 2020, San Francisco, CA, USA, May 18-21, 2020, pages 549–562. IEEE, 2020.
[3] Daniele Antonioli, Nils Ole Tippenhauer, and Kasper B. Rasmussen. The KNOB is broken: Exploiting low entropy in the encryption key negotiation of Bluetooth BR/EDR. In 28th USENIX Security Symposium (USENIX Security 19), pages 1047–1061, Santa Clara, CA, August 2019. USENIX Association.
[4] Bluetrum. AB32VG1 Development Kit Quick Start (CN). https://ab32vg1-example.readthedocs.io/zh/latest/introduction.html, 2021.
[5] Bluetrum. AB5301A SoC Product Description Website (CN). http://www.bluetrum.com/product/ab5301a.html, 2021.
[6] Jiska Classen and Matthias Hollick. Inside job: Diagnosing bluetooth lower layers using off-the-shelf devices. In Proceedings of the 12th Conference on Security and Privacy in Wireless and Mobile Networks, pages 186–191, 2019.
[7] Tristan Claverie and Jose Lopes Esteves. Bluemirror: Reflections on bluetooth pairing and provisioning protocols. In 2021 IEEE Security and Privacy Workshops (SPW), pages 339–351, 2021.
[8] Ebiroll. Fork of Tensilica Xtensa module for Ghidra. https://github.com/Ebiroll/ghidra-xtensa, 2021.
[9] Espressif. Espressif IoT Development Framework. https://github.com/espressif/esp-idf, 2020.
[10] Espressif. Cheap ESP32 Development Kit. https://www.aliexpress.com/item/1005001757645011.html, 2021.
[11] Espressif. ESP32 BT/BLE Stack Libraries. https://github.com/espressif/esp32-bt-lib, 2021.
[12] Espressif. ESP32 ESP-IDF BrakTooth Patches (commit #bf71f49). https://github.com/espressif/esp-idf/tree/bf71f494a165aba5e5365e17e1e258598d9fc172, 2021.
[13] Infineon (former Cypress). CYW20735B1 Datasheet. https://www.cypress.com/file/298426/download, 2021.
[14] Infineon (former Cypress). WICED Software. https://www.cypress.com/products/wiced-software, 2021.
[15] Matheus E. Garbelini, Chundong Wang, Sudipta Chattopadhyay, Sun Sumei, and Ernest Kurniawan. Sweyntooth: Unleashing mayhem over bluetooth low energy. In 2020 USENIX Annual Technical Conference (USENIX ATC 20), pages 911–925. USENIX Association, July 2020.
[16] Etienne Helluy-Lafont. Ubertooth Experimental BT Basic Rate implementation. https://github.com/greatscottgadgets/ubertooth/tree/master/firmware/btbr, 2021.
[17] Cypress (Infineon). Advisory and patches for BrakTooth. https://community.cypress.com/t5/Security-Bulletin/Public-Statement-embargoed-for-release-until-August-30th-2021/ba-p/287241, 2021.
[18] Texas Instruments. CC2564C Product Details. https://www.ti.com/product/CC2564C, 2021.
[19] Texas Instruments. CC2564C TI Dual-mode Bluetooth Stack on MSP432 MCUs. https://www.ti.com/tool/CC2564CMSP432BTBLESW, 2021. Service pack must be downloaded separatelly.
[20] Intel. Intel Wi-Fi 6 AX200 SoC Product Details. https://ark.intel.com/content/www/us/en/ark/products/189347/intel-wi-fi-6-ax200-gig.html, 2021.
[21] JBL. JBL TUNE 500BT Wireless on-ear Headphone Product Details. https://www.jbl.com.sg/over-ear-headphones/JBL+TUNE500BT.html, 2021.
[22] Jieli-Tech. AC63 series BT SDK Repository. https://github.com/Jieli-Tech/fw-AC63_BT_SDK, 2021.
[23] Silicon Labs. Bluegiga iWRAP Bluetooth Classic Software Stack. https://www.silabs.com/developers/bluegiga-iwrap-bluetooth-classic-software-stack, 2021.
[24] Silicon Labs. WT32I-A Product Description. https://www.silabs.com/wireless/bluetooth/bluegiga-classic-legacy-modules/device.wt32i-a, 2021.
[25] Mouser. Official ESP32 Development Kit ESP32-PICO-KIT. https://www.mouser.sg/ProductDetail/Espressif-Systems/ESP32-PICO-KIT?qs=MLItCLRbWsyoLrlknFRqcQ%3D%3D, 2021.
[26] Oppo. Oppo Reno 5G (CPH1921) Product Details. https://www.oppo.com/en/smartphone-reno-5g/specs/, 2019.
[27] Qualcomm. CSR8510 Bluetooth SoC Product Details. https://www.qualcomm.com/products/csr8510, 2021.
[28] Qualcomm. CSR8811 Bluetooth SoC Product Details. https://www.qualcomm.com/products/csr8811, 2021.
[29] DF Robot. XY-WRBT Bluetooth 5.0 Audio Receiver Product Details. https://www.dfrobot.com/product-2084.html, 2021.
[30] Jan Ruge, Jiska Classen, Francesco Gringoli, and Matthias Hollick. Frankenstein: Advanced wireless fuzzing to exploit new bluetooth escalation targets. In 29th USENIX Security Symposium (USENIX Security 20), pages 19–36. USENIX Association, August 2020.
[31] Bluetooth SIG. Bluetooth certification guideline: Qualify your product. https://www.bluetooth.com/develop-with-bluetooth/qualification-listing/, 2019.
[32] Bluetooth SIG. Bluetooth Core Specification v5.2, December 2019. https://www.bluetooth.com/specifications/bluetooth-core-specification.
[33] Bluetooth SIG. View previously qualified designs and declared products, January 2020. https://launchstudio.bluetooth.com/Listings/Search.
[34] Bluetooth SIG. WCN3990 Bluetooth Product Listings. https://launchstudio.bluetooth.com/ListingDetails/66490, 2021.
[35] Singapore Computer Emergency Response Team (SingCERT). Multiple Vulnerabilities Affecting Bluetooth Devices. https://www.csa.gov.sg/singcert/Alerts/al-2021-051, 2021.
[36] Espressif System. Advisory and patches for BrakTooth. https://www.espressif.com/sites/default/files/advisory_downloads/AR2021-004%20Bluetooth%20Security%20Advisory.pdf, 2021.
[37] Espressif Systems. ESP32 SoC Product Details. https://www.espressif.com/en/products/socs/esp32, 2021.
[38] Espressif Systems. Official ESP32 Development Kit ESP32-WROVER-KIT. https://www.espressif.com/en/products/hardware/esp-wrover-kit/overview, 2021.
[39] Actions Technology. ATS2815 Datasheet. http://www.lanzhi-tech.com/filedownload/99240, 2021.
[40] Jieli Technology. AC63 Series SDK repository. https://github.com/Jieli-Tech/fw-AC63_BT_SDK, 2021.
[41] Jianliang Wu, Yuhong Nan, Vireshwar Kumar, Dave Jing Tian, Antonio Bianchi, Mathias Payer, and Dongyan Xu. BLESA: Spoofing Attacks against Reconnections in Bluetooth Low Energy. In 14th USENIX Workshop on Offensive Technologies (WOOT 20), 2020.
[42] Xiaomi. Mi Portable Bluetooth Speaker MDZ-36-DB Product Details. https://www.mi.com/global/mi-portable-bluetooth-speaker-16w/specs/, 2021.