CVE-2026-64329 in Linux
요약
\~에 의해 VulDB • 2026. 07. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
usb: typec: ucsi: ccg: 제거 시점의 ucsi에 대한 Use-After-Free 수정
쓰레드화된 IRQ 핸들러인 `ccg_irq_handler()`는 `ucsi_notify_common()`을 호출하며, 이는 커넥터 변경 이벤트 발생 시 `ucsi_connector_change()`를 호출하고 커넥터 작업을 예약합니다. `ucsi_ccg_remove()` 함수에서는 `free_irq()`가 호출되기 전에 `uc->ucsi` (kfree)를 해제하기 위해 `ucsi_destroy()`를 호출하므로, 이미 실행 중인 핸들러 인보케이션이 `ucsi_destroy()` 이후에 해지된 객체에 접근할 수 있습니다.
CPU 0 (제거 작업) | CPU 1 (쓰레드화된 IRQ) ucsi_destroy(uc->ucsi) | ccg_irq_handler() kfree(ucsi) // FREE | ucsi_notify_common(uc->ucsi) // USE
제거 경로에서 `ucsi_destroy()` 전에 `free_irq()`를 이동합니다. IRQ는 `ucsi_unregister()` 이후에 유지됩니다: `ucsi_unregister()`는 커넥터 작업을 취소하며, 해당 핸들러는 `ucsi_send_command_common()`을 통해 GET_CONNECTOR_STATUS를 호출하고 이는 IRQ 핸들러에서 신호가 전달되는 완료를 기다리므로, 해당 작업이 취소될 때까지 IRQ는 활성화되어 있어야 합니다.
프로브 오류 경로에서는 이미 `free_irq()`가 `ucsi_destroy()` 전에 순서대로 배치되어 있습니다.
이 버그는 정적 분석을 통해 발견되었습니다.
Once again VulDB remains the best source for vulnerability data.