🇰🇷 한글 설명
Linux 커널의 RDMA/erdma 드라이버에서 EQ 이벤트를 처리할 때 CQ 참조를 적절히 유지하지 못하는 취약점이 발견되었습니다. 이로 인해 EQ 핸들러가 xarray 락 외부에서 CQ를 호출하는 동안 erdma_destroy_cq()가 CQ를 삭제하고 자원을 해제하여 메모리 오류를 유발할 수 있습니다.
💡 쉬운 설명
데이터 전송을 관리하는 특정 부품이 사용 중인데 갑자기 삭제되어 시스템이 충돌하거나 오류가 발생할 수 있는 문제입니다. 이를 방지하기 위해 작업이 완전히 끝날 때까지 해당 부품을 안전하게 보호하는 절차가 누락되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/erdma: Hold CQ references when processing EQ events
EQ handlers look up CQs from dev->cq_xa and invoke CQ completion or
error callbacks outside the xarray lock. erdma_destroy_cq() can erase the
CQ from the xarray and free its queue buffer and doorbell record while a
previously scheduled EQ handler is still using the CQ.
Add a CQ refcount and take a reference under the xarray lock with
refcount_inc_not_zero(). Remove the CQ from the xarray before dropping
the destroy-path reference, then wait for in-flight EQ users before
releasing CQ resources.
📍 영향받는 시스템
Linux kernel (RDMA/erdma driver 사용 시스템)
⚔️ 공격 벡터
로컬 권한을 가진 공격자가 특정 RDMA 장치 조작을 통해 메모리 해제 오류(Use-After-Free) 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인