🔍 CVE-2026-74584

7.1
CVSS Score
HIGH
2026-08-22
2026-10-16 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 RDMA/bnxt_re 드라이버에서 공유 페이지를 사용자 공간에 노출하기 전 초기화하지 않는 취약점이 발견되었습니다. 이로 인해 커널 메모리에 남아있던 민감한 데이터가 사용자 공간으로 유출될 수 있습니다.

💡 쉬운 설명

컴퓨터의 중요한 정보가 담긴 메모리 공간을 깨끗이 지우지 않고 일반 사용자에게 보여주는 실수입니다. 공격자는 이 공간을 통해 시스템의 비밀 정보를 훔쳐볼 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: RDMA/bnxt_re: zero shared page before exposing to userspace bnxt_re_alloc_ucontext() allocates uctx->shpg via __get_free_page(GFP_KERNEL). The buddy allocator does not zero pages without __GFP_ZERO, so the page contains stale kernel data from whatever object most recently freed it. The page is then mapped into userspace via vm_insert_page() under BNXT_RE_MMAP_SH_PAGE in bnxt_re_mmap(). The driver only ever writes 4 bytes (a u32 AVID) at offset BNXT_RE_AVID_OFFT (0x10) inside bnxt_re_create_ah(); the remaining 4092 bytes of the page are exposed to userspace unsanitised, leaking kernel memory contents. Any user with access to /dev/infiniband/uverbsX on a host with a bnxt_re device (typically rdma group membership) can read this data via a single mmap() at pgoff 0 after IB_USER_VERBS_CMD_GET_CONTEXT. Other shared pages in the same file already use get_zeroed_page() correctly: drivers/infiniband/hw/bnxt_re/ib_verbs.c srq->uctx_srq_page = (void *)get_zeroed_page(GFP_KERNEL); cq->uctx_cq_page = (void *)get_zeroed_page(GFP_KERNEL); uctx->shpg is the only outlier. Bring it in line with the existing convention by switching to get_zeroed_page().

📍 영향받는 시스템

bnxt_re 드라이버를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

/dev/infiniband/uverbsX 장치에 접근 권한이 있는 사용자가 mmap() 시스템 호출을 통해 메모리 내용을 읽음

🛡️ 대응 방법

커널 패치를 적용하여 __get_free_page() 대신 get_zeroed_page()를 사용하도록 업데이트

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel