🔍 CVE-2026-89798

0.0
CVSS Score
UNKNOWN
2026-09-16
2026-10-19 09:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 rpcrdma 구성 요소에서 알림 콜백 함수가 등록되기 전에 객체가 공개되어 발생하는 레이스 컨디션 취약점입니다. 장치 제거와 새로운 등록이 동시에 발생할 경우 NULL 함수 포인터를 호출하여 시스템 충돌이나 커널 패닉을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터의 부품을 새로 연결하고 동시에 제거할 때, 준비가 덜 된 상태의 정보를 참조하여 시스템이 멈추는 오류입니다. 작업 순서가 꼬이면서 빈 주소를 실행하려고 시도하기 때문에 발생합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: rpcrdma: arm rn_done before publishing the notification rpcrdma_rn_register() inserts @rn into rd_xa with xa_alloc() before storing the caller's callback in rn->rn_done. The xarray makes @rn reachable to rpcrdma_remove_one(), which walks rd_xa and invokes rn->rn_done(rn) for every registered notification. A device removal that races a fresh registration can therefore observe @rn with rn_done still NULL, because the notification objects are zero allocated by their owners, and call through a NULL function pointer. Store rn->rn_done before xa_alloc() publishes @rn. The xarray's store-side and load-side ordering then guarantees that any CPU which finds @rn in rd_xa also observes the armed callback. rpcrdma_rn_unregister() treats a non-NULL rn_done as the sentinel for a completed registration, so the early store must not survive a failed registration. Clear rn_done again when xa_alloc() fails. Were it left set, the failed-accept cleanup path would call rpcrdma_rn_unregister() on an @rn that was never inserted, erasing an unrelated rd_xa slot and underflowing rd_kref.

📍 영향받는 시스템

Linux kernel (rpcrdma module 사용 환경)

⚔️ 공격 벡터

장치 등록과 제거를 동시에 수행하는 레이스 컨디션 유도 (Local/Race Condition)

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전인지 확인하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel