CVE-2026-74575 in Linux
요약
\~에 의해 VulDB • 2026. 08. 15.
리눅스 커널에서 다음 취약점이 해결되었습니다:
thunderbolt: 연결 해제 시 XDomain 지연 작업의 use-after-free 방지
tb_xdp_handle_request()는 system_wq에서 실행되며, 세 가지 요청 처리기(PROPERTIES_CHANGED_REQUEST, UUID_REQUEST(start_handshake를 통해), LINK_STATE_CHANGE_REQUEST) 내에서 queue_delayed_work()를 사용하여 xd->state_work을 큐에 추가합니다. 마찬가지로 update_xdomain()은 로컬 속성이 변경될 때 xd->properties_changed_work을 큐에 추가합니다.
동시에 tb_xdomain_remove()는 stop_handshake()를 호출하여 두 지연 작업 모두에 대해 cancel_delayed_work_sync()를 수행합니다. 이후 tb_xdomain_unregister()는 device_unregister()를 호출하며, 이는 결국 xdomain의 메모리를 해제(frees)하게 됩니다. 커밋 559c1e1e0134("thunderbolt: Run tb_xdp_handle_request() in system workqueue")가 요청 처리기를 tb->wq에서 분리한 이후로, 해당 핸들러와 제거 경로(remove path)는 더 이상 직렬화(serialized)되지 않습니다. 만약 queue_delayed_work()가 cancel_delayed_work_sync() 실행 후 xdomain이 해제되기 전에 실행되면, 지연 작업은 이미 해제된 객체(freed object)에서 트리거됩니다.
tb_xdomain_remove()가 stop_handshake() 호출 전 xd->lock 하에 설정하는 xd->removing 플래그를 추가합니다. 각 외부 큐 사이트는 동일한 잠금(lock)을 유지하며 queue_delayed_work() 호출 전에 removing 상태를 확인합니다. 이는 필요한 상호 배타성(mutual exclusion)을 제공합니다: 즉, 큐 사이트가 먼저 잠금을 획득하여 이후 취소(cancel)에서 확인할 작업을 큐에 넣거나, 제거 경로가 먼저 잠금을 획득하면 큐 사이트는 removing == true를 관찰하고 큐 추가를 건너뜁니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.