🇰🇷 한글 설명
Linux 커널의 mxcmc 드라이버에서 장치 제거 시 비동기 작업과 워치독 타이머가 적절히 취소되지 않는 취약점이 발견되었습니다. 이로 인해 장치가 해제된 후에도 타이머나 데이터 작업이 실행되어 메모리 참조 오류(Use-After-Free)가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 제거할 때 하던 일을 제대로 멈추지 않아, 이미 사라진 부품을 다시 건드리려다 시스템이 충돌하는 문제입니다. 이로 인해 시스템이 멈추거나 예상치 못한 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mmc: mxcmmc: cancel data work and watchdog on remove
mxcmci_remove() frees the host through the devm tail, but neither it nor
mmc_remove_host() drains the driver's own asynchronous state.
host->watchdog, a 10 s timer armed on the DMA path in mxcmci_setup_data(),
is deleted only by the DMA- and IRQ-complete paths, which the remove path
does not explicitly drain; it can therefore fire after the host is freed
and dereference it in mxcmci_watchdog(). host->datawork, armed from the
IRQ handler on the PIO path, is not cancelled by the remove path either.
Free the devm-registered IRQ, then cancel datawork and delete the watchdog
in mxcmci_remove(), before dma_release_channel(). Freeing the IRQ first
keeps a trailing handler from re-arming datawork between the cancel and
the host free. Both callbacks are non-self-rearming.
This issue was found by an in-house static analysis tool.
📍 영향받는 시스템
Linux kernel (mxcmc 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 장치 제거 프로세스를 유도하여 커널 메모리 오류를 발생시킴
🛡️ 대응 방법
커널 패치를 적용하여 mxcmci_remove() 함수에서 IRQ 해제 및 워치독/데이터 작업 취소 로직을 포함해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 확인하십시오.