🔍 CVE-2026-46115

9.8
CVSS Score
CRITICAL
2026-05-28
2026-10-19 20:18
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 block 계층에서 서로 다른 dev_pagemap에 속한 bvec 세그먼트가 물리적으로 인접할 경우 이를 하나로 병합하는 취약점이 발견되었습니다. 이로 인해 병합된 세그먼트에서 올바른 pgmap을 복구할 수 없는 문제가 발생합니다. 이를 해결하기 위해 biovec_phys_mergeable 함수에 pgmap 일치 여부를 확인하는 로직이 추가되었습니다.

💡 쉬운 설명

서로 다른 메모리 관리 구역에 있는 데이터들을 시스템이 실수로 하나로 합쳐버리는 오류입니다. 이로 인해 데이터가 저장된 위치를 제대로 찾지 못하는 혼란이 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: block: add pgmap check to biovec_phys_mergeable biovec_phys_mergeable() is used by the request merge, DMA mapping, and integrity merge paths to decide if two physically contiguous bvec segments can be coalesced into one. It currently has no check for whether the segments belong to different dev_pagemaps. When zone device memory is registered in multiple chunks, each chunk gets its own dev_pagemap. A single bio can legitimately contain bvecs from different pgmaps -- iov_iter_extract_bvecs() breaks at pgmap boundaries but the outer loop in bio_iov_iter_get_pages() continues filling the same bio. If such bvecs are physically contiguous, biovec_phys_mergeable() will coalesce them, making it impossible to recover the correct pgmap for the merged segment via page_pgmap(). Add a zone_device_pages_have_same_pgmap() check to prevent merging bvec segments that span different pgmaps.

📍 영향받는 시스템

Linux Kernel (zone device memory를 사용하는 환경)

⚔️ 공격 벡터

물리적으로 인접한 서로 다른 pgmap 영역을 포함하는 BIO 요청을 생성하여 메모리 관리 오류 유도

🛡️ 대응 방법

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

🔧 검증 코드

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

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