🔍 CVE-2023-54048

7.8
CVSS Score
HIGH
2025-12-24
2026-10-15 22:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 RDMA/bnxt_re 드라이버에서 QP(Queue Pair)가 파괴된 후에도 완료 핸들러가 실행될 수 있는 레이스 컨디션 취약점이 발견되었습니다. 하드웨어가 QP 파괴 후에도 완료 신호를 생성할 수 있어, CQ(Completion Queue)가 해제된 후에도 폴링이 시도되어 커널 패닉을 유발할 수 있습니다.

💡 쉬운 설명

네트워크 장치를 사용하는 과정에서 작업이 끝났다는 신호를 처리하는 도중, 처리해야 할 대상이 이미 삭제되어 시스템이 충돌하는 문제입니다. 이로 인해 컴퓨터 시스템이 갑자기 멈추거나 재부팅될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: RDMA/bnxt_re: Prevent handling any completions after qp destroy HW may generate completions that indicates QP is destroyed. Driver should not be scheduling any more completion handlers for this QP, after the QP is destroyed. Since CQs are active during the QP destroy, driver may still schedule completion handlers. This can cause a race where the destroy_cq and poll_cq running simultaneously. Snippet of kernel panic while doing bnxt_re driver load unload in loop. This indicates a poll after the CQ is freed.  [77786.481636] Call Trace: [77786.481640]  <TASK> [77786.481644]  bnxt_re_poll_cq+0x14a/0x620 [bnxt_re] [77786.481658]  ? kvm_clock_read+0x14/0x30 [77786.481693]  __ib_process_cq+0x57/0x190 [ib_core] [77786.481728]  ib_cq_poll_work+0x26/0x80 [ib_core] [77786.481761]  process_one_work+0x1e5/0x3f0 [77786.481768]  worker_thread+0x50/0x3a0 [77786.481785]  ? __pfx_worker_thread+0x10/0x10 [77786.481790]  kthread+0xe2/0x110 [77786.481794]  ? __pfx_kthread+0x10/0x10 [77786.481797]  ret_from_fork+0x2c/0x50 To avoid this, complete all completion handlers before returning the destroy QP. If free_cq is called soon after destroy_qp, IB stack will cancel the CQ work before invoking the destroy_cq verb and this will prevent any race mentioned.

📍 영향받는 시스템

Linux kernel (bnxt_re driver 사용 환경)

⚔️ 공격 벡터

로컬 환경에서 드라이버를 반복적으로 로드/언로드하거나 특정 RDMA 작업을 수행하여 레이스 컨디션 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 QP 파괴 시 완료 핸들러 처리를 보장해야 함

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전 이상인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel