---
id: "CVE-2026-98450"
kind: "vulnerability"
aliases: ["CVE-2026-98450"]
title: "Linux kernel SMB client: failed compound requests can leave remote file handles open"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "infrastructure"
products: []
ecosystems: []
tags: ["cifs", "infrastructure", "kernel", "linux", "self-hosted", "smb"]
not_affected_if: ["no-smb-mounts"]
published_at: "2026-10-18T16:16:55+00:00"
first_seen_at: "2026-10-23T21:57:15+00:00"
updated_at: "2026-10-25T05:27:25+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98450", "first_seen_at": "2026-10-23T21:57:15+00:00"}]
---

# Linux kernel SMB client: failed compound requests can leave remote file handles open

When a compound SMB request is interrupted or a later response fails, an earlier CREATE may have opened a remote file handle that the kernel never closes. An attacker who can reach a malicious or compromised SMB server can make the client leak server-side handles.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the running kernel version with `uname -r` and compare it against the fixed kernel release in the NVD record
- Check whether the SMB client module is loaded with `lsmod | grep cifs`

## Fix

- Update the Linux kernel to a release that includes the upstream fix for CVE-2026-98450 (fixed version unknown from the sources)

## Timeline

- 2026-10-23T21:57:15+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98450

## From the sources

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

smb: client: close completed creates on compound wait errors

compound_send_recv() waits for responses in order. If a later wait is
interrupted, or if a later MID fails during response synchronization, an
earlier CREATE may already have opened a remote handle. The earlier mid
is then released without invoking handle_cancelled_mid(), leaving the
remote handle open because no FID was copied to the caller.

Mark completed earlier mids as cancelled when a compound wait or MID
synchronization aborts. Keep their response buffers attached while the
MIDs are synchronized, and transfer them only after synchronization of
the processed responses, so the release path can inspect successful
CREATE responses and queue SMB2_close() after a later failure. Account for
a remote open only after the close work is allocated and before it is
queued, since the caller has not yet updated num_remote_opens. Mark the
create+close compound used by smb2_unlink() so it is not closed again.
Non-CREATE responses and compounds that already include a close keep their
existing behavior.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
