🇰🇷 한글 설명
Linux 커널의 RDMA/core 구성 요소에서 ib_free_cq() 함수 호출 시 발생할 수 있는 Use-After-Free 취약점이 발견되었습니다. CQ(Completion Queue)를 해제할 때 리스트에서 제거하는 작업이 너무 늦게 수행되어, 특정 자원이 해제된 후에도 해당 객체에 접근할 수 있는 보안 허점이 존재합니다.
💡 쉬운 설명
컴퓨터가 사용 중인 데이터를 삭제할 때, 삭제 목록에서 먼저 지우지 않고 데이터부터 지워버려서 발생하는 문제입니다. 이로 인해 시스템이 이미 사라진 데이터를 다시 사용하려고 시도하다가 오류가 나거나 해킹될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in ib_free_cq()
When accessing a CQ via the netlink path the only synchronization
mechanism for the said CQ is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
ib_free_cq(), which is too late, since by that point
vendor-specific resources associated with the CQ might already be
freed. This can leave a short window where the CQ remains accessible
through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_del() call to be before the freeing
of the vendor-specific resources ensuring that the CQ is removed from
restrack before its internal resources are released.
This guarantees that no new users hold references to a CQ that is in
the process of destruction.
📍 영향받는 시스템
RDMA 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
Netlink 경로를 통해 CQ에 접근하여 특정 타이밍에 자원 해제를 유도하는 방식
🛡️ 대응 방법
RDMA 관련 커널 패치를 적용하여 rdma_restrack_del() 호출 시점을 자원 해제 전으로 변경
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.