🇰🇷 한글 설명
Linux 커널의 MANA 네트워크 드라이버에서 RX 버퍼 할당 시 DMA 언맵(unmap) 과정이 누락되어 발생하는 취약점입니다. 이로 인해 DMA 동기화가 필요한 환경(예: swiotlb=force 설정)에서 패킷 데이터가 CPU에 올바르게 동기화되지 않아 수신 오류가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 카드가 받은 데이터를 컴퓨터의 CPU가 읽을 수 있도록 준비하는 과정이 빠져서 데이터가 깨지거나 제대로 전달되지 않는 문제입니다. 특정 보안 설정이 켜진 시스템에서 네트워크 통신이 정상적으로 작동하지 않을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: mana: Sync page pool RX frags for CPU
MANA allocates RX buffers from page pool fragments when frag_count is
greater than 1. In that case the buffers remain DMA mapped by page pool
and the RX completion path does not call dma_unmap_single(). As a result,
the implicit sync-for-CPU normally performed by dma_unmap_single() is
missing before the packet data is passed to the networking stack.
This breaks RX on configurations which require explicit DMA syncing, for
example when booted with swiotlb=force.
Fix this by recording the page pool page and DMA sync offset when the RX
buffer is allocated, and syncing the received packet range for CPU access
before handing the RX buffer to the stack.
📍 영향받는 시스템
Linux kernel (MANA driver 사용 환경, 특히 swiotlb=force 설정 시)
⚔️ 공격 벡터
직접적인 원격 공격보다는 시스템 설정에 따른 데이터 무결성 오류 및 서비스 가용성 저하 유발
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하여 RX 버퍼 할당 시 DMA 동기화 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인