🔍 CVE-2026-89530

9.8
CVSS Score
CRITICAL
2026-09-11
2026-10-21 13:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 svcrdma 구성 요소에서 RPC-over-RDMA 클라이언트가 버퍼 크기를 초과하는 응답을 요청할 경우, pull-up 버퍼의 경계를 넘어 인접한 슬랩 메모리를 오염시키는 취약점입니다. 이로 인해 메모리 손상 및 장치가 매핑된 영역 너머를 읽는 문제가 발생할 수 있습니다.

💡 쉬운 설명

데이터를 담는 그릇보다 더 큰 데이터를 강제로 넣으려고 할 때, 그릇 옆에 있는 다른 데이터들을 망가뜨리는 보안 결함입니다. 공격자가 이를 이용하면 시스템의 중요한 메모리 정보를 조작하거나 읽어낼 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject inline replies that overflow the pull-up buffer An RPC-over-RDMA client can request a reply, such as an NFS READ payload, without providing a Write list or a Reply chunk to carry it. When such a reply needs more scatter/gather entries than the device's Send Queue supports, svc_rdma_pull_up_needed() selects pull-up and svc_rdma_pull_up_reply_msg() linearizes the whole reply into sctxt->sc_xprt_buf. That buffer is only sc_max_req_size bytes, while the reply on this path is bounded only by the client's request, so svc_rdma_xb_linearize() copies past the end of the buffer and corrupts adjacent slab memory. The oversized length is then stored in sc_sges[0].length and posted, so the device also reads beyond the mapped region. The SGE-exhaustion branch is the only pull-up path that can exceed the buffer: the threshold branch pulls up only replies smaller than RPCRDMA_PULLUP_THRESH, and replies that fit the device's SGE budget are sent directly without linearization. Make svc_rdma_pull_up_needed() report -E2BIG when the reply it would pull up cannot fit sc_max_req_size, and fail the request with ERR_CHUNK as RFC 8166 Section 4.5.3 directs rather than dropping the connection. The helper no longer answers a simple yes/no question: it now reports pull-up, no pull-up, or -E2BIG for a reply too large to linearize. Rename svc_rdma_pull_up_needed() to svc_rdma_check_pull_up() so its name no longer implies a boolean predicate.

📍 영향받는 시스템

Linux kernel (svcrdma 모듈을 사용하는 RPC-over-RDMA 환경)

⚔️ 공격 벡터

조작된 RPC-over-RDMA 요청을 통해 버퍼 크기를 초과하는 대규모 응답(Reply)을 유도하여 메모리 오버플로우 발생

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 svc_rdma_check_pull_up() 로직 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel