CVE-2026-72129

nvmet-rdma: handle inline data with a nonzero offset

State
Published
Severity
9.8 Critical
Published
Aug 15, 2026
Updated
Oct 16, 2026
Reserved
Aug 9, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

nvmet-rdma: handle inline data with a nonzero offset

nvmet_rdma_use_inline_sg() maps the host-controlled inline data offset into the per-command inline scatterlist. The bounds check admits any offset with off + len <= inline_data_size, but the mapping still assumes the data begins in the first inline page:

sg->offset = off; sg->length = min_t(int, len, PAGE_SIZE - off);

When a port is configured with inline_data_size > PAGE_SIZE (settable up to max(SZ_16K, PAGE_SIZE)), an offset in (PAGE_SIZE, inline_data_size] makes "PAGE_SIZE - off" underflow, so sg->length is set to ~4 GiB and the block backend reads far past the first inline page. num_pages(len) also ignores the offset, so an in-bounds offset whose [off, off+len) span crosses a page boundary under-counts the scatterlist.

Map the offset properly: split it into a page index and an in-page offset, start the scatterlist at that page, and size the page count from page_off + len. Because the request scatterlist may now start at inline_sg[page_idx] rather than inline_sg[0], generalize the inline-SGL identity test in nvmet_rdma_release_rsp() to a range test; otherwise the persistent inline scatterlist is mistaken for an allocated one and nvmet_req_free_sgls() frees an inline page (and warns in free_large_kmalloc()).

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before c2106ba1b14d644a5203bea1a50dbe25dcad713cAffected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before bf8bcc1c137d54a62a428b00051fdbb13660673bAffected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before 11401371152b228448a41d79c6de1c938f93049aAffected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before 7c96581169c9d9a7d0726e554313acfbead6141cAffected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before 42a8ea3acd883f4f210d9e54e0975b1e2292b529Affected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before 2944113ad5fbcdf5d349d857c03d2a44b6de75b8Affected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before 98bcdfa619150b2f41fa15bac140dbaf2584ad05Affected
  • 0d5ee2b2ab4f6776c361bc975c2323bc8b5cf349 to before 48c0162f647bb47e6084ffbc71b8f213f5e2f4f8Affected
LinuxLinux
  • 4.19Affected
  • before 4.19Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.