🇰🇷 한글 설명
Linux 커널의 msc313 RTC 드라이버에서 probe 과정 중 공유 인터럽트(Shared IRQ) 핸들러가 NULL 포인터를 참조하는 취약점이 발견되었습니다. 장치 초기화 중 드라이버 데이터가 설정되기 전에 다른 장치에 의해 인터럽트가 발생할 경우 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품이 준비를 다 마치기도 전에 갑자기 신호가 들어오면, 시스템이 잘못된 정보를 읽으려다 멈춰버리는 문제입니다. 이를 방지하기 위해 신호를 처리하는 방식이 더 안전하게 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
rtc: msc313: fix NULL deref in shared IRQ handler at probe
msc313_rtc_probe() calls devm_request_irq() with IRQF_SHARED and
&pdev->dev as the cookie, but platform_set_drvdata() is only called
later after the clock setup. With a shared IRQ line, another device
on the same line can trigger the handler in that window. The
handler does dev_get_drvdata() on the cookie, gets NULL, and
dereferences priv->rtc_base in interrupt context.
Pass priv as the cookie directly so the handler reads it from
dev_id without the lookup, removing the dependency on probe order.
📍 영향받는 시스템
Linux kernel (msc313 RTC driver 포함 버전)
⚔️ 공격 벡터
동일한 인터럽트 라인을 공유하는 다른 장치를 통해 특정 타이밍에 인터럽트를 유도하여 커널 패닉 유발
🛡️ 대응 방법
msc313 RTC 드라이버가 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 이후의 버전인지 확인