CVE-2026-46115
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
28/05/2026
Last modified:
30/05/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
block: add pgmap check to biovec_phys_mergeable<br />
<br />
biovec_phys_mergeable() is used by the request merge, DMA mapping,<br />
and integrity merge paths to decide if two physically contiguous<br />
bvec segments can be coalesced into one. It currently has no check<br />
for whether the segments belong to different dev_pagemaps.<br />
<br />
When zone device memory is registered in multiple chunks, each chunk<br />
gets its own dev_pagemap. A single bio can legitimately contain<br />
bvecs from different pgmaps -- iov_iter_extract_bvecs() breaks at<br />
pgmap boundaries but the outer loop in bio_iov_iter_get_pages()<br />
continues filling the same bio. If such bvecs are physically<br />
contiguous, biovec_phys_mergeable() will coalesce them, making it<br />
impossible to recover the correct pgmap for the merged segment<br />
via page_pgmap().<br />
<br />
Add a zone_device_pages_have_same_pgmap() check to prevent merging<br />
bvec segments that span different pgmaps.
Impact
Base Score 3.x
9.80
Severity 3.x
CRITICAL
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/13920e4b7b784b40cf4519ff1f0f3e513476a499
- https://git.kernel.org/stable/c/3d2ecbd444b01d6500671d1a582b7393943cf539
- https://git.kernel.org/stable/c/a7f3aa8c9df3905fe820ae36b67ba56b81587574
- https://git.kernel.org/stable/c/f17d521075325b8afc42d1baa1c28a5e9aca111f
- https://git.kernel.org/stable/c/f632dab4b841554cd6416058c61886d7db176581



