CVE-2026-98366 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 06.

리눅스 커널에서 다음 취약점이 해결되었습니다:

RDMA/rxe: MR의 PD를 교체하기 전에 접근 플래그 검증

rxe_rereg_user_mr()는 먼저 mr->ibmr.pd를 재할당한 후 IB_MR_REREG_ACCESS 인자를 검증합니다:

if (flags & IB_MR_REREG_PD) {
rxe_put(old_pd); rxe_get(pd); mr->ibmr.pd = ibpd; }

if (flags & IB_MR_REREG_ACCESS) {
if (access & ~RXE_ACCESS_SUPPORTED_MR) return ERR_PTR(-EOPNOTSUPP); mr->access = access; }

두 플래그 모두 진입 검사를 통과합니다. 이는 RXE_MR_REREG_SUPPORTED가 IB_MR_REREG_PD | IB_MR_REREG_ACCESS이기 때문입니다. 따라서 호출자는 mr->ibmr.pd가 이미 재할당된 상태에서 접근 검사에 도달할 수 있습니다.

mr->ibmr.pd는 코어에 의해 소유되며, 성공 경로에서만 pd->usecnt를 조정합니다: ib_uverbs_rereg_mr()는 드라이버 오류 시 undo(되돌리기) 없이 put_new_uobj로 점프하므로, mr->pd == new_pd가 되지만 usecnt들은 여전히 MR을 orig_pd에 부과하고 있습니다. 그런 다음 ib_dereg_mr_user()에서 new_pd의 카운트를 감소시키는데, 이 때 메모리 창이 아직 이를 참조 중이면 그 카운트만으로 uverbs_free_pd()가 PD를 해제합니다. 이로 인해 rxe_mw_cleanup()이 해지된 메모리에 쓰기를 수행하게 됩니다:

BUG: KASAN: slab-use-after-free in __rxe_put+0x31/0xa0 Write of size 4 at addr ffff8881301dd690 by task rxe_poc/591 __rxe_put+0x31/0xa0 rxe_mw_cleanup+0x42/0x200 __rxe_cleanup+0x115/0x370 rxe_dealloc_mw+0x4c/0x80 Allocated by task 591: ib_uverbs_alloc_pd+0x258/0x540 Freed by task 591: ib_dealloc_pd_user+0x174/0x210 uverbs_free_pd+0x8d/0xc0 ib_uverbs_dealloc_pd+0x18e/0x1d0

어떤 상태도 변경하기 전에 접근 플래그를 검증하여 콜백이 요청된 모든 변경 사항을 적용하거나 전혀 적용하지 않도록 합니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-413994

EPSS

0.00000

출처

Do you need the next level of professionalism?

Upgrade your account now!