CVE-2025-5478
Executive Summary
CVE-2025-5478 is a critical integer overflow vulnerability in the Bluetooth SDP (Service Discovery Protocol) implementation of the Sony XAV-AX8500 in-car entertainment system. The flaw allows a network-adjacent attacker to execute arbitrary code with root privileges without authentication. The vulnerability stems from improper validation of user-supplied data during SDP packet processing, leading to an integer overflow before buffer allocation. With a CVSS score of 8.8, this poses a severe risk to vehicle systems, potentially enabling full compromise of the head unit and adjacent vehicle networks. No public exploit or patch is currently available, but the technical details from ZDI (ZDI-CAN-26288) provide a clear attack vector.
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
Supply Chain & Package Security
This vulnerability is not related to any software package manager (NPM, PyPI, Go, Ruby). It is a firmware-level issue in a proprietary embedded system (Sony XAV-AX8500). No supply chain implications are present.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Base Score: 8.8 (High)
- Attack Vector: Adjacent Network (AV:A) – attacker must be within Bluetooth range (typically ~10 meters).
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: None (PR:N).
- User Interaction: None (UI:N).
- Scope: Unchanged (S:U).
- Confidentiality, Integrity, Availability Impact: All High (C:H/I:H/A:H).
Threat Level: Critical for vehicle safety and data security. Exploitation could lead to remote code execution as root, enabling persistent backdoors, data exfiltration, or manipulation of vehicle systems.
Deep Dive & Mechanics
The vulnerability resides in the Bluetooth SDP protocol handler of the Sony XAV-AX8500 firmware. SDP is used to discover services on Bluetooth devices. The specific flaw occurs when parsing SDP attribute values or data elements:
- Integer Overflow: The code fails to validate the length field of an SDP data element. When a crafted packet specifies an extremely large length value, the integer arithmetic used to calculate buffer size overflows, resulting in a small or negative allocation.
- Buffer Overflow: Subsequent memory copy operations write attacker-controlled data beyond the allocated buffer, corrupting adjacent memory.
- Code Execution: By carefully crafting the overflow data, an attacker can overwrite function pointers or return addresses, achieving arbitrary code execution in the context of the Bluetooth stack (running as root).
Attack Flow:
- Attacker sends a malicious SDP request (e.g., SDP_ServiceSearchRequest or SDP_ServiceAttributeRequest) with a crafted attribute length.
- The integer overflow leads to a heap buffer under-allocation.
- The attacker-controlled payload overwrites critical heap structures.
- Execution hijack occurs, granting root shell or arbitrary command execution.
Root Cause: Lack of input validation on SDP packet length fields before arithmetic operations.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is described generically:
Vulnerable (pseudo-code):
void handle_sdp_attribute(uint8_t *data, uint16_t len) {
uint16_t attr_len = *(uint16_t*)(data + 2); // attacker-controlled
uint8_t *buffer = malloc(attr_len + 10); // integer overflow if attr_len > 65535-10
memcpy(buffer, data, attr_len); // heap overflow
}
Patched (hypothetical):
void handle_sdp_attribute(uint8_t *data, uint16_t len) {
uint16_t attr_len = *(uint16_t*)(data + 2);
if (attr_len > MAX_SAFE_SIZE) {
return; // reject oversized
}
uint8_t *buffer = malloc(attr_len + 10);
if (buffer == NULL) return;
memcpy(buffer, data, attr_len);
}
Key Fix: Validate attr_len before arithmetic and ensure no overflow occurs.
Exploitation & Lab Setup
Red Team
Lab Environment:
- Sony XAV-AX8500 head unit (firmware version unknown).
- Bluetooth adapter (e.g., CSR dongle) on attacker machine (Linux with BlueZ).
- Python3 with
pybluezorsocketfor raw Bluetooth SDP crafting.
Exploit Steps:
- Discover device: Use
hcitool scanto find the head unit's Bluetooth MAC. - Connect to SDP: Open an L2CAP connection to PSM 1 (SDP).
- Craft malicious SDP packet: Create a
SDP_ServiceAttributeRequestwith an oversized attribute length (e.g., 0xFFFF). - Send packet: Transmit the crafted packet to trigger the integer overflow.
- Gain shell: The overflow overwrites a function pointer with a pointer to shellcode (e.g., reverse shell).
Example Python snippet (conceptual):
import socket
import struct
# Connect to SDP
sock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET, socket.BTPROTO_L2CAP)
sock.connect(('XX:XX:XX:XX:XX:XX', 1)) # PSM 1 for SDP
# Craft malicious attribute request with overflow
pdu = b'\x04' # SDP_ServiceAttributeRequest
pdu += struct.pack('>H', 0x0001) # transaction ID
pdu += struct.pack('>H', 0xFFFF) # oversized attribute length -> overflow
pdu += b'A' * 1000 # payload
sock.send(pdu)
Note: Actual exploit requires precise heap layout knowledge; this is a simplified demonstration.
Blue Team
Detection & Hardening:
- Network Segmentation: Isolate Bluetooth interfaces from critical vehicle networks.
- Firmware Updates: Monitor Sony for patches; apply immediately when available.
- Bluetooth Filtering: Use firewall rules to block unexpected SDP traffic.
- Anomaly Detection: Monitor for malformed SDP packets (e.g., attribute lengths > 65535).
- Honeypot: Deploy a Bluetooth honeypot mimicking the head unit to capture exploit attempts.
Mitigation Steps:
- Disable Bluetooth if not required.
- Use Bluetooth pairing with authentication (though this vulnerability does not require auth).
- Implement input validation in firmware (vendor responsibility).
Indicators of Compromise (IOCs)
Network IOCs:
- Bluetooth SDP packets with attribute length fields > 0x1000 (normal max is ~65535, but overflow triggers at > 65535-10).
- Repeated SDP requests from unknown devices.
- Unusual L2CAP connections to PSM 1 (SDP) from non-standard Bluetooth addresses.
Host IOCs (on head unit):
- Unexpected processes running as root (e.g., reverse shell).
- Modified firmware binaries or unexpected files in
/tmp. - Bluetooth stack crashes or restarts.
Logs:
- System logs showing Bluetooth stack errors (e.g., "SDP buffer overflow detected" if logging exists).
- Kernel panics related to Bluetooth driver.
Detection Engineering
YARA Rule
rule CVE_2025_5478_Sony_SDP_Overflow {
meta:
description = "Detects malicious SDP packets targeting Sony XAV-AX8500 integer overflow"
author = "Valters IT"
date = "2025-04-01"
cve = "CVE-2025-5478"
strings:
$sdp_header = { 04 ?? ?? 00 01 } // SDP_ServiceAttributeRequest with transaction ID
$overflow_len = { FF FF } // oversized length (0xFFFF)
condition:
$sdp_header at 0 and $overflow_len at 4
}
Sigma Rule
title: CVE-2025-5478 Bluetooth SDP Integer Overflow Attempt
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects malformed Bluetooth SDP packets with oversized attribute lengths
author: Valters IT
logsource:
category: network
product: bluetooth
detection:
selection:
psm: 1
sdp_attribute_length: 65535
condition: selection
falsepositives:
- Legitimate SDP requests with large but valid lengths (rare)
level: high
Suricata Rule
alert bluetooth any any -> any 1 (msg:"CVE-2025-5478 Sony XAV-AX8500 SDP Integer Overflow Attempt"; content:"|04|"; offset:0; depth:1; content:"|FF FF|"; offset:4; depth:2; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable Bluetooth on the Sony XAV-AX8500 if not essential.
- Monitor for firmware updates from Sony; apply immediately when released.
- Network segmentation: Ensure the head unit is isolated from critical vehicle systems (e.g., CAN bus).
- Bluetooth access control: Use MAC address filtering (though easily spoofed).
Long-term Fixes:
- Vendor must implement proper input validation in SDP handler (check length before arithmetic).
- Add bounds checking and integer overflow detection in firmware.
- Consider using a memory-safe language or compiler hardening (e.g., ASLR, stack canaries).
Workarounds:
- Use a Bluetooth firewall (e.g.,
btfirewallon Linux) to block SDP requests from unknown devices. - Deploy an IDS/IPS capable of parsing Bluetooth SDP packets.
Valters IT
Securing digital frontiers, one vulnerability at a time.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.