🔍 CVE-2026-89535

8.1
CVSS Score
HIGH
2026-09-11
2026-10-19 09:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 svcrdma 구성 요소에서 rdma_destroy_id 호출 전 rpcrdma_rn_unregister가 실행되지 않아 발생하는 Use-After-Free 취약점입니다. 이로 인해 이미 해제된 sc_cm_id에 대해 svc_rdma_xprt_done()이 호출될 수 있는 레이스 컨디션 위험이 존재합니다.

💡 쉬운 설명

컴퓨터의 통신 장치를 정리하는 순서가 잘못되어, 이미 사라진 통신 정보를 다시 사용하려고 시도하다가 시스템 오류가 발생할 수 있는 문제입니다. 이 과정에서 시스템이 충돌하거나 보안 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reorder rpcrdma_rn_unregister before rdma_destroy_id svc_rdma_free() caches rdma->sc_cm_id->device before teardown, then calls rdma_destroy_id(sc_cm_id) which frees the cm_id. rpcrdma_rn_unregister() follows, but between those two calls the transport's sc_rn entry is still installed in the device's rd_xa. A concurrent ib_unregister_device walk can dispatch svc_rdma_xprt_done() against the now-freed sc_cm_id. Move rpcrdma_rn_unregister() before rdma_destroy_id() so the transport's notification entry is removed from the xarray before the cm_id it references is destroyed. Also guard the sc_cm_id dereference with a NULL check: the following patches introduce paths that reach svc_rdma_free() with sc_cm_id == NULL (listener create failure, ADDR_CHANGE replacement failure).

📍 영향받는 시스템

Linux kernel (svcrdma 모듈을 사용하는 시스템)

⚔️ 공격 벡터

동시적인 장치 해제 작업(ib_unregister_device)을 유도하여 메모리 해제 후 참조(Use-After-Free)를 유발

🛡️ 대응 방법

커널 패치를 적용하여 rpcrdma_rn_unregister의 호출 순서를 변경하고 sc_cm_id에 대한 NULL 체크 로직을 추가해야 함

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel