🔍 CVE-2026-74390

7.8
CVSS Score
HIGH
2026-08-15
2026-10-16 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 RDMA/irdma 구성 요소에서 irdma_copy_user_pgaddrs 함수 내 경계 외 쓰기(Out-of-bounds write) 취약점이 발견되었습니다. palloc->total_cnt가 0일 때 루프 종료 조건이 제대로 작동하지 않아, 고정된 크기의 pgaddrmem 배열 범위를 초과하여 데이터를 쓸 수 있는 문제입니다.

💡 쉬운 설명

컴퓨터의 메모리 관리 과정에서 정해진 공간보다 더 많은 데이터를 저장하려고 시도하는 오류가 있습니다. 이로 인해 시스템의 중요한 데이터가 덮어씌워지거나 시스템이 불안정해질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: RDMA/irdma: Fix out-of-bounds write in irdma_copy_user_pgaddrs The irdma_copy_user_pgaddrs function loops through all of the umem DMA blocks to populate the PBLEs and will stop when either the last DMA block is reached or palloc->total_cnt is reached. The issue is that the logic for checking palloc->total_cnt would only work for non-zero values. When irdma_setup_pbles is called with lvl==0, it calls irdma_copy_user_pgaddrs with palloc->total_cnt==0, which means the only way to break out of the loop is to reach the last umem DMA block, which means it could end up going beyond the fixed size of 4 iwmr->pgaddrmem array that is used in the lvl==0 case. In the case of QP/CQ/SRQ rings, the value of lvl is determined by a separate input (for example, req.cq_pages in the case of a CQ). So, we must perform explicit checking to ensure we don't overflow the pgaddrmem array if the user provides a umem that consists of more blocks than their provided req.cq_pages.

📍 영향받는 시스템

Linux Kernel (RDMA/irdma 드라이버 사용 환경)

⚔️ 공격 벡터

조작된 umem DMA 블록 및 특정 레벨(lvl==0) 설정을 통한 메모리 오버플로우 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

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

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