🇰🇷 한글 설명
Linux 커널의 RDMA/rxe 드라이버에서 rxe_create_qp() 함수의 오류 처리 경로(error unwind) 결함이 수정되었습니다. rxe_qp_from_init()에서 실패하면 초기화되지 않은 스핀락에 접근하여 커널 오프스(oops)가 발생할 수 있었으며, 스핀락 초기화를 실패 지점 이전으로 옮겨 해결했습니다.
💡 쉬운 설명
Linux 커널의 InfiniBand/RDMA 관련 드라이버에서 오류가 발생했을 때 정리 과정이 잘못되어 시스템이 비정상 종료될 수 있었습니다. 이 문제는 초기화 순서를 바로잡아 해결되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix error unwind in rxe_create_qp()
In the function rxe_create_qp(), rxe_qp_from_init() is called to
initialize qp, internally things like the spin locks are not setup until
rxe_qp_init_req().
If an error occures before this point then the unwind will call
rxe_cleanup() and eventually to rxe_qp_do_cleanup()/rxe_cleanup_task()
which will oops when trying to access the uninitialized spinlock.
Move the spinlock initializations earlier before any failures.
📍 영향받는 시스템
RDMA rxe(Soft RoCE) 드라이버를 포함하는 Linux 커널 (수정 이전 버전)
⚔️ 공격 벡터
로컬 또는 RDMA 리소스 생성 과정에서 오류 조건을 유발하여 커널 패닉(서비스 거부)을 일으킬 수 있음
🛡️ 대응 방법
배포판의 최신 Linux 커널 업데이트를 적용하고 재부팅하여 수정된 커널로 전환
🔧 검증 코드
커널 버전이 해당 배포판의 보안 업데이트 적용 버전 이상인지 확인하고, rdma_rxe 모듈이 없으면 해당 드라이버가 사용되지 않으므로 영향이 없음을 의미합니다.
uname -r && (modinfo rdma_rxe 2>/dev/null | grep -E '^(version|filename)')