CVE-2023-51596
High · 7.1CVSS
7.1
EPSS
1.5%
Published
May 3, 2024
CISA due date
—
Cloudanix analysis
A flaw in common Bluetooth software lets a nearby attacker take full control of a device if the user connects to a malicious wireless gadget.
- Exploitation
- Adjacent Network
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in Phone Book Access Profile handling due to missing length validation on user-supplied data copied into a fixed-size heap buffer, enabling arbitrary code execution as root.
Why it matters to the business
Compromise of Bluetooth-enabled Linux systems can result in full device takeover, data theft, or persistence by attackers within Bluetooth range, increasing risk for organizations relying on wireless device connectivity.
How an attack unfolds
An attacker deploys a malicious Bluetooth device; the victim connects to it, triggering crafted Phone Book Access Profile data that overflows the heap buffer and executes code in the root context.
How to fix it
Upgrade affected BlueZ installations to a version containing the fix referenced in commit aa38319e353cc3cdfac12e03e21ed7a8f3628d3e or later equivalent patch; disable Bluetooth when not required as a temporary control.
How to confirm the fix worked
Confirm BlueZ version is updated past the vulnerable release and test that Phone Book Access Profile requests with oversized data are rejected without memory corruption.
Typical attack path
- Deploy malicious Bluetooth device in proximity
- Social engineer or wait for target to initiate connection
- Deliver oversized Phone Book Access Profile data
- Trigger buffer overflow to achieve root code execution
How to detect it
Review Bluetooth stack logs and system audit records for unexpected Phone Book Access Profile connections or heap-related crashes on Linux hosts; correlate with process execution under root privileges following Bluetooth activity.
What your security team should do
- Apply the listed fixed version of BlueZ immediately due to remote code execution potential
- Inventory all systems using BlueZ and prioritize patching of high-value or exposed devices
- Monitor vendor advisories for BlueZ updates and enforce Bluetooth pairing policies
The record
BlueZ Phone Book Access Profile Heap-based Buffer Overflow Remote Code Execution Vulnerability. This vulnerability allows network-adjacent attackers to execute arbitrary code on affected installations of BlueZ. User interaction is required to exploit this vulnerability in that the target must connect to a malicious Bluetooth device. The specific flaw exists within the handling of the Phone Book Access profile. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a fixed-length heap-based buffer. An attacker can leverage this vulnerability to execute code in the context of root. Was ZDI-CAN-20939.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | bluez | 0 | 5.72-2.el9 |
| AlmaLinux:9 | bluez-cups | 0 | 5.72-2.el9 |
| AlmaLinux:9 | bluez-libs | 0 | 5.72-2.el9 |
| AlmaLinux:9 | bluez-libs-devel | 0 | 5.72-2.el9 |
| AlmaLinux:9 | bluez-obexd | 0 | 5.72-2.el9 |
| Debian:11 | bluez | 0 | No fix |
| Debian:12 | bluez | 0 | No fix |
| Debian:13 | bluez | 0 | No fix |
| Mageia:9 | bluez | 0 | 5.80-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | bluez | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-cups | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-cups-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-debugsource | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-hid2hci-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-libs | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-libs-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-libs-devel | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-libs-devel-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-mesh-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-obexd | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::appstream | bluez-obexd-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-cups | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-cups-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-debugsource | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-hid2hci-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-libs | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-libs-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-libs-devel | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-libs-devel-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-mesh-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-obexd | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::baseos | bluez-obexd-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-cups | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-cups-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-debugsource | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-hid2hci-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-libs | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-libs-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-libs-devel | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-libs-devel-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-mesh-debuginfo | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-obexd | 0 | 0:5.72-2.el9 |
| Red Hat:enterprise_linux:9::crb | bluez-obexd-debuginfo | 0 | 0:5.72-2.el9 |
| Rocky Linux:9 | bluez | 0 | 0:5.72-2.el9 |
| Ubuntu:20.04:LTS | bluez | 0 | No fix |
| Ubuntu:22.04:LTS | bluez | 0 | No fix |
| Ubuntu:24.04:LTS | bluez | 0 | No fix |
| Ubuntu:24.10 | bluez | 0 | No fix |
| Ubuntu:25.04 | bluez | 0 | No fix |
| Ubuntu:25.10 | bluez | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | bluez | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | bluez | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | bluez | 0 | No fix |
Related vulnerabilities
- CVE-2023-51594 BlueZ OBEX Library Out-Of-Bounds Read Information Disclosure Vulnerability. Also affects bluez
- CVE-2023-51589 BlueZ Audio Profile AVRCP parse_media_element Out-Of-Bounds Read Information Disclosure… Also affects bluez
- CVE-2023-51592 BlueZ Audio Profile AVRCP parse_media_folder Out-Of-Bounds Read Information Disclosure… Also affects bluez
- CVE-2023-51580 BlueZ Audio Profile AVRCP avrcp_parse_attribute_list Out-Of-Bounds Read Information… Also affects bluez
- CVE-2023-44431 BlueZ Audio Profile AVRCP Stack-based Buffer Overflow Remote Code Execution Vulnerability. Also affects bluez
- CVE-2023-27349 BlueZ Audio Profile AVRCP Improper Validation of Array Index Remote Code Execution… Also affects bluez
- CVE-2023-45866 Bluetooth HID Hosts in BlueZ may permit an unauthenticated Peripheral role HID Device to… Also affects bluez
- CVE-2022-39176 BlueZ before 5.59 allows physically proximate attackers to obtain sensitive information… Also affects bluez