---
id: CVE-2026-98724
title: 'nvmet: pci-epf: reject too-short SGL segments'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  nvmet: pci-epf: reject too-short SGL segments

  The host controls an SGL segment's length. A nonzero length smaller than
  one SGL descriptor makes nr_descs zero, so
  nvmet…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 <
    2423a05dd0f21330c47ce0ae1cb54a8b0be821e2
  - >-
    Linux >= 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 <
    472df1d103dbe3e9d09156f0667e36180e912c46
  - >-
    Linux >= 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 <
    5d5fbfbbacd1efb13a9bf91317d4fde859ede4b9
  - Linux 6.14
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:47:01.614Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98724'
references:
  - url: 'https://git.kernel.org/stable/c/2423a05dd0f21330c47ce0ae1cb54a8b0be821e2'
  - url: 'https://git.kernel.org/stable/c/472df1d103dbe3e9d09156f0667e36180e912c46'
  - url: 'https://git.kernel.org/stable/c/5d5fbfbbacd1efb13a9bf91317d4fde859ede4b9'
tags:
  - cve.org
ingestedAt: '2026-10-18T16:47:32.508Z'
---

## Overview

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

nvmet: pci-epf: reject too-short SGL segments

The host controls an SGL segment's length. A nonzero length smaller than
one SGL descriptor makes nr_descs zero, so
nvmet_pci_epf_get_sgl_segment() reads the type byte of sgls[-1] outside
the allocated buffer. If that byte contains a segment descriptor type,
the function also copies the preceding 16 bytes and returns a negative
descriptor count.

The read was reproduced in 3/3 KASAN boots with only the host transfer
mocked by a KUnit test:

  BUG: KASAN: slab-out-of-bounds in nvmet_pci_epf_get_sgl_segment
  Read of size 1 by task kunit_try_catch
  Call Trace:
   nvmet_pci_epf_get_sgl_segment
   nvmet_pci_epf_short_sgl_test
  Kernel panic - not syncing: KASAN: panic_on_warn set ...

Reject segments that cannot hold one descriptor before allocating or
transferring their contents.

## Affected

- `Linux >= 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 < 2423a05dd0f21330c47ce0ae1cb54a8b0be821e2`
- `Linux >= 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 < 472df1d103dbe3e9d09156f0667e36180e912c46`
- `Linux >= 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 < 5d5fbfbbacd1efb13a9bf91317d4fde859ede4b9`
- `Linux 6.14`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
