VYPR
Medium severity5.5NVD Advisory· Published Mar 25, 2026· Updated Apr 24, 2026

CVE-2026-23376

CVE-2026-23376

Description

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

nvmet-fcloop: Check remoteport port_state before calling done callback

In nvme_fc_handle_ls_rqst_work, the lsrsp->done callback is only set when remoteport->port_state is FC_OBJSTATE_ONLINE. Otherwise, the nvme_fc_xmt_ls_rsp's LLDD call to lport->ops->xmt_ls_rsp is expected to fail and the nvme-fc transport layer itself will directly call nvme_fc_xmt_ls_rsp_free instead of relying on LLDD's done callback to free the lsrsp resources.

Update the fcloop_t2h_xmt_ls_rsp routine to check remoteport->port_state. If online, then lsrsp->done callback will free the lsrsp. Else, return -ENODEV to signal the nvme-fc transport to handle freeing lsrsp.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

In the Linux kernel's nvmet-fcloop driver, a missing remoteport state check could cause a double-free on link down, fixed by returning -ENODEV when OFFLINE.

Vulnerability

Analysis

A flaw has been found in the Linux kernel's nvmet-fcloop driver, which is used for testing the NVMe-over-Fabrics (NVMe-oF) transport loopback. The core issue is in the fcloop_t2h_xmt_ls_rsp routine, where it unconditionally calls the lsrsp->done callback to free the LS request response (lsrsp) resources. However, in the NVMe-fc transport layer (nvme_fc_handle_ls_rqst_work), the done callback is only set when the remote port is in the FC_OBJSTATE_ONLINE state. If the remote port is offline, the done callback is not set, and the transport layer expects the low-level driver (LLDD) to fail the xmt_ls_rsp call, so the transport itself calls nvme_fc_xmt_ls_rsp_free to free the lsrsp. This mismatch leads to a double-free situation in the fcloop driver [1].

Exploitation and

Impact

The vulnerability is exploitable when the remote port transitions to an offline state while an LS request is being handled. An attacker who can cause a link down or port state change on a system running the fcloop driver could trigger this double-free. No authentication is needed if the system is already using NVMe-oF loopback for testing. The impact of a double-free can range from memory corruption to a system crash (denial of service). The CVSS v3 score of 5.5 (Medium) reflects the potential for a local denial of service, as the attacker must have some ability to influence the remote port state [2].

Mitigation

The fix, included in the referenced commit, adds a check on remoteport->port_state before proceeding with the done callback. If the port state is not FC_OBJSTATE_ONLINE, the function returns -ENODEV, signaling to the NVMe-fc transport that it should handle the cleanup itself, thereby preventing the double-free. Linux kernel users should update to a kernel containing this commit (patched versions vary by distribution) [3].

AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

10
  • Linux/Kernel9 versions
    cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*+ 8 more
    • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*range: >=6.17.3,<6.18
    • cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
    • cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

3

News mentions

0

No linked articles in our index yet.