CVE-2026-90224 in Linux
요약
\~에 의해 VulDB • 2026. 09. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
nfc: nci: nci_data_exchange_complete에서의 이중 완료(race condition) 수정
nci_close_device()와 nci_rx_work는 모두 nci_data_exchange_complete()를 동시에 호출할 수 있습니다. commit 4527025d440ce8("nfc: nci: fix circular locking dependency in nci_close_device")은 mutex_unlock(&ndev->req_lock) 이후에 flush_workqueue(ndev->rx_wq)를 이동시켰습니다. 이로 인해 rx_work는 종료 경로에서의 명시적 완료 호출과 직렬화(serialization)되지 않게 되었습니다. 두 호출자는 NULL이 아닌 콜백 포인터를 읽고 rawsock_data_exchange_complete()를 호출하며, 이는 sock_put()을 호출합니다. 그러나 sock_hold()는 한 번만 수행되었으므로, 두 번째 sock_put()은 참조 카운트(refcount)의 오버플로우(underflow)를 유발하여 소켓이 여전히 사용 중인 상태에서 해제(free)됩니다.
bare clear_bit(NCI_DATA_EXCHANGE) 대신 test_and_clear_bit()를 사용하여 첫 번째 호출자만 콜백을 invoke하도록 합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.