CVE-2026-93247 in Linuxthông tin

Tóm tắt

Bởi VulDB • 24/09/2026

Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:

Bluetooth: mgmt: sửa lỗi dereference NULL của 'hdev->discovery.uuids'

Thành viên 'uuid_count' của struct 'discovery_state' được gán và đọc mà không có bất kỳ khóa (lock) nào, do đó tồn tại khả năng xảy ra tình huống khi uuid_count != 0 nhưng uuids là NULL, dẫn đến lỗi dereference con trỏ NULL.

Race condition có thể xảy ra: 'hci_update_passive_scan_sync' 'hci_discovery_filter_clear' hdev->discovery.uuid_count = 0; <----------------------ngắt tiền (preempted)------------------------------> 'start_service_discovery' // Đặt uuid_count thành giá trị != 0 hdev->discovery.uuid_count = uuid_count; hdev->discovery.uuids = kmemdup(...); <----------------------ngắt tiền (preempted)------------------------------> spin_lock(&hdev->discovery.lock); kfree(hdev->discovery.uuids); hdev->discovery.uuids = NULL; spin_unlock(&hdev->discovery.lock);

Bây giờ uuids == NULL và uuid_count != 0. Do đó, 'mgmt_device_found' -> 'is_filter_match' -> 'eir_has_uuids' nhận được trạng thái discovery không nhất quán, dẫn đến lỗi dereference NULL của uuids.

Để khắc phục, hãy thêm discovery.lock bao quanh mọi thao tác đọc/ghi đối với cặp thành viên struct uuid_count và uuids. Điều quan trọng là chỉ gán giá trị cho uuid_count sau khi việc phân bổ kmemdup() trong start_service_discovery() thành công; nếu không, uuids sẽ là NULL do kmemdup thất bại, nhưng uuid_count đã được gán bằng một giá trị khác 0.

Lỗi panic (crash) sau đây xảy ra:

[ ] ------------[ cắt ở đây ]------------
[ ] Không thể xử lý lỗi dereference con trỏ NULL của kernel tại địa chỉ ảo
0000000000000000 [ ] Lỗi nội bộ: Oops: 0000000096000006 [#1] PREEMPT SMP
[ ] CPU: 0 PID: 15056 Comm: kworker/u9:2
[ ] Workqueue: hci0 hci_rx_work
[ ] pstate: 10400009 (nzcV daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ ] pc : eir_has_uuids+0x2d8/0x590
[ ] lr : is_filter_match+0x258/0x320
... [ ] Call trace:
[ ] eir_has_uuids+0x2d8/0x590
[ ] is_filter_match+0x258/0x320
[ ] mgmt_device_found+0x5b0/0xafc
[ ] process_adv_report.part.0+0x8c8/0xf14
[ ] hci_le_adv_report_evt+0x338/0x3f0
[ ] hci_le_meta_evt+0x1f0/0x4c8
[ ] hci_event_packet+0x440/0xc9c
[ ] hci_rx_work+0x44c/0xaf8
[ ] process_one_work+0x54c/0x103c
[ ] worker_thread+0x6c4/0x10c4
[ ] kthread+0x274/0x2ec
[ ] ret_from_fork+0x10/0x20
[ ] Code: 14000004 91004021 eb14003f 54000180 (f9400024)
[ ] ---[ kết thúc trace 0000000000000000 ]---

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

17/09/2026

Tiết lộ

24/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!