🇰🇷 한글 설명
Linux 커널의 RDMA/ionic 드라이버에서 rdma_counter 할당 시 데이터 구조를 적절히 포함하지 않아 발생하는 취약점입니다. 이로 인해 size_rdma_counter가 설정되지 않을 경우 NULL 포인터 역참조가 발생하여 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
리눅스 운영체제의 특정 통신 부품(ionic 드라이버)이 데이터를 저장할 공간을 잘못 계산하여 시스템이 갑자기 멈추거나 오류가 날 수 있는 문제입니다. 메모리 주소를 잘못 참조하여 발생하는 소프트웨어 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/ionic: Embed counter driver data in rdma_counter allocation
Commit 7e53b31acc7f ("RDMA/core: Create and destroy rdma_counter using
rdma_zalloc_drv_obj()") requires drivers implementing counter ops to
embed struct rdma_counter in a driver-specific struct, register its size
via INIT_RDMA_OBJ_SIZE, and provide a counter_init callback.
The ionic driver was merged without this adaptation, causing a NULL
pointer dereference in alloc_and_bind() since rdma_zalloc_drv_obj()
allocates zero bytes when size_rdma_counter is unset.
Consolidate struct ionic_counter into a new struct ionic_rdma_counter
that embeds struct rdma_counter, replace the xarray with a lightweight
ida for ID allocation, and add the required counter_init and
INIT_RDMA_OBJ_SIZE declarations.
📍 영향받는 시스템
Linux kernel (RDMA/ionic driver 사용 환경)
⚔️ 공격 벡터
로컬 공격자가 특정 RDMA 관련 작업을 수행하여 커널 패닉을 유도할 수 있음
🛡️ 대응 방법
커널 패치(Commit 7e53b31acc7f 포함 버전)를 적용하여 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 버전인지 확인