CVE-2026-89792 PUBLISHED

ksmbd: prevent out-of-bounds reads in share config responses

Assigner: Linux
Reserved: 11.09.2026 Published: 16.09.2026 Updated: 16.09.2026

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

ksmbd: prevent out-of-bounds reads in share config responses

Validate IPC share configuration payload sizes before consuming variable-length fields. Bound veto list parsing and account for the separator byte when deriving the path length.

Metrics

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

AV:L - Malformed payload_sz/veto_list_sz and unterminated veto/path bytes are consumed from a ksmbd generic-netlink SHARE_CONFIG_RESPONSE (handle_generic_event → ipc_validate_msg → share_config_request), not from SMB PDUs. A remote TREE_CONNECT only creates the pending IPC request; the attacker must be local to inject or control that response. AC:L - The attacker fully controls the crafted netlink length fields and can set payload_sz to 0 or omit NULs so the old checks pass. Pending handles come from a small IDA and can be brute-forced against a TREE_CONNECT the attacker also triggers; no victim timing or rare config is required. PR:L - handle_generic_event requires CAP_NET_ADMIN only when CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN is set; SMBD_GENL is netns-aware, has no GENL_ADMIN_PERM, and does not bind responses to ksmbd_tools_pid. That capability is Low, and builds that disable the check allow any local user to send the message. UI:N - The attacker sends the malformed SHARE_CONFIG_RESPONSE and can issue the matching SMB2 TREE_CONNECT themselves; no separate victim or administrator action is required once ksmbd is running. S:U - The out-of-bounds reads and any resulting oops remain inside the ksmbd/kernel security authority on the host. This is not a VM escape, IOMMU/DMA bypass, or other cross-boundary impact. C:H - With payload_sz==0 the kernel kstrndup()s up to PATH_MAX bytes past the IPC object, and parse_veto_list() uses unbounded strlen()/kstrdup() when the veto buffer lacks a NUL within veto_list_sz. Those are large kernel-heap over-reads, not a few bounded bytes. I:N - The defects are out-of-bounds reads (strlen, kstrndup, kstrdup) into newly allocated strings; there is no out-of-bounds write or control-flow hijack primitive. A local IPC sender can already supply a well-formed share path without this bug. A:H - Walking strlen() or kstrndup(..., PATH_MAX) off the end of the IPC slab into unmapped memory oopses the ksmbd worker. The attacker can repeat the crafted response against further TREE_CONNECT-triggered requests and crash the kernel at will.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from a677ebd8ca2f2632ccdecbad7b87641274e15aac to 61a8d06600c8c397f9a7e01940479d4c94a82f5f (excl.)
  • affected from a677ebd8ca2f2632ccdecbad7b87641274e15aac to f25e93768fcc5d8287e50b1ec52a42e4c276df34 (excl.)
  • Version 88b7f1143b15b29cccb8392b4f38e75b7bb3e300 is affected
  • Version 51a6c2af9d20203ddeeaf73314ba8854b38d01bd is affected
  • Version a637fabac554270a851033f5ab402ecb90bc479c is affected
  • Version 76af689a45aa44714b46d1a7de4ffdf851ded896 is affected
  • affected from 5.15.157 to 5.16 (excl.)
  • affected from 6.1.85 to 6.2 (excl.)
  • affected from 6.6.26 to 6.7 (excl.)
  • affected from 6.8.5 to 6.9 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.9 is affected
  • unaffected from 0 to 6.9 (excl.)
  • unaffected from 7.2.6 to 7.2.* (incl.)
  • unaffected from 7.3-rc2 to * (incl.)

References