🇰🇷 한글 설명
Linux 커널의 spi: uniphier 드라이버에서 인터럽트 핸들러에 사용되는 completion 객체가 devm_request_irq() 호출 전에 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 인터럽트가 즉시 발생할 경우 초기화되지 않은 객체에 complete()가 호출되어 정의되지 않은 동작이 발생할 수 있습니다.
💡 쉬운 설명
장치가 신호를 보내기 전에 준비 작업을 마치지 못해 시스템이 혼란에 빠지는 문제입니다. 이로 인해 컴퓨터 시스템이 예상치 못한 방식으로 작동하거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
spi: uniphier: Fix completion initialization order before devm_request_irq()
The driver calls devm_request_irq() before initializing the completion
used by the interrupt handler. Because the interrupt may occur immediately
after devm_request_irq(), the handler may execute before init_completion().
This may result in calling complete() on an uninitialized completion,
causing undefined behavior. This has been observed with KASAN.
Fix this by initializing the completion before registering the IRQ.
📍 영향받는 시스템
Linux kernel (spi: uniphier driver 포함 버전)
⚔️ 공격 벡터
특정 하드웨어 인터럽트 발생을 유도하여 커널의 정의되지 않은 동작(Undefined Behavior) 유발
🛡️ 대응 방법
커널 패치를 적용하여 인터럽트 등록(devm_request_irq) 전에 completion을 먼저 초기화하도록 수정
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.