Read the docs
TI-2026-24002 Aliases CVE-2026-31444GHSA-8vw8-r4jr-vp93

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

Priority MEDIUM 42CWE-416Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Code execution
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-416 and the CVSS impact.

Summary

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.

Why it matters now

EPSS 0.0045 39th percentileScored 2026-11-07
Fix Fixed Linux (Linux): 6.6.131, 6.12.80, 6.18.21 +1

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
LinuxLinux6.6.130 to before 6.6.131; 6.12.78 to before 6.12.80; 6.18.19 to before 6.18.21; 6.19.9 to before 6.19.116.6.131, 6.12.80, 6.18.21, 6.19.11Patch availableCNA
  • Linux VendorLinux Affected 6.6.130 to before 6.6.131; 6.12.78 to before 6.12.80; 6.18.19 to before 6.18.21; 6.19.9 to before 6.19.11 Fixed in 6.6.131, 6.12.80, 6.18.21, 6.19.11 Patch available CNA

CPE configurations NVD · 4

CPEVersionsRoleVendor
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*6.12.78 to before 6.12.80; 6.18.19 to before 6.18.21; 6.19.9 to before 6.19.11VulnerableLinux
cpe:2.3:o:linux:linux_kernel:6.6.130:*:*:*:*:*:*:*6.6.130VulnerableLinux
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*7.0 rc4VulnerableLinux
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*7.0 rc5VulnerableLinux
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions 6.12.78 to before 6.12.80; 6.18.19 to before 6.18.21; 6.19.9 to before 6.19.11 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:6.6.130:*:*:*:*:*:*:* Versions 6.6.130 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* Versions 7.0 rc4 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* Versions 7.0 rc5 Vulnerable ·Linux

Remediation

  • Fix · CNA Linux (Linux) Fixed in 6.6.131, 6.12.80, 6.18.21, 6.19.11

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

Not affected: 5 products
  • Red Hat Enterprise Linux 10
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-31444
  2. 2026-10-03 Alias added: GHSA-8vw8-r4jr-vp93
  3. 2026-10-14 EPSS moved to the 50th–90th percentile
  4. 2026-10-20 Affected versions changed · Red Hat
  5. 2026-10-25 EPSS moved to the below the 50th percentile

References

  • TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
  • TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
  • TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
  • TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
  • TI-2021-05514 Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACE KEVCVSS 3.1HIGH 8.3
See all 15278 →

Sources