LiveActive security incident?Get immediate response
CVE Record

CVE-2026-46135: nvmet-tcp: fix race between ICReq handling and queue teardown

In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: fix race between ICReq handling and queue teardown nvmet_tcp_handle_icreq() updates queue->state after sending an Initialization Connection Response (ICResp), but it does so without serializing against target-side queue teardown. If an NVMe/TCP host sends an Initialization Connection Request (ICReq) and immediately closes the connection, target-side teardown may start in softirq context before io_work drains the already buffered ICReq. In that case, nvmet_tcp_schedule_release_queue() sets queue->state to NVMET_TCP_Q_DISCONNECTING and drops the queue reference under state_lock. If io_work later processes that ICReq, nvmet_tcp_handle_icreq() can still overwrite the state back to NVMET_TCP_Q_LIVE. That defeats the DISCONNECTING-state guard in nvmet_tcp_schedule_release_queue() and allows a later socket state change to re-enter teardown and issue a second kref_put() on an already released queue. The ICResp send failure path has the same problem. If teardown has already moved the queue to DISCONNECTING, a send error can still overwrite the state with NVMET_TCP_Q_FAILED, again reopening the window for a second teardown path to drop the queue reference. Fix this by serializing both post-send state transitions with state_lock and bailing out if teardown has already started. Use -ESHUTDOWN as an internal sentinel for that bail-out path rather than propagating it as a transport error like -ECONNRESET. Keep nvmet_tcp_socket_error() setting rcv_state to NVMET_TCP_RECV_ERR before honoring that sentinel so receive-side parsing stays quiesced until the existing release path completes.

CriticalCVSS 9.8Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

A remotely reachable NVMe/TCP target can mishandle a connection that closes during initialization. Competing cleanup paths may release the same kernel queue twice, potentially causing a crash, memory corruption, or broader system compromise. Systems not providing Linux NVMe/TCP target services are unlikely to be exposed through this flaw.

Executive priority

Prioritize urgently for reachable storage targets because failure occurs in kernel context and the supplied severity is critical. First identify systems providing NVMe/TCP target services; then patch exposed targets or isolate them to trusted storage networks. Do not assume fleet-wide exposure solely because Linux is installed.

Technical view

A race between buffered ICReq processing and softirq-context queue teardown lets nvmet_tcp_handle_icreq() overwrite NVMET_TCP_Q_DISCONNECTING with LIVE or FAILED. This defeats the teardown guard and permits a second kref_put() on an already released queue. The fix serializes post-send state transitions under state_lock and uses an internal -ESHUTDOWN sentinel when teardown has begun.

Likely exposure

Exposure requires an affected Linux kernel operating as an NVMe/TCP target with its service reachable by an untrusted host. The supplied version data is ambiguous and should not be treated as a reliable fixed-version matrix. Confirm exposure using the running distribution kernel package and applicable stable fix commit.

Exploitation context

The CVSS 3.1 assessment is 9.8, network-accessible, low complexity, unauthenticated, and requires no user interaction. However, the bundle marks KEV false and provides no evidence of exploitation in the wild or a public exploit. Treat exploitation status as unconfirmed.

Researcher notes

The vulnerable condition depends on precise ordering between ICReq work processing, socket closure, and queue release. The supplied record describes double reference release but provides no demonstrated impact, exploit, or attack prevalence. Version entries appear insufficiently structured for exact branch-level conclusions; use the eight linked stable commits and distribution backport records for authoritative mapping.

Mitigation direction

  • Install a vendor kernel update containing the applicable stable nvmet-tcp fix.
  • Consult Linux distribution guidance to map the fix to supported kernel packages.
  • Restrict NVMe/TCP target access to explicitly trusted storage-network hosts.
  • Disable the NVMe/TCP target service where it is unnecessary.

Validation and detection

  • Determine whether nvmet-tcp target functionality is enabled on each Linux system.
  • Identify NVMe/TCP listeners and verify which network segments can reach them.
  • Record the running kernel and distribution package versions.
  • Compare kernel provenance against vendor advisories or the applicable stable fix commit.
  • Monitor target systems for unexplained kernel crashes or nvmet-tcp errors.
Prepared
Confidence
medium
Sources
10

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2026-46135 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
0ADP providers
9Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.8CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H3.95.9Linux

Vulnerability scoring details

Base CVSS 3.1 score

9.8Critical
CVSS 3.1 vector shape for CVE-2026-46135Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30, 872d26a391da92ed8f0c0f5cb5fef428067b7f30unaffected
LinuxLinux5.0, 0, 5.10.261, 5.15.212, 6.1.178, 6.6.144, 6.12.88, 6.18.30, 7.0.7, 7.1affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.