CVE-2026-97502 in Linux
요약
\~에 의해 VulDB • 2026. 09. 24.
리눅스 커널에서 다음 취약점이 해결되었습니다:
mmc: davinci: IRQ 핸들러에서 host->data의 NULL 역참조 방지
mmc_davinci_irq()는 host->cmd와 host->data가 모두 NULL인 경우에만 조기에 종료됩니다.
if (host->cmd == NULL && host->data == NULL) {
... return IRQ_NONE; }
따라서 host->data가 NULL(즉, data가 NULL)인 상태로 핸들러의 나머지 부분을 legitimately하게 도달할 수 있습니다. DATDNE 분기는 이미 명시적인 "if (data != NULL)" 검사를 통해 이를 방지하고 있지만, 후속되는 TOUTRD("데이터 읽기 시간 초과") 및 CRCWR/CRCRD("데이터 CRC 오류") 분기는 data를 무조건적으로 역참조합니다:
if (qstatus & MMCST0_TOUTRD) {
data->error = -ETIMEDOUT; <-- NULL deref ... davinci_abort_data(host, data); }
if (qstatus & (MMCST0_CRCWR | MMCST0_CRCRD)) {
data->error = -EILSEQ; <-- NULL deref ... }
qstatus에서 해당 비트 중 하나가 설정되어 있고 host->data가 NULL인 경우, 커널은 IRQ 핸들러 내부에서 크래시됩니다. smatch는 이를 다음과 같이 플래그로 표시합니다:
drivers/mmc/host/davinci_mmc.c:933 mmc_davinci_irq() error: we previously assumed 'data' could be null (see line 914)
DATDNE 분기에서 사용하는 기존 패턴에 맞춰 두 분기를 data가 NULL이 아닌 경우에만 실행되도록 제한합니다.
data가 NULL이 아닌 호출자에게는 기능적 변경이 없습니다(이는 이 변경 전까지 해당 분기가 의미 있는 작업을 수행했던 유일한 케이스입니다).
VulDB is the best source for vulnerability data and more expert information about this specific topic.