Vulnerability · Published Apr 22, 2026 · Assigned by Linux

CVE-2026-31444ksmbd: fix use-after-free and NULL deref in smb_grant_oplock()

Critical 9.8

In plain English

A critical-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 39% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)9.8Critical
Exploit odds (30 days)0.4%top 60.7% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix use-after-free and NULL deref in smb_grant_oplock() smb_grant_oplock() has two issues in the oplock publication sequence: 1) opinfo is linked into ci->m_op_list (via opinfo_add) before add_lease_global_list() is called. If add_lease_global_list() fails (kmalloc returns NULL), the error path frees the opinfo via __free_opinfo() while it is still linked in ci->m_op_list. Concurrent m_op_list readers (opinfo_get_list, or direct iteration in smb_break_all_levII_oplock) dereference the freed node. 2) opinfo->o_fp is assigned after add_lease_global_list() publishes the opinfo on the global lease list. A concurrent find_same_lease_key() can walk the lease list and dereference opinfo->o_fp->f_ci while o_fp is still NULL. Fix by restructuring the publication sequence to eliminate post-publish failure: - Set opinfo->o_fp before any list publication (fixes NULL deref). - Preallocate lease_table via alloc_lease_table() before opinfo_add() so add_lease_global_list() becomes infallible after publication. - Keep the original m_op_list publication order (opinfo_add before lease list) so concurrent opens via same_client_has_lease() and opinfo_get_list() still see the in-flight grant. - Use opinfo_put() instead of __free_opinfo() on err_out so that the RCU-deferred free path is used. This also requires splitting add_lease_global_list() to take a preallocated lease_table and changing its return type from int to void, since it can no longer fail.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux6.19.11-1DEBIAN-CVE-2026-31444
Ubuntu:25.10linuxno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:25.10linux-awsno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:25.10linux-azureno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:25.10linux-gcpno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-gcp-6.176.17.0-1021.24~24.04.1UBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-hwe-6.176.17.0-41.41~24.04.1UBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-nvidia-6.176.17.0-1031.31UBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-oem-6.176.17.0-1030.30UBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-31444
Ubuntu:25.10linux-oracleno fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-oracle-6.176.17.0-1019.19~24.04.3UBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-31444
Ubuntu:25.10linux-realtimeno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-31444
Ubuntu:25.10linux-riscvno fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-31444
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-31444

Affected products (as reported)

VendorProductVersions
Linux Linux 302fef75512b2c8329a3f5efab1ae7ba2562387a – before 9e785f004cbc56390479b77375726ea9b0d1a8a608aa9f3c8cf4d0bee44df540dfe34e8d64069f2c – before 7de55bba69cbf0f9280daaea385daf08bc0761211d6abf145615dbfe267ce3b0a271f95e3780e18e – before a5c6f6d6ceefed2d5210ee420fb75f8362461f46ce8507ee82c888126d8e7565e27c016308d24cde – before 6d7e5a918c1d0aad06db0e17677b66fc9a4710211dfd062caa165ec9d7ee0823087930f3ab8a6294 – before 48623ec358c1c600fa1e38368746f933e0f1a617
Linux Linux 6.6.130 – before 6.6.1316.12.78 – before 6.12.806.18.19 – before 6.18.216.19.9 – before 6.19.11

References