CVE-2023-28464 Overview
CVE-2023-28464 is a use-after-free and double free vulnerability in the Linux kernel's Bluetooth subsystem. Specifically, the flaw exists in hci_conn_cleanup within net/bluetooth/hci_conn.c, where improper memory management through calls to hci_dev_put and hci_conn_put can lead to use-after-free conditions observed in hci_conn_hash_flush. This double free vulnerability may be exploited to achieve privilege escalation on affected systems.
Critical Impact
Local attackers with low privileges can potentially exploit this double free vulnerability to escalate privileges, achieving full compromise of system confidentiality, integrity, and availability.
Affected Products
- Linux Kernel through version 6.2.9 (including 6.1.25, 6.2.12, and 6.3 release candidates)
- NetApp H300S Firmware
- NetApp H410C Firmware
- NetApp H410S Firmware
- NetApp H500S Firmware
- NetApp H700S Firmware
Discovery Timeline
- 2023-03-31 - CVE-2023-28464 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2023-28464
Vulnerability Analysis
The vulnerability resides in the Bluetooth Host Controller Interface (HCI) connection handling code within the Linux kernel. The hci_conn_cleanup function in net/bluetooth/hci_conn.c improperly manages memory deallocation for HCI connection objects.
When HCI connections are being cleaned up, the function calls both hci_dev_put and hci_conn_put in a sequence that can result in the same memory being freed twice. This double free condition creates a use-after-free scenario that becomes observable during hci_conn_hash_flush operations.
The vulnerability requires local access to exploit, meaning an attacker must have a presence on the target system. However, the privilege requirements are low, making this accessible to unprivileged local users who can interact with the Bluetooth subsystem.
Root Cause
The root cause is improper reference counting and memory management in the HCI connection cleanup path. The hci_conn_cleanup function incorrectly handles the lifecycle of connection objects, calling deallocation functions (hci_dev_put and hci_conn_put) in a manner that leads to double-freeing memory. This represents a CWE-415 (Double Free) weakness where dynamically allocated memory is freed more than once, corrupting the memory allocator's internal data structures.
Attack Vector
The attack vector is local, requiring the attacker to have existing access to the target system. An attacker can trigger this vulnerability by manipulating Bluetooth connection states in a way that causes the vulnerable cleanup path to execute. When the double free occurs, it corrupts kernel heap metadata, which can potentially be leveraged for privilege escalation.
The exploitation path involves:
- Establishing or manipulating HCI Bluetooth connections
- Triggering the cleanup routine under specific race conditions
- Exploiting the corrupted heap state to gain elevated privileges
The vulnerability mechanism involves improper reference counting in the HCI connection cleanup path. When hci_conn_cleanup is invoked, it calls hci_dev_put and hci_conn_put without properly tracking whether the memory has already been released, leading to a double free condition observable in hci_conn_hash_flush. For detailed technical analysis, see the Linux Kernel Mailing List Post and the Openwall OSS Security Discussion.
Detection Methods for CVE-2023-28464
Indicators of Compromise
- Unexpected kernel crashes or panics related to Bluetooth subsystem operations, particularly involving hci_conn_hash_flush or hci_conn_cleanup
- Unusual Bluetooth connection activity or manipulation attempts by unprivileged users
- KASAN (Kernel Address Sanitizer) reports indicating use-after-free or double-free in HCI connection handling code
- Anomalous privilege escalation events following Bluetooth-related activity
Detection Strategies
- Deploy kernel auditing tools to monitor for unusual Bluetooth HCI operations, particularly around connection establishment and teardown
- Enable KASAN in development and testing environments to detect memory corruption issues related to this vulnerability
- Monitor system logs for kernel warnings or errors related to hci_conn_cleanup, hci_conn_hash_flush, or Bluetooth reference counting
- Use SentinelOne's behavioral AI to detect privilege escalation attempts following Bluetooth subsystem manipulation
Monitoring Recommendations
- Implement continuous monitoring of kernel logs for Bluetooth subsystem anomalies using centralized logging solutions
- Configure alerting for any kernel memory corruption indicators (KASAN, SLUB debugging) in production-critical systems
- Monitor for unusual local user activity involving Bluetooth device manipulation or HCI socket operations
- Utilize SentinelOne Singularity platform for real-time detection of exploitation attempts and privilege escalation behaviors
How to Mitigate CVE-2023-28464
Immediate Actions Required
- Update the Linux kernel to a patched version that addresses the double free issue in hci_conn_cleanup
- If immediate patching is not possible, consider disabling Bluetooth functionality on affected systems where it is not operationally required
- Review and restrict local user access to Bluetooth subsystem interfaces on sensitive systems
- Apply vendor-specific patches for affected NetApp firmware (H300S, H410C, H410S, H500S, H700S)
Patch Information
Patches addressing this vulnerability have been submitted to the Linux kernel. The fix corrects the reference counting logic in hci_conn_cleanup to prevent the double free condition. Users should update to Linux kernel versions newer than 6.2.9 that include the fix, or apply backported patches for their distribution.
For NetApp appliances, refer to the NetApp Security Advisory NTAP-20230517-0004 for firmware updates addressing this vulnerability.
Workarounds
- Disable Bluetooth functionality system-wide by blacklisting the bluetooth kernel module if Bluetooth is not required for operations
- Restrict access to Bluetooth interfaces using appropriate user permissions and group membership controls
- Implement network segmentation to limit exposure of systems with Bluetooth enabled to trusted users only
- Monitor and audit local user activities related to Bluetooth operations until patching can be completed
# Disable Bluetooth kernel module
echo "blacklist bluetooth" >> /etc/modprobe.d/bluetooth-disable.conf
echo "blacklist btusb" >> /etc/modprobe.d/bluetooth-disable.conf
# Unload the module if currently loaded
modprobe -r btusb bluetooth
# Verify Bluetooth is disabled
lsmod | grep bluetooth
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


