CVE-2026-80790: nvmet-fc: fix invalid free in LS IOD error path

Published Sep 4, 2026
·
Updated

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

nvmet-fc: fix invalid free in LS IOD error path

nvmetfcalloclsiodlist() advances iod while initializing the LS IOD array. If an rqstbuf allocation or response buffer DMA mapping fails, the unwind loop decrements iod past the start of the array. The final kfree(iod) therefore frees an address before the allocated object.

This can be reproduced with nvme-fcloop and failslab by setting fail-nth to 6 before creating a target port. KASAN reports:

BUG: KASAN: invalid-free in nvmetfcregistertargetport Free of addr ffff88816cf8ff48 by task nvmetfailnth/9552

Free the original allocation base stored in tgtport->iod instead. With this fix applied, the same sysfs write with fail-nth=6 returns -ENOMEM without any KASAN report.

Affected Software

1 affected component
Linux Kernel

Event History

Sep 4, 2026
CVE Published
via MITRE·03:13 PM
Data Sourced
via MITRE·03:13 PM
Description

Frequently Asked Questions

1

Under what conditions does the invalid free occur?

It occurs when initialization of the LS IOD array encounters either an rqstbuf allocation failure or a response-buffer DMA mapping failure. The failing cleanup path can then free an address before the allocated object.

2

Who is most likely to encounter this issue?

Systems using the Linux kernel nvmet-fc target functionality are relevant. The issue was reproduced using nvme-fcloop with failslab fault injection while creating a target port.

3

How can administrators determine whether the error path is affected?

With failslab configured with fail-nth set to 6 before target-port creation, an affected kernel can produce a KASAN invalid-free report in nvmet_fc_register_targetport. With the fix, the operation returns -ENOMEM without a KASAN report.

4

What behavior changes after applying the fix?

The cleanup path frees the original allocation base stored in tgtport->iod rather than the advanced iod pointer. When the induced allocation failure occurs, target-port creation returns -ENOMEM without the invalid free.

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