CVE-2026-46115
CriticalCVSS 9.8Exploitation Probability (EPSS)
Low risk38th percentile — higher than 38% of all known CVEs
Summary
A vulnerability has been identified in the Linux kernel within the biovec_phys_mergeable() function, which does not check if bvec segments belong to different dev_pagemaps. This can lead to memory management errors when segments are physically contiguous.
Risk Assessment
Organizations may encounter data integrity issues and memory management problems, potentially leading to system crashes or unexpected application behavior.
Recommendation
It is recommended to update the Linux kernel to the latest version to benefit from the fix that adds the zone_device_pages_have_same_pgmap() check to prevent merging bvec segments from different pgmaps.
Original NVD description (English source)
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.

