🇰🇷 한글 설명
리눅스 커널의 USB Type-C Thunderbolt 드라이버에서 장치 제거 시 작업(work)을 완료하기 전에 참조를 해제하여 발생하는 취약점입니다. 이로 인해 작업 함수가 해제된 참조를 참조하거나 오류 경로에서 작업을 다시 큐에 넣으려 시도할 수 있습니다. 이를 해결하기 위해 참조를 해제하기 전 작업을 비활성화하고 완료되도록 대기하는 패치가 적용되었습니다.
💡 쉬운 설명
컴퓨터에서 썬더볼트 장치를 뽑을 때, 시스템이 장치가 완전히 사라졌다고 판단하기 전에 내부 작업이 남아 있어 충돌이 발생할 수 있는 문제입니다. 장치를 제거하는 과정에서 시스템이 혼란을 겪지 않도록 순서를 바로잡는 수정이 이루어졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: thunderbolt: Disable work before freeing tbt on remove
tbt_altmode_remove() drops the plug and cable references without
draining tbt->work. The work function dereferences those references,
and can also requeue itself in its error path. The VDM callbacks can
queue the same work item.
Disable and drain tbt->work before dropping the references. This waits
for an existing invocation and prevents subsequent schedule_work()
calls from queueing it during teardown.
This issue was found by an in-house static analysis tool and confirmed
by manual code review.
📍 영향받는 시스템
Thunderbolt 지원 기능이 포함된 리눅스 커널 버전
⚔️ 공격 벡터
장치 제거(Removal) 시 발생하는 레이스 컨디션(Race Condition)을 이용한 시스템 불안정 유도
🛡️ 대응 방법
해당 패치가 적용된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인