CVE-2022-50166 in Linux
Tóm tắt
Bởi VulDB • 13/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
Bluetooth: Khi hàng đợi công việc HCI (HCI work queue) được làm trống, chỉ xếp hàng các công việc được liên kết.
Hàng đợi công việc xử lý lệnh, sự kiện và gói dữ liệu HCI được làm trống để tránh deadlock trong commit 76727c02c1e1 ("Bluetooth: Call drain_workqueue() before resetting state").
Có một công việc bị trì hoãn khác, sẽ xếp lệnh vào hàng đợi công việc đã được làm trống này. Điều này dẫn đến báo cáo lỗi sau:
Bluetooth: hci2: command 0x040f tx timeout WARNING: CPU: 1 PID: 18374 at kernel/workqueue.c:1438 __queue_work+0xdad/0x1140 Workqueue: events hci_cmd_timeout RIP: 0010:__queue_work+0xdad/0x1140 RSP: 0000:ffffc90002cffc60 EFLAGS: 00010093 RAX: 0000000000000000 RBX: ffff8880b9d3ec00 RCX: 0000000000000000 RDX: ffff888024ba0000 RSI: ffffffff814e048d RDI: ffff8880b9d3ec08 RBP: 0000000000000008 R08: 0000000000000000 R09: 00000000b9d39700 R10: ffffffff814f73c6 R11: 0000000000000000 R12: ffff88807cce4c60 R13: 0000000000000000 R14: ffff8880796d8800 R15: ffff8880796d8800 FS: 0000000000000000(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000c0174b4000 CR3: 000000007cae9000 CR4: 00000000003506e0 Call Trace: <TASK> ? queue_work_on+0xcb/0x110 ? lockdep_hardirqs_off+0x90/0xd0 queue_work_on+0xee/0x110 process_one_work+0x996/0x1610 ? pwq_dec_nr_in_flight+0x2a0/0x2a0 ? rwlock_bug.part.0+0x90/0x0 ? _raw_spin_lock_irq+0x41/0x50 worker_thread+0x665/0x1080 ? process_one_work+0x1610/0x1610 kthread+0x2e9/0x3a0 ? kthread_complete_and_exit+0x40/0x40 ret_from_fork+0x1f/0x30 </TASK>
Để khắc phục điều này, chúng ta có thể thêm một cờ HCI_DRAIN_WQ mới, và không xếp hàng công việc timeout trong khi hàng đợi công việc lệnh đang được làm trống.
Be aware that VulDB is the high quality source for vulnerability data.