Skip to main content

Linux Kernel ksmbd CVE-2026-72422

| EUVDEUVD-2026-59321 CRITICAL
2026-08-15 Linux GHSA-2r52-5q5c-m3mp
Critical
Disputed · 9.8 Vendor: Linux
Share

Severity by source

Sources disagree (Medium–Critical)
Vendor (Linux) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.4 HIGH

Pre-auth network reach gives AV:N/PR:N, but the concurrent-NEGOTIATE race raises AC:H; a read primitive yields memory disclosure (C:H) and crash (A:H) with no write, so I:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat
7.0 MEDIUM
qualitative

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 09:18 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
9.8 (CRITICAL)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:56 cve.org
CRITICAL 9.8
CVE Published
Aug 15, 2026 - 05:56 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ksmbd: fix use-after-free of conn->preauth_info in concurrent SMB2 NEGOTIATE

conn->preauth_info is shared connection state (struct preauth_integrity_info, kmalloc-96) that is allocated and freed by the SMB2 NEGOTIATE handler and read by the response send path.

smb2_handle_negotiate() allocates conn->preauth_info, and on a deassemble_neg_contexts() failure kfrees it and sets it to NULL. Both the allocation and the free/NULL happen under ksmbd_conn_lock(conn) (the connection srv_mutex), which is held across the whole handler body.

The response send path smb3_preauth_hash_rsp(), called from the send: block of __handle_ksmbd_work(), reads conn->preauth_info and dereferences conn->preauth_info->Preauth_HashValue (via ksmbd_gen_preauth_integrity_hash()) without taking conn_lock. When a client drives two SMB2 NEGOTIATE requests on the same connection, one worker can free conn->preauth_info on the failing-negotiate path while a concurrent send-path worker is reading it, producing a slab use-after-free read (KASAN-confirmed).

The send-path read tested conn->preauth_info for NULL but raced with the free that occurs between the NULL check and the dereference, so the NULL guard alone does not close the window.

Serialize the NEGOTIATE-branch read in smb3_preauth_hash_rsp() under ksmbd_conn_lock(conn) and re-check conn->preauth_info inside the lock. Because the negotiate handler holds conn_lock across its kfree + NULL assignment, a reader that also takes conn_lock either runs fully before the allocation or fully after the NULL store, and can never observe the freed-but-not-yet-NULLed pointer. ksmbd_gen_preauth_integrity_hash() takes no locks itself (it only computes a SHA-512 over the buffer), so no lock-ordering inversion is introduced, and conn_lock is a sleepable mutex which is safe on this send path (it already performs network I/O).

AnalysisAI

Use-after-free in the Linux kernel's in-kernel SMB server (ksmbd) lets a remote client that opens an SMB connection race two concurrent SMB2 NEGOTIATE requests to trigger a slab UAF read of the shared conn->preauth_info structure (kmalloc-96). The response send path smb3_preauth_hash_rsp() reads and dereferences conn->preauth_info->Preauth_HashValue without holding conn_lock, so one worker can free the object on the failing-negotiate path while another reads it - a window a bare NULL check cannot close. Exploitation is pre-authentication over the network but requires ksmbd to be actively serving shares plus precise timing; EPSS is low (0.21%, 12th percentile), it is not on CISA KEV, and no public exploit identified at time of analysis.

Technical ContextAI

ksmbd is the in-kernel SMBv2/v3 file server introduced in Linux 5.15 as a faster alternative to userspace Samba, terminating SMB connections directly in kernel context. During protocol negotiation, smb2_handle_negotiate() allocates a per-connection preauth_integrity_info object (conn->preauth_info) used to accumulate the SMB 3.1.1 pre-authentication integrity SHA-512 hash. The defect is a use-after-free (CWE-416): allocation and free/NULL of conn->preauth_info are serialized under ksmbd_conn_lock() (the srv_mutex) inside the negotiate handler, but the asynchronous response send path in __handle_ksmbd_work() calls smb3_preauth_hash_rsp() -> ksmbd_gen_preauth_integrity_hash() and dereferences the pointer without taking that lock. The generic CPE (cpe:2.3:a:linux:linux) hides the true surface, which is any kernel built with CONFIG_SMB_SERVER running ksmbd; the upstream CWE is recorded N/A but the class is UAF. The fix serializes the negotiate-branch read under conn_lock and re-checks the pointer inside the lock so a reader runs fully before allocation or fully after the NULL store.

RemediationAI

Vendor-released patch: upgrade to a fixed stable kernel - 5.15.212, 6.6.145, 6.12.97, 6.18.40, 7.1.5 or later on your branch (mainline fix in 7.2-rc1); fix commits are published at git.kernel.org/stable (c7bef84740d1d57848c74f6f5b996606e43ea4fe and its sibling backports). Apply your distribution's kernel update referencing CVE-2026-72422 as the primary action. If you cannot patch immediately, the most effective compensating control is to disable the in-kernel SMB server (stop and unload ksmbd / do not run the ksmbd service) and use userspace Samba, which is unaffected - the trade-off is switching SMB stacks. If ksmbd must stay running, restrict reachability by firewalling TCP/445 to trusted management networks and blocking it at the perimeter, which shrinks the pool of clients able to open the concurrent NEGOTIATE connections needed to win the race, at the cost of limiting legitimate remote SMB clients. There is no configuration flag that disables only the vulnerable negotiate path, so patching or disabling ksmbd are the reliable fixes.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-72422 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy