🇰🇷 한글 설명
Linux 커널의 RDMA/umem 구성 요소에서 4GB 이상의 블록 크기를 처리할 때 발생하는 취약점입니다. IOMMU 사용 시 분할된 SG 엔트리를 재조립하는 과정에서 32비트 스택 값 오버플로가 발생하여 잘못된 DMA 주소가 계산될 수 있습니다.
💡 쉬운 설명
대용량 데이터를 전송할 때 컴퓨터가 주소를 계산하는 과정에서 숫자가 너무 커져 오류가 발생하는 문제입니다. 이로 인해 데이터가 엉뚱한 메모리 위치로 전달될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/umem: Fix truncation for block sizes >= 4G
When the iommu is used the linearization of the mapping can give a single
block that is very large split across multiple SG entries.
When __rdma_block_iter_next() reassembles the split SG entries it is
overflowing the 32 bit stack values and computed the wrong DMA addresses
for blocks after the truncation.
Use the right types to hold DMA addresses.
📍 영향받는 시스템
IOMMU를 사용하는 RDMA 기능이 활성화된 Linux 커널 시스템
⚔️ 공격 벡터
조작된 대용량 RDMA 데이터 전송을 통한 메모리 주소 오염 및 권한 상승 시도
🛡️ 대응 방법
RDMA/umem의 DMA 주소 처리 타입을 수정하여 패치된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전인지 배포판 보안 공지를 통해 확인