In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: btintel: serialize btintel_hw_error() with hci_req_sync_lock
btintel_hw_error() issues two __hci_cmd_sync() calls (HCI_OP_RESET
and Intel exception-info retrieval) without holding
hci_req_sync_lock(). This lets it race against
hci_dev_do_close() -> btintel_shutdown_combined(), which also runs
__hci_cmd_sync() under the same lock. When both paths manipulate
hdev->req_status/req_rsp concurrently, the close path may free the
response skb first, and the still-running hw_error path hits a
slab-use-after-free in kfree_skb().
Wrap the whole recovery sequence in hci_req_sync_lock/unlock so it
is serialized with every other synchronous HCI command issuer.
Below is the data race report and the kasan report:
BUG: data-race in __hci_cmd_sync_sk / btintel_shutdown_combined
read of hdev->req_rsp at net/bluetooth/hci_sync.c:199
by task kworker/u17:1/83:
__hci_cmd_sync_sk+0x12f2/0x1c30 net/bluetooth/hci_sync.c:200
__hci_cmd_sync+0x55/0x80 net/bluetooth/hci_sync.c:223
btintel_hw_error+0x114/0x670 drivers/bluetooth/btintel.c:254
hci_error_reset+0x348/0xa30 net/bluetooth/hci_core.c:1030
write/free by task ioctl/22580:
btintel_shutdown_combined+0xd0/0x360
drivers/bluetooth/btintel.c:3648
hci_dev_close_sync+0x9ae/0x2c10 net/bluetooth/hci_sync.c:5246
hci_dev_do_close+0x232/0x460 net/bluetooth/hci_core.c:526
BUG: KASAN: slab-use-after-free in
sk_skb_reason_drop+0x43/0x380 net/core/skbuff.c:1202
Read of size 4 at addr ffff888144a738dc
by task kworker/u17:1/83:
__hci_cmd_sync_sk+0x12f2/0x1c30 net/bluetooth/hci_sync.c:200
__hci_cmd_sync+0x55/0x80 net/bluetooth/hci_sync.c:223
btintel_hw_error+0x186/0x670 drivers/bluetooth/btintel.c:260
CVE-2026-31500 is a use-after-free vulnerability in the Linux kernel's Bluetooth Intel driver (btintel) affecting kernel versions 4.3 through 7.0-rc5. The vulnerability occurs when btintel_hw_error() races with hci_dev_do_close(), causing concurrent manipulation of HCI request structures without proper synchronization. This can lead to kernel crashes and potential code execution on systems with Intel Bluetooth devices.
IMMEDIATE ACTIONS:
1. Identify all Linux systems running kernel versions 4.3-7.0-rc5 with Intel Bluetooth devices using: uname -r && lsusb | grep -i intel
2. Disable Bluetooth on non-essential systems: systemctl disable bluetooth && systemctl stop bluetooth
3. Restrict physical access to systems with Intel Bluetooth devices
PATCHING GUIDANCE:
1. Update to Linux kernel 7.0 final release or later when available
2. For RHEL/CentOS: Apply security updates via yum update kernel
3. For Ubuntu: Run apt update && apt upgrade linux-image-generic
4. For Debian: Apply kernel updates from security.debian.org
5. Reboot systems after kernel updates
COMPENSATING CONTROLS (if immediate patching unavailable):
1. Disable Intel Bluetooth driver: echo 'blacklist btintel' >> /etc/modprobe.d/blacklist.conf
2. Implement strict access controls to Bluetooth-enabled systems
3. Monitor system logs for kernel panics: journalctl -p err -n 50
4. Use SELinux/AppArmor to restrict Bluetooth operations
DETECTION RULES:
1. Monitor kernel logs for 'slab-use-after-free' and 'btintel' messages
2. Alert on unexpected kernel panics on systems with Intel Bluetooth
3. Track Bluetooth device connection/disconnection patterns for anomalies
4. Monitor for repeated HCI command timeouts in dmesg
الإجراءات الفورية:
1. تحديد جميع أنظمة Linux التي تعمل بإصدارات النواة 4.3-7.0-rc5 مع أجهزة Bluetooth من Intel باستخدام: uname -r && lsusb | grep -i intel
2. تعطيل Bluetooth على الأنظمة غير الأساسية: systemctl disable bluetooth && systemctl stop bluetooth
3. تقييد الوصول المادي للأنظمة التي تحتوي على أجهزة Bluetooth من Intel
إرشادات التصحيح:
1. التحديث إلى إصدار Linux kernel 7.0 النهائي أو أحدث عند توفره
2. لـ RHEL/CentOS: تطبيق التحديثات الأمنية عبر yum update kernel
3. لـ Ubuntu: تشغيل apt update && apt upgrade linux-image-generic
4. لـ Debian: تطبيق تحديثات النواة من security.debian.org
5. إعادة تشغيل الأنظمة بعد تحديثات النواة
الضوابط البديلة (إذا لم يكن التصحيح الفوري متاحاً):
1. تعطيل برنامج تشغيل Intel Bluetooth: echo 'blacklist btintel' >> /etc/modprobe.d/blacklist.conf
2. تنفيذ ضوابط وصول صارمة للأنظمة المفعلة لـ Bluetooth
3. مراقبة سجلات النظام للتعطل: journalctl -p err -n 50
4. استخدام SELinux/AppArmor لتقييد عمليات Bluetooth
قواعد الكشف:
1. مراقبة سجلات النواة للرسائل 'slab-use-after-free' و 'btintel'
2. التنبيه على توقف النواة غير المتوقع على الأنظمة التي تحتوي على Bluetooth من Intel
3. تتبع أنماط الاتصال/قطع الاتصال لأجهزة Bluetooth للكشف عن الشذوذ
4. مراقبة انتهاء مهلة أوامر HCI المتكررة في dmesg