{"id":"CVE-2026-80821","state":"PUBLISHED","title":"nvmet: pci-epf: put CQ ref on create_cq mapping failure","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: pci-epf: put CQ ref on create_cq mapping failure\n\nnvmet_pci_epf_create_cq() calls nvmet_cq_create(), which takes a\nreference on the controller and installs the completion queue. If the\nsubsequent PCI address-space mapping fails or returns a too-small partial\nmapping, the function jumps to err_internal / err_unmap_queue without\ncalling nvmet_cq_put(). The matching put in nvmet_pci_epf_delete_cq() is\ngated on NVMET_PCI_EPF_Q_LIVE, which is only set after the mapping\nsucceeds, so teardown never releases these references. A remote PCI host\nthat drives Create IO CQ commands with a failing PRP1/pci_addr therefore\nleaks the CQ and a controller reference on each attempt.\n\nDrop the CQ reference on the mapping-failure paths. The err_internal and\nerr_unmap_queue labels are only reachable after nvmet_cq_create() has\nsucceeded, so this pairs the create/put correctly.","publishedAt":"2026-09-04T15:27:42.612Z","updatedAt":"2026-10-19T08:44:13.912Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"f31650243c1ab32394077f234685e89ed8dece84","versionType":"git"},{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"b5f97fae2503a763fa0f953abf5f121b0fef7d0d","versionType":"git"},{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"56a7b6a6880dbabe28214ff88df8d229ca3a944a","versionType":"git"},{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"659ae9d02cb5d72c76f74fff7441eb8fb64d8f5c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/target/pci-epf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.14","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/target/pci-epf.c"]}],"references":["https://git.kernel.org/stable/c/f31650243c1ab32394077f234685e89ed8dece84","https://git.kernel.org/stable/c/b5f97fae2503a763fa0f953abf5f121b0fef7d0d","https://git.kernel.org/stable/c/56a7b6a6880dbabe28214ff88df8d229ca3a944a","https://git.kernel.org/stable/c/659ae9d02cb5d72c76f74fff7441eb8fb64d8f5c"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:07.220Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/80xxx/CVE-2026-80821.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80821","state":"PUBLISHED","datePublished":"2026-09-04T15:27:42.612Z","dateUpdated":"2026-10-19T08:44:13.912Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-26T14:34:25.795Z"},"containers":{"cna":{"title":"nvmet: pci-epf: put CQ ref on create_cq mapping failure","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: pci-epf: put CQ ref on create_cq mapping failure\n\nnvmet_pci_epf_create_cq() calls nvmet_cq_create(), which takes a\nreference on the controller and installs the completion queue. If the\nsubsequent PCI address-space mapping fails or returns a too-small partial\nmapping, the function jumps to err_internal / err_unmap_queue without\ncalling nvmet_cq_put(). The matching put in nvmet_pci_epf_delete_cq() is\ngated on NVMET_PCI_EPF_Q_LIVE, which is only set after the mapping\nsucceeds, so teardown never releases these references. A remote PCI host\nthat drives Create IO CQ commands with a failing PRP1/pci_addr therefore\nleaks the CQ and a controller reference on each attempt.\n\nDrop the CQ reference on the mapping-failure paths. The err_internal and\nerr_unmap_queue labels are only reachable after nvmet_cq_create() has\nsucceeded, so this pairs the create/put correctly."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"f31650243c1ab32394077f234685e89ed8dece84","versionType":"git"},{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"b5f97fae2503a763fa0f953abf5f121b0fef7d0d","versionType":"git"},{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"56a7b6a6880dbabe28214ff88df8d229ca3a944a","versionType":"git"},{"version":"0faa0fe6f90ea59b10d1b0f15ce0eb0c18eff186","status":"affected","lessThan":"659ae9d02cb5d72c76f74fff7441eb8fb64d8f5c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/target/pci-epf.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.14","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.14","versionType":"semver"},{"version":"6.18.47","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.11","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2.1","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/target/pci-epf.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/f31650243c1ab32394077f234685e89ed8dece84"},{"url":"https://git.kernel.org/stable/c/b5f97fae2503a763fa0f953abf5f121b0fef7d0d"},{"url":"https://git.kernel.org/stable/c/56a7b6a6880dbabe28214ff88df8d229ca3a944a"},{"url":"https://git.kernel.org/stable/c/659ae9d02cb5d72c76f74fff7441eb8fb64d8f5c"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T08:44:13.912Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"6.18.47"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.1.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.2.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}