🇰🇷 한글 설명
Linux 커널의 RDMA/rxe 모듈에서 non-SRQ 수신 경로 처리 중 WQE를 로컬 버퍼로 복사하지 않아 발생하는 취약점입니다. 악의적인 사용자가 커널이 WQE를 처리하는 동안 사용자 공간에 매핑된 공유 큐 버퍼의 필드를 수정하여 out-of-bounds 읽기를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 부품인 커널이 데이터를 처리하는 동안, 사용자가 중간에 데이터를 몰래 바꿔치기할 수 있는 허점이 발견되었습니다. 이로 인해 시스템이 허용되지 않은 메모리 영역을 읽어 들여 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Copy WQE to local buffer in non-SRQ receive path
For non-SRQ QPs, the responder reads WQE fields directly from the
shared queue buffer mapped into userspace. This allows a malicious
user to modify fields like num_sge or sge entries while the kernel
is processing the WQE, leading to out-of-bounds reads in
rxe_resp_check_length() and copy_data().
Introduce get_recv_wqe() that validates num_sge and copies the WQE
to a kernel-local buffer before processing, matching the approach
already used for SRQ WQEs in get_srq_wqe(). The srq_wqe buffer is
reused since SRQ and non-SRQ paths are mutually exclusive per QP.
📍 영향받는 시스템
RDMA/rxe 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
사용자 공간에 매핑된 공유 큐 버퍼의 WQE 필드(num_sge 등)를 커널 처리 과정 중에 실시간으로 수정
🛡️ 대응 방법
WQE를 처리하기 전 커널 로컬 버퍼로 복사하여 검증하는 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 보안 패치 버전 이상인지 확인