CVE-2026-80821: nvmet: pci-epf: put CQ ref on create_cq mapping failure

Published Sep 4, 2026
·
Updated

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

nvmet: pci-epf: put CQ ref on createcq mapping failure

nvmetpciepfcreatecq() calls nvmetcqcreate(), which takes a reference on the controller and installs the completion queue. If the subsequent PCI address-space mapping fails or returns a too-small partial mapping, the function jumps to errinternal / errunmapqueue without calling nvmetcqput(). The matching put in nvmetpciepfdeletecq() is gated on NVMETPCIEPFQLIVE, which is only set after the mapping succeeds, so teardown never releases these references. A remote PCI host that drives Create IO CQ commands with a failing PRP1/pciaddr therefore leaks the CQ and a controller reference on each attempt.

Drop the CQ reference on the mapping-failure paths. The errinternal and errunmapqueue labels are only reachable after nvmetcqcreate() has succeeded, so this pairs the create/put correctly.

Affected Software

1 affected component
Linux Kernel

Event History

Sep 4, 2026
CVE Published
via MITRE·03:27 PM
Data Sourced
via MITRE·03:27 PM
Description
Data Sourced
via NVD·04:18 PM
Description

Frequently Asked Questions

1

Who can trigger the resource leak?

A remote PCI host that can issue Create IO CQ commands to the nvmet PCI endpoint function can trigger it by supplying a PRP1/PCI address that causes address-space mapping to fail or return a partial mapping.

2

What is the impact of repeated failed requests?

Each affected Create IO CQ attempt leaks a completion queue and a controller reference. Repeated attempts can accumulate unreleased resources during the controller lifetime.

3

How can an administrator recognize exposure from behavior?

Exposure requires use of the nvmet PCI endpoint-function path and failed or too-small PCI address-space mappings while processing Create IO CQ commands. The described symptom is completion-queue and controller-reference growth following such failed requests.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203