🇰🇷 한글 설명
Linux 커널의 RDMA/rtrs-clt 구성 요소에서 연결이 중단될 때 CQ(Completion Queue) 풀의 크레딧이 누수되는 취약점이 발견되었습니다. 연결 프로세스 중 인터럽트가 발생하면 CQ가 제대로 해제되지 않아 장치 등록 해제 시 경고가 발생하거나 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
네트워크 연결을 시도하다가 갑자기 끊길 때, 컴퓨터가 사용하던 자원을 제대로 돌려주지 않고 계속 붙잡고 있는 문제입니다. 이로 인해 시스템 자원이 낭비되거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rtrs-clt: Fix CQ pool leak when connect is interrupted
The client borrows shared CQ credits in the ADDR_RESOLVED handler via
ib_cq_pool_get(), before the peer is connected. create_cm() can return
-ERESTARTSYS from wait_event_interruptible_timeout() without destroying
the CM ID. The init_conns() and stop-and-destroy paths then call
destroy_con_cq_qp() while cq is still NULL (no PUT) and only afterwards
rdma_destroy_id().
CMA serializes the handler against rdma_destroy_id() with handler_mutex,
but that does not order the GET against destroy_con_cq_qp(). If
ADDR_RESOLVED has already passed the DESTROYING check, it can take
con_mutex, GET credits, and then lose the con to kfree. Device
unregister later hits WARN_ON(cq->cqe_used) in ib_cq_pool_cleanup().
Set a per-connection flag under con_mutex before CQ/QP teardown so a
racing ADDR_RESOLVED cannot borrow credits after teardown has begun.
📍 영향받는 시스템
RDMA 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
직접적인 공격보다는 연결 프로세스 중 의도적인 인터럽트를 유도하여 자원 누수를 유발하는 방식
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.