🇰🇷 한글 설명
Linux 커널의 amba-pl011 시리얼 드라이버에서 DMA 해제 과정 중 동기화 문제가 발생합니다. dmaengine_terminate_all() 함수가 실행 중인 콜백을 기다리지 않아 TX 버퍼가 해제된 후에도 접근할 수 있으며, RX 폴링 타이머가 포트 잠금 없이 버퍼를 읽는 취약점이 있습니다.
💡 쉬운 설명
데이터를 주고받는 통로를 닫을 때, 작업이 완전히 끝나지 않았는데 메모리를 먼저 지워버리는 문제가 있습니다. 이로 인해 시스템이 잘못된 메모리 영역을 건드려 오류가 발생하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
serial: amba-pl011: synchronize DMA teardown
dmaengine_terminate_all() does not wait for a running callback, so the TX
callback can still touch the TX buffer after it is freed. The RX poll
timer reads the RX buffers without the port lock.
Switch to dmaengine_terminate_sync() and delete the RX timer before
freeing the buffers.
📍 영향받는 시스템
Linux kernel (amba-pl011 driver components)
⚔️ 공격 벡터
로컬 공격자가 특정 시리얼 통신 상황을 유도하여 메모리 손상 또는 시스템 불안정 유발
🛡️ 대응 방법
커널 패치를 통해 dmaengine_terminate_sync()를 사용하고 버퍼 해제 전 RX 타이머를 삭제하도록 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인