🇰🇷 한글 설명
Linux 커널의 Thunderbolt 드라이버에서 구성 요청을 중복으로 제거(double dequeue)하는 취약점이 발견되었습니다. 이로 인해 리스트 포이즌(list poison) 참조가 발생하여 시스템이 일반 보호 오류(General Protection Fault)와 함께 충돌할 수 있습니다.
💡 쉬운 설명
컴퓨터의 Thunderbolt 연결을 관리하는 과정에서 똑같은 작업 요청을 두 번 처리하려고 시도하다가 시스템이 멈추거나 꺼지는 문제입니다. 잘못된 메모리 주소를 참조하게 되어 발생하는 오류입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
thunderbolt: Do not double dequeue a configuration request
Some of our devices crash in tb_cfg_request_dequeue():
general protection fault, probably for non-canonical address 0xdead000000000122
CPU: 6 PID: 91007 Comm: kworker/6:2 Tainted: G U W 6.6.65
RIP: 0010:tb_cfg_request_dequeue+0x2d/0xa0
Call Trace:
<TASK>
? tb_cfg_request_dequeue+0x2d/0xa0
tb_cfg_request_work+0x33/0x80
worker_thread+0x386/0x8f0
kthread+0xed/0x110
ret_from_fork+0x38/0x50
ret_from_fork_asm+0x1b/0x30
The circumstances are unclear, however, the theory is that
tb_cfg_request_work() can be scheduled twice for a request:
first time via frame.callback from ring_work() and second
time from tb_cfg_request(). Both times kworkers will execute
tb_cfg_request_dequeue(), which results in double list_del()
from the ctl->request_queue (the list poison deference hints
at it: 0xdead000000000122).
Do not dequeue requests that don't have TB_CFG_REQUEST_ACTIVE
bit set.
📍 영향받는 시스템
Linux kernel (Thunderbolt driver 관련 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 Thunderbolt 구성 요청을 유도하여 커널 패닉을 유발할 수 있음
🛡️ 대응 방법
Thunderbolt 구성 요청의 활성 상태(TB_CFG_REQUEST_ACTIVE)를 확인하도록 커널을 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 수정된 최신 패치 버전인지 확인하십시오.