CVE-2023-28866 Overview
CVE-2023-28866 is an Out-of-Bounds Read vulnerability affecting the Linux kernel through version 6.2.8. The vulnerability exists in net/bluetooth/hci_sync.c where the amp_init1[] and amp_init2[] arrays are supposed to contain intentionally invalid terminating elements but do not, allowing out-of-bounds memory access during Bluetooth HCI synchronization operations.
Critical Impact
This vulnerability could allow remote attackers to read sensitive memory contents via network-accessible Bluetooth operations, potentially leading to information disclosure.
Affected Products
- Linux Kernel versions through 6.2.8
- Systems with Bluetooth HCI functionality enabled
- Devices running affected kernel versions with Bluetooth stack active
Discovery Timeline
- 2023-03-27 - CVE CVE-2023-28866 published to NVD
- 2025-05-05 - Last updated in NVD database
Technical Details for CVE-2023-28866
Vulnerability Analysis
The vulnerability resides in the Bluetooth Host Controller Interface (HCI) synchronization code within the Linux kernel. The amp_init1[] and amp_init2[] arrays in net/bluetooth/hci_sync.c are designed to store initialization parameters for Alternate MAC/PHY (AMP) operations. These arrays were intended to include an intentionally invalid sentinel element to mark the end of valid data, preventing iteration beyond the array bounds.
However, due to a coding oversight, these arrays lack the required invalid terminating element. When the kernel iterates through these arrays during Bluetooth AMP initialization, it can read beyond the intended array boundaries, accessing uninitialized or sensitive kernel memory. This out-of-bounds read condition (CWE-125) could be triggered through network-accessible Bluetooth operations, potentially exposing kernel memory contents to attackers.
Root Cause
The root cause is a missing array terminator in the amp_init1[] and amp_init2[] arrays within the HCI synchronization code. The arrays were designed with the expectation that a sentinel invalid element would be present to signal the end of valid entries during iteration. Without this terminator, loop conditions that depend on detecting an invalid element to stop iteration will continue reading memory beyond the array boundaries.
Attack Vector
The attack vector is network-based, accessible through Bluetooth communications. An attacker within Bluetooth range could potentially trigger the vulnerable code path by initiating AMP-related Bluetooth operations with a target device. The attack does not require user interaction or special privileges, though successful exploitation requires the target system to have Bluetooth enabled and the vulnerable kernel code path accessible.
The vulnerability mechanism can be understood as follows: when the Bluetooth stack processes AMP initialization requests, it iterates through the amp_init1[] and amp_init2[] arrays. Without proper bounds checking or a sentinel value to terminate the loop, the iteration continues past the array boundaries. See the Linux Kernel Bluetooth Commit for the technical patch details.
Detection Methods for CVE-2023-28866
Indicators of Compromise
- Unexpected Bluetooth HCI errors or crashes in system logs related to AMP operations
- Kernel oops or warnings referencing hci_sync.c or related Bluetooth subsystem functions
- Memory disclosure events detected by kernel address sanitizer (KASAN) logs
- Anomalous Bluetooth connection attempts targeting AMP functionality
Detection Strategies
- Monitor kernel logs for out-of-bounds access warnings from KASAN or similar memory debugging tools
- Deploy runtime memory safety detection tools that can identify out-of-bounds read attempts
- Implement Bluetooth traffic analysis to detect unusual AMP initialization patterns
- Use SentinelOne's Singularity Platform to detect anomalous kernel memory access patterns
Monitoring Recommendations
- Enable kernel auditing for Bluetooth subsystem events
- Configure KASAN (Kernel Address SANitizer) in development and testing environments to catch similar issues
- Monitor for unusual Bluetooth stack behavior or unexpected daemon restarts
- Implement network-level Bluetooth traffic monitoring where applicable
How to Mitigate CVE-2023-28866
Immediate Actions Required
- Update the Linux kernel to a patched version that includes the fix for CVE-2023-28866
- If immediate patching is not possible, consider disabling Bluetooth functionality on affected systems
- Review systems for evidence of exploitation attempts in kernel logs
- Prioritize patching for systems that require Bluetooth connectivity in untrusted environments
Patch Information
The fix for this vulnerability adds the missing invalid sentinel elements to the amp_init1[] and amp_init2[] arrays, ensuring proper loop termination during iteration. The patch is available through the Linux kernel Bluetooth maintainers:
Additional technical discussion is available on the Linux Kernel Mailing List Post.
Workarounds
- Disable Bluetooth functionality at the kernel level by blacklisting Bluetooth modules (bluetooth, btusb, hci_uart)
- Use firewall rules or physical controls to limit Bluetooth exposure in high-risk environments
- Implement network segmentation to isolate systems with Bluetooth enabled from untrusted networks
- Monitor affected systems closely for signs of exploitation while awaiting patch deployment
# Disable Bluetooth modules temporarily
sudo modprobe -r btusb bluetooth
# Blacklist Bluetooth modules to prevent loading on boot
echo "blacklist bluetooth" | sudo tee /etc/modprobe.d/disable-bluetooth.conf
echo "blacklist btusb" | sudo tee -a /etc/modprobe.d/disable-bluetooth.conf
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

