🇰🇷 한글 설명
리눅스 커널의 dw-edma 드라이버에서 원격 설정 시 DMA 전송 시작 전 동기화 읽기 과정이 누락되어 발생하는 레이스 컨디션 취약점입니다. 연결 리스트 요소와 포인터가 컨트롤러 레지스터와 다른 메모리에 저장되어 있어, 쓰기가 완료되기 전에 도어벨 레지스터가 토글될 경우 오류가 발생할 수 있습니다.
💡 쉬운 설명
데이터를 옮기기 위한 준비 작업이 완전히 끝나기도 전에 명령이 내려져서 데이터가 꼬이는 문제입니다. 이로 인해 시스템이 예상치 못한 동작을 하거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
The Linked list element and pointer are not stored in the same memory as
the eDMA controller register. If the doorbell register is toggled before
the full write of the linked list a race condition error will occur.
In remote setup we can only use a readl to the memory to assure the full
write has occurred.
📍 영향받는 시스템
dw-edma 드라이버를 사용하는 Linux Kernel 기반 시스템
⚔️ 공격 벡터
특정 하드웨어 설정 환경에서 메모리 쓰기 완료 전 DMA 전송을 트리거하는 레이스 컨디션 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 dmaengine 패치를 적용하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.