🔍 CVE-2022-50166

5.5
CVSS Score
MEDIUM
2025-06-18
2026-11-05 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 Bluetooth 서브시스템에서 HCI 작업 큐가 드레인되는 동안 명령 타임아웃 작업이 해당 큐에 다시 등록되어 발생하는 경고 및 잠재적 문제가 있었습니다. 수정으로 HCI_DRAIN_WQ 플래그를 추가하여 큐가 드레인 중일 때 타임아웃 작업을 큐에 넣지 않도록 변경되었습니다.

💡 쉬운 설명

블루투스 기기와 통신을 담당하는 리눅스 커널 부분에서 생기던 오류를 고친 내용입니다. 시스템이 멈추거나 경고가 뜨는 문제가 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: When HCI work queue is drained, only queue chained work The HCI command, event, and data packet processing workqueue is drained to avoid deadlock in commit 76727c02c1e1 ("Bluetooth: Call drain_workqueue() before resetting state"). There is another delayed work, which will queue command to this drained workqueue. Which results in the following error report: 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 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 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/0x90 ? _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> To fix this, we can add a new HCI_DRAIN_WQ flag, and don't queue the timeout workqueue while command workqueue is draining.

📍 영향받는 시스템

패치 이전의 리눅스 커널 (블루투스 HCI 서브시스템 사용 시스템)

⚔️ 공격 벡터

로컬 환경에서 블루투스 명령 타임아웃 상황을 유발하여 커널 경고 또는 서비스 중단을 일으킬 수 있음

🛡️ 대응 방법

배포판 벤더가 제공하는 최신 커널 업데이트를 설치하고 재부팅

🔧 검증 코드

출력된 커널 버전을 배포판의 보안 권고문에 명시된 수정 버전과 비교하여, 같거나 이후 버전이면 패치된 것입니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel