CVE-2026-89527 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
svcrdma: 생성 실패 시 리스너를 해제하기 위해 svc_xprt_put() 사용
svc_rdma_create()는 svc_rdma_create_listen_id()가 실패할 때 kfree(cma_xprt)를 호출합니다. svc_xprt_init()은 이미 get_net_track()를 통해 네임스페이스 참조를 획득했습니다. 그러나 kfree는 이를 해제하는 svc_xprt_free()를 우회합니다.
kref_init의 초기 생성(ref birth) 참조가 0이 되고 svc_xprt_free()가 svc_rdma_free()를 호출하여 적절히 정리되도록 kfree() 대신 svc_xprt_put()로 교체합니다. 이때 sc_cm_id는 여전히 NULL 상태입니다. 선행 패치에서 svc_rdma_free()에 필요한 NULL 가드가 추가되었습니다.
svc_xprt_free()는 module_put()을 통해 모듈 참조도 감소시키지만, 호출자인 _svc_xprt_create() 또한 xpo_create 실패 시 동일한 작업을 수행하여, 획득한 단일 try_module_get()이 이중으로 해제(double-put)되는 문제가 있습니다. svc_xprt_put() 전에 __module_get()을 사용하여 카운터를 균형 있게 유지하고, 이는 svc_rdma_accept()'s의 오류 경로에서 따르는 관례와 일치합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.