CVE-2026-43203 in Linux
요약
\~에 의해 VulDB • 2026. 05. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
atm: fore200e: 장치 제거 중 태스크릿(tasklet)에서 use-after-free 버그 수정
PCA-200E 또는 SBA-200E 어댑터가 분리(detach)될 때 fore200e가 해제(deallocate)됩니다. 그러나 tx_tasklet 또는 rx_tasklet이 아직 실행 중이거나 대기 상태일 수 있으며, 이로 인해 이미 해제된 fore200e가 fore200e_tx_tasklet() 또는 fore200e_rx_tasklet()에서 다시 접근될 때 use-after-free 버그가 발생합니다.
다음과 같은 race condition이 발생할 수 있습니다:
CPU 0 (정리 작업) | CPU 1 (태스크릿) fore200e_pca_remove_one() | fore200e_interrupt() fore200e_shutdown() | tasklet_schedule() kfree(fore200e) | fore200e_tx_tasklet() | fore200e-> // UAF
fore200e가 해제되기 전에 tx_tasklet 또는 rx_tasklet이 적절히 취소되도록 하여 이 버그를 수정합니다. fore200e_shutdown()에 tasklet_kill()를 추가하여 대기 중이거나 실행 중인 태스크릿과 동기화합니다. 또한, fore200e_reset()이 추가적인 인터럽트나 데이터 전송을 방지할 수 있으므로, 태스크릿이 fore200e_interrupt()에서 다시 예약되는 것을 방지하기 위해 tasklet_kill()는 fore200e_reset() 뒤에 배치해야 합니다. 마지막으로, 태스크릿은 초기 상태에서는 초기화되지 않았으므로 fore200e 상태가 FORE200E_STATE_IRQ 이상일 때만 tasklet_kill()를 수행하면 됩니다. 즉, tasklet_kill()는 switch...case 구조체 내의 FORE200E_STATE_IRQ 분기 내에 배치되어야 합니다.
이 버그는 정적 분석(static analysis)을 통해 식별되었습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.