CVE-2023-44431
High · 7.1CVSS
7.1
EPSS
1.6%
Published
May 3, 2024
CISA due date
—
Cloudanix analysis
A Bluetooth software flaw could let a nearby attacker run malicious code on a device if someone connects to their fake 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
Stack-based buffer overflow in BlueZ AVRCP protocol handling caused by missing validation of user-supplied data length before copying into a fixed-size stack buffer, enabling remote code execution as root.
Why it matters to the business
Compromise of Bluetooth-enabled Linux systems could result in full device takeover, data exposure, or unauthorized access when users connect to attacker-controlled devices, increasing risk for organizations relying on wireless peripherals.
How an attack unfolds
An attacker configures a malicious Bluetooth device that advertises an AVRCP profile; when a victim connects, the attacker transmits oversized AVRCP data that overflows the stack buffer and executes arbitrary code with root privileges.
How to fix it
Update BlueZ to a patched release that enforces proper AVRCP length validation; apply vendor-supplied fixes for affected distributions as they become available.
How to confirm the fix worked
Verify installed BlueZ version against advisory patches, review Bluetooth stack source for AVRCP length checks, and test connectivity with malformed AVRCP traffic in a lab environment.
Typical attack path
- Deploy a malicious Bluetooth device advertising AVRCP
- Wait for or lure target device to connect
- Send crafted AVRCP packets containing excessive data
- Trigger stack overflow to execute code as root
How to detect it
Review system and Bluetooth daemon logs for unexpected AVRCP connections or crashes; inspect for root-owned processes spawned shortly after Bluetooth pairing events.
What your security team should do
- Prioritize BlueZ updates across all Linux endpoints with Bluetooth
- Disable Bluetooth services where not required
- Implement user training to avoid pairing with unknown devices
- Monitor EPSS and vendor advisories for exploit maturity changes
The record
BlueZ Audio Profile AVRCP Stack-based Buffer Overflow Remote Code Execution Vulnerability. This vulnerability allows network-adjacent attackers to execute arbitrary code via Bluetooth on affected installations of BlueZ. User interaction is required to exploit this vulnerability in that the target must connect to a malicious device. The specific flaw exists within the handling of the AVRCP protocol. The issue results from the lack of proper validation of the length of user-supplied data prior to copying it to a fixed-length stack-based buffer. An attacker can leverage this vulnerability to execute code in the context of root. Was ZDI-CAN-19909.
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-51596 BlueZ Phone Book Access Profile Heap-based Buffer Overflow Remote Code Execution… 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-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