CVE-2024-48290
Executive Summary
CVE-2024-48290 is a denial-of-service (DoS) vulnerability in the Bluetooth Low Energy (BLE) implementation of the Realtek RTL8762E BLE SDK version 1.4.0. An attacker can exploit this issue by sending a crafted ll_terminate_ind packet, causing the target device to crash or become unresponsive. The vulnerability has a CVSS score of 0.0 (pending analysis) and an EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept code or patch is currently available.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Temporary – pending NVD analysis)
- Attack Vector (AV): Adjacent Network (likely)
- Attack Complexity (AC): Low (likely)
- Privileges Required (PR): None
- User Interaction (UI): None
- Scope (S): Unchanged
- Confidentiality (C): None
- Integrity (I): None
- Availability (A): High
- Threat Level: Medium (due to potential for device unavailability in IoT/embedded environments)
Deep Dive & Mechanics
The vulnerability resides in the BLE link layer handling of the ll_terminate_ind packet. In BLE, the ll_terminate_ind packet is used to terminate a connection. The Realtek RTL8762E SDK v1.4.0 fails to properly validate the packet structure or its parameters, leading to a memory corruption or infinite loop when a malformed packet is received. This causes the BLE stack to crash or hang, denying service to legitimate BLE operations.
The attack requires the attacker to be within BLE radio range (typically up to 100 meters) and to have knowledge of the target device’s BLE address or connection parameters. The crafted packet likely contains an invalid error code or length field that triggers the flaw.
Vulnerable vs. Patched Code
No patched code is available. The vulnerable code is in the BLE link layer of the Realtek RTL8762E SDK v1.4.0. The issue is likely in the ll_terminate_ind handler function, which does not validate the packet length or error code before processing.
Vulnerable code snippet (hypothetical):
void ll_terminate_ind_handler(uint8_t *pkt) {
uint8_t error_code = pkt[2];
// No validation of pkt length or error_code range
process_termination(error_code);
}
Patched code (hypothetical):
void ll_terminate_ind_handler(uint8_t *pkt, uint8_t len) {
if (len < 3) {
return; // Reject malformed packet
}
uint8_t error_code = pkt[2];
if (error_code > 0x1F) {
return; // Reject invalid error code
}
process_termination(error_code);
}
Exploitation & Lab Setup
Red Team
- Prerequisites: A BLE-capable device (e.g., nRF52840 Dongle) and a computer with Python and
bleakorbluepylibrary. - Craft the malicious packet: The
ll_terminate_indpacket has a 2-byte header (0x02 for LLID and length) and a 1-byte error code. A malformed packet could have an invalid length or error code. - Send the packet: Use a BLE sniffer or custom script to send the crafted packet to the target device.
Example Python script (conceptual):
import asyncio
from bleak import BleakScanner, BleakClient
async def send_malformed_terminate():
# Scan for target device
devices = await BleakScanner.discover()
target = [d for d in devices if "RTL8762E" in d.name][0]
async with BleakClient(target.address) as client:
# Craft ll_terminate_ind packet (invalid error code 0xFF)
pkt = bytes([0x02, 0x01, 0xFF])
# Send via raw BLE (requires custom HCI command)
await client.write_gatt_char("0000xxxx-0000-1000-8000-00805f9b34fb", pkt)
Blue Team
- Monitor BLE traffic: Use a BLE sniffer (e.g., Wireshark with BLE dongle) to detect anomalous
ll_terminate_indpackets with invalid error codes or lengths. - Implement input validation: Patch the BLE stack to validate packet length and error code before processing.
- Rate limiting: Limit the number of termination requests per time window.
- Firmware update: Apply vendor patch when available.
Indicators of Compromise (IOCs)
- Network: BLE packets with
ll_terminate_ind(Opcode 0x02) containing invalid error codes (e.g., > 0x1F) or incorrect length fields. - Host: Device logs showing repeated BLE connection terminations or stack crashes.
- Behavioral: Sudden unavailability of BLE services on the target device.
Detection Engineering
YARA Rule
rule CVE_2024_48290_BLE_DoS {
meta:
description = "Detects malformed ll_terminate_ind packets targeting Realtek RTL8762E"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2024-48290"
strings:
$ll_terminate = { 02 01 ?? } // ll_terminate_ind with invalid error code
condition:
$ll_terminate and #ll_terminate > 0
}
Sigma Rule
title: Detection of Malformed BLE ll_terminate_ind Packets
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects BLE packets with invalid ll_terminate_ind error codes
author: Valters IT
logsource:
category: network
product: bluetooth
detection:
selection:
opcode: 0x02
error_code:
- 0x20..0xFF
condition: selection
falsepositives:
- Legitimate BLE termination with rare error codes
level: high
Suricata Rule
alert bluetooth any any -> any any (msg:"CVE-2024-48290 BLE DoS Attempt"; bluetooth.opcode:0x02; bluetooth.error_code:>0x1F; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable BLE on affected devices if not required.
- Short-term: Implement network segmentation to limit BLE exposure.
- Long-term: Apply vendor firmware patch when available. If no patch is released, consider replacing the affected component.
- Detection: Deploy the provided YARA, Sigma, and Suricata rules to monitor for exploitation attempts.
- Compensating controls: Use BLE firewalls or intrusion detection systems that can filter malformed packets.
Valters IT
DevSecOps & Cyber Threat Intelligence