🇰🇷 한글 설명
Linux 커널의 dmaengine dw-edma 드라이버에서 인터럽트 처리 중 락(lock) 해제 시점이 부적절하여 발생하는 레이스 컨디션 취약점입니다. 중단 처리 과정에서 상태 업데이트와 요청 변경 사이에 락이 해제되어, 새로운 작업이 대기 상태로 남겨지는 문제가 발생할 수 있습니다.
💡 쉬운 설명
데이터 전송을 관리하는 장치에서 작업이 취소될 때, 시스템이 잠시 혼란을 느껴 새로운 작업을 시작하지 못하고 멈춰버리는 문제입니다. 이로 인해 특정 하드웨어 가속 기능이 제대로 작동하지 않을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: dw-edma: Serialize abort state updates
dw_edma_abort_interrupt() drops vc.lock before changing request and
status. issue_pending() can acquire the lock in that small window,
observe the old busy state, and skip starting queued descriptors. Then
the abort handler overwrites the channel status as idle, leaving the new
descriptors stranded for good.
Keep descriptor completion and the state transition in the same critical
section.
📍 영향받는 시스템
Linux kernel (dmaengine: dw-edma 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 인터럽트 타이밍을 조작하여 DMA 엔진의 상태를 고립시킴 (Race Condition)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 상태 전이 과정을 임계 구역(Critical Section) 내로 보호해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.