Reference page — cumulative record through Wednesday, August 19, 2026 UTC. Reference pages update as the archive grows; only dated daily editions are immutable pages of record.
Linux Linux — nvmet: pci-epf: Do not complete commands twice if nvmet_req_init() fails
AV AC PR UI S C I A CVSS EPSS %ile KEV
L L L N U N N H 5.5 .0019 9.2 —
AFFECTED
Product Versions Fixed
Linux 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 – —
Linux 6.14 – 6.16.1
TIMELINE
Apr 16 Reserved by Linux
Aug 22 Published (CNA: Linux)
Jul 30 RESCORED — CVE-2025-38658 (Linux). CVSS 8.8 → 5.5 (NVD).
Description
In the Linux kernel, the following vulnerability has been resolved:
nvmet: pci-epf: Do not complete commands twice if nvmet_req_init() fails
Have nvmet_req_init() and req->execute() complete failed commands.
Description of the problem:
nvmet_req_init() calls __nvmet_req_complete() internally upon failure,
e.g., unsupported opcode, which calls the "queue_response" callback,
this results in nvmet_pci_epf_queue_response() being called, which will
call nvmet_pci_epf_complete_iod() if data_len is 0 or if dma_dir is
different from DMA_TO_DEVICE. This results in a double completion as
nvmet_pci_epf_exec_iod_work() also calls nvmet_pci_epf_complete_iod()
when nvmet_req_init() fails.
Steps to reproduce:
On the host send a command with an unsupported opcode with nvme-cli,
For example the admin command "security receive"
$ sudo nvme security-recv /dev/nvme0n1 -n1 -x4096
This triggers a double completion as nvmet_req_init() fails and
nvmet_pci_epf_queue_response() is called, here iod->dma_dir is still
in the default state of "DMA_NONE" as set by default in
nvmet_pci_epf_alloc_iod(), so nvmet_pci_epf_complete_iod() is called.
Because nvmet_req_init() failed nvmet_pci_epf_complete_iod() is also
called in nvmet_pci_epf_exec_iod_work() leading to a double completion.
This not only sends two completions to the host but also corrupts the
state of the PCI NVMe target leading to kernel oops.
This patch lets nvmet_req_init() and req->execute() complete all failed
commands, and removes the double completion case in
nvmet_pci_epf_exec_iod_work() therefore fixing the edge cases where
double completions occurred.
Lifecycle
Complete event history — 3 events, chronological
| Date | Event | Detail |
| April 16, 2025 | Reserved | Reserved by Linux |
| August 22, 2025 | Published | Published (CNA: Linux) |
| July 30, 2026 | RESCORED | RESCORED — CVE-2025-38658 (Linux). CVSS 8.8 → 5.5 (NVD). |
Affected
Affected products and packages — 2 rows
| Vendor | Product / Package | Ecosystem | Version introduced | Fixed |
| Linux | Linux | — | 0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186 | — |
| Linux | Linux | — | 6.14 | 6.16.1 |
About this page
This is a reference page, not a dated page of record. It assembles the complete lifecycle of CVE-2025-38658 from the CVE Program record, NVD enrichment, the CISA KEV catalog, EPSS, and OSV advisories. The box score's numbers (CVSS, EPSS, KEV status) are current as of Wednesday, August 19, 2026 UTC and are re-derived as the archive grows; only dated daily editions are immutable pages of record. The authoritative source for this identifier is cve.org.