🔍 CVE-2026-99035

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 MediaTek MMC 호스트 드라이버(mtk-sd)에서, 드라이버 제거(unbind) 시 request timeout 작업이 아직 실행 중일 수 있음에도 cancel_delayed_work()만 사용해 해당 콜백이 끝나기 전에 host 리소스가 해제되는 use-after-free 문제가 있습니다. 수정은 cancel_delayed_work_sync()를 사용해 콜백 완료를 기다리도록 변경하는 것입니다.

💡 쉬운 설명

기기의 저장장치 드라이버를 제거하는 과정에서 아직 끝나지 않은 작업이 이미 해제된 메모리에 접근할 수 있는 버그입니다. 이로 인해 시스템이 불안정해지거나 충돌할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: mmc: mtk-sd: Cancel request timeout work on remove The driver queues req_timeout while a request is active. msdc_request_done() uses cancel_delayed_work(), which does not wait for a timeout callback that has already started. The timeout callback calls mmc_request_done(), which wakes the request waiter, and then continues to use host->dev_comp and check the SDIO IRQ. During unbind, msdc_drv_remove() can return and the managed mmc_host can be freed before the callback finishes. KASAN reported use-after-free accesses in msdc_request_done() and msdc_recheck_sdio_irq() in each of three unbind tests. The same tests completed without a kernel diagnostic after this change. Call cancel_delayed_work_sync() after mmc_remove_host() has stopped new requests and before the driver releases the host resources.

📍 영향받는 시스템

MediaTek mtk-sd MMC 드라이버를 사용하는 Linux 커널 (수정 커밋 이전 버전), 주로 MediaTek SoC 기반 기기

⚔️ 공격 벡터

드라이버 unbind 과정에서 발생하는 타이밍 경쟁 조건으로, 일반적으로 로컬 권한이 필요하며 원격 공격 경로는 명확하지 않음

🛡️ 대응 방법

커널을 해당 수정이 포함된 최신 안정 버전으로 업데이트하거나, 패치에서 cancel_delayed_work()를 cancel_delayed_work_sync()로 변경하여 적용

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 안정 브랜치의 수정 버전과 비교하여, 해당 패치가 포함되었는지 확인합니다. 패치 포함 여부는 커널 소스의 drivers/mmc/host/mtk-sd.c에서 msdc_drv_remove 주변에 cancel_delayed_work_sync가 있는지로도 확인할 수 있습니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel