🔍 CVE-2026-45856

7.1
CVSS Score
HIGH
2026-05-27
2026-10-19 20:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 RDMA/uverbs 구성 요소에서 ib_uverbs_post_send 함수가 사용자 공간에서 전달된 wqe_size 값을 검증 없이 kmalloc()에 사용합니다. 이로 인해 작은 크기의 값이 입력될 경우 커널 힙 메모리의 경계를 벗어난 읽기(Out-of-bounds read)가 발생하여 민감한 커널 정보가 유출될 수 있습니다.

💡 쉬운 설명

프로그램이 메모리를 빌릴 때 실제 필요한 크기보다 훨씬 적게 빌린 뒤, 그 범위를 넘어서 다른 데이터를 읽으려고 시도하는 보안 결함입니다. 이 과정에서 컴퓨터의 중요한 비밀 정보가 외부로 새 나갈 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: RDMA/uverbs: Validate wqe_size before using it in ib_uverbs_post_send ib_uverbs_post_send() uses cmd.wqe_size from userspace without any validation before passing it to kmalloc() and using the allocated buffer as struct ib_uverbs_send_wr. If a user provides a small wqe_size value (e.g., 1), kmalloc() will succeed, but subsequent accesses to user_wr->opcode, user_wr->num_sge, and other fields will read beyond the allocated buffer, resulting in an out-of-bounds read from kernel heap memory. This could potentially leak sensitive kernel information to userspace. Additionally, providing an excessively large wqe_size can trigger a WARNING in the memory allocation path, as reported by syzkaller. This is inconsistent with ib_uverbs_unmarshall_recv() which properly validates that wqe_size >= sizeof(struct ib_uverbs_recv_wr) before proceeding. Add the same validation for ib_uverbs_post_send() to ensure wqe_size is at least sizeof(struct ib_uverbs_send_wr).

📍 영향받는 시스템

Linux Kernel (RDMA/uverbs 모듈 사용 환경)

⚔️ 공격 벡터

사용자 공간에서 조작된 작은 wqe_size 값을 ib_uverbs_post_send 함수로 전달

🛡️ 대응 방법

wqe_size가 ib_uverbs_send_wr 구조체의 크기보다 큰지 확인하는 검증 로직이 포함된 최신 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인

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:N/A:H

💻 영향받는 소프트웨어

Linux Kernel