🇰🇷 한글 설명
Linux 커널의 RDMA/core 구성 요소에서 ib_dealloc_pd_user() 함수 호출 시 발생할 수 있는 Use-After-Free 취약점이 발견되었습니다. PD(Protection Domain)를 해제하는 과정에서 동기화 메커니즘인 rdma_restrack_del()이 너무 늦게 호출되어, 리소스가 해제된 후에도 PD에 접근할 수 있는 짧은 시간적 간극이 발생합니다.
💡 쉬운 설명
컴퓨터가 사용 중인 메모리 자원을 삭제하는 과정에서 순서가 잘못되어, 이미 삭제된 자원을 다시 사용하려고 시도할 때 발생하는 오류입니다. 이로 인해 시스템이 충돌하거나 보안 공격에 노출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Fix potential use after free in ib_dealloc_pd_user()
When accessing a PD via the netlink path the only synchronization
mechanism for the said PD is rdma_restrack_get().
Currently, rdma_restrack_del() is invoked at the end of
ib_dealloc_pd_user(), which is too late, since by that point
vendor-specific resources associated with the PD might already be
freed. This can leave a short window where the PD remains accessible
through restrack, leading to a potential use-after-free.
Fix this by moving the rdma_restrack_begin_del() call to the start of
ib_dealloc_pd_user(), ensuring that the PD is removed from restrack
before its internal resources are released. This guarantees that no new
users hold references to a PD that is in the process of destruction.
In addition, this change preserves the intended inverted order
between create and destroy routines: resources are added to
restrack at the end of successful creation, and hence shall be removed
from the restrack first thing during the destruction flow, which keeps
the lifecycle management consistent and predictable.
📍 영향받는 시스템
RDMA 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
Netlink 경로를 통해 RDMA Protection Domain(PD)에 접근하여 리소스 해제 시점의 동기화 오류를 유도하는 방식
🛡️ 대응 방법
rdma_restrack_begin_del() 호출 시점을 ib_dealloc_pd_user() 함수의 시작 부분으로 이동시킨 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.