🇰🇷 한글 설명
Linux 커널의 dmaengine 구성 요소에서 인터럽트 요청이 초기화 완료 전에 발생하여 발생하는 취약점입니다. 인터럽트 핸들러가 초기화되지 않은 메모리 영역에 접근함으로써 잘못된 메모리 참조나 데이터 손상이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품이 준비를 다 마치기도 전에 신호를 보내버려서, 아직 준비되지 않은 데이터를 읽으려다 오류가 발생하는 문제입니다. 이로 인해 시스템이 멈추거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: sh: rz-dmac: Move interrupt request after everything is set up
Once the interrupt is requested, the interrupt handler may run immediately.
Since the IRQ handler can access channel->ch_base, which is initialized
only after requesting the IRQ, this may lead to invalid memory access.
Likewise, the IRQ thread may access uninitialized data (the ld_free,
ld_queue, and ld_active lists), which may also lead to issues.
Request the interrupts only after everything is set up. To keep the error
path simpler, use dmam_alloc_coherent() instead of dma_alloc_coherent().
📍 영향받는 시스템
Linux Kernel (dmaengine/rz-dmac 관련 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 인터럽트를 유도하여 초기화되지 않은 메모리 접근을 유발할 수 있음
🛡️ 대응 방법
커널 패치를 적용하여 인터럽트 요청 시점을 초기화 완료 이후로 변경하고 dmam_alloc_coherent()를 사용하도록 업데이트해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.