{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-89792", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-09-11T19:38:34.766Z", "datePublished": "2026-09-16T08:50:06.516Z", "dateUpdated": "2026-10-19T08:52:47.159Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-10-19T08:52:47.159Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: prevent out-of-bounds reads in share config responses\n\nValidate IPC share configuration payload sizes before consuming\nvariable-length fields. Bound veto list parsing and account for\nthe separator byte when deriving the path length." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "baseScore": 7.1, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "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.\nAC: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.\nPR: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.\nUI: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.\nS: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.\nC: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.\nI: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.\nA: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." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/smb/server/mgmt/share_config.c", "fs/smb/server/transport_ipc.c" ], "versions": [ { "version": "88b7f1143b15b29cccb8392b4f38e75b7bb3e300", "lessThan": "df8aa4a09733c4d3974b1db32c1782b3aad3a151", "status": "affected", "versionType": "git" }, { "version": "51a6c2af9d20203ddeeaf73314ba8854b38d01bd", "lessThan": "0127f1c119bde40578f4d25f5d17333b4e75de8c", "status": "affected", "versionType": "git" }, { "version": "a637fabac554270a851033f5ab402ecb90bc479c", "lessThan": "fd636a87161def6e35876ab7943641ce457974c8", "status": "affected", "versionType": "git" }, { "version": "a677ebd8ca2f2632ccdecbad7b87641274e15aac", "lessThan": "ffa507f5f774cb4d45136b106989ebc051361263", "status": "affected", "versionType": "git" }, { "version": "a677ebd8ca2f2632ccdecbad7b87641274e15aac", "lessThan": "cd2bcee450bc94770be56c0b896c1a1dc6838bd8", "status": "affected", "versionType": "git" }, { "version": "a677ebd8ca2f2632ccdecbad7b87641274e15aac", "lessThan": "61a8d06600c8c397f9a7e01940479d4c94a82f5f", "status": "affected", "versionType": "git" }, { "version": "a677ebd8ca2f2632ccdecbad7b87641274e15aac", "lessThan": "f25e93768fcc5d8287e50b1ec52a42e4c276df34", "status": "affected", "versionType": "git" }, { "version": "76af689a45aa44714b46d1a7de4ffdf851ded896", "status": "affected", "versionType": "git" }, { "version": "5.15.157", "lessThan": "5.15.222", "status": "affected", "versionType": "semver" }, { "version": "6.1.85", "lessThan": "6.1.189", "status": "affected", "versionType": "semver" }, { "version": "6.6.26", "lessThan": "6.6.158", "status": "affected", "versionType": "semver" }, { "version": "6.8.5", "lessThan": "6.9", "status": "affected", "versionType": "semver" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/smb/server/mgmt/share_config.c", "fs/smb/server/transport_ipc.c" ], "versions": [ { "version": "6.9", "status": "affected" }, { "version": "0", "lessThan": "6.9", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.222", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.189", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.158", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.111", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.53", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.2.6", "lessThanOrEqual": "7.2.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.3", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15.157", "versionEndExcluding": "5.15.222" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.1.85", "versionEndExcluding": "6.1.189" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.6.26", "versionEndExcluding": "6.6.158" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.9", "versionEndExcluding": "6.12.111" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.9", "versionEndExcluding": "6.18.53" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.9", "versionEndExcluding": "7.2.6" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.9", "versionEndExcluding": "7.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.8.5" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/df8aa4a09733c4d3974b1db32c1782b3aad3a151" }, { "url": "https://git.kernel.org/stable/c/0127f1c119bde40578f4d25f5d17333b4e75de8c" }, { "url": "https://git.kernel.org/stable/c/fd636a87161def6e35876ab7943641ce457974c8" }, { "url": "https://git.kernel.org/stable/c/ffa507f5f774cb4d45136b106989ebc051361263" }, { "url": "https://git.kernel.org/stable/c/cd2bcee450bc94770be56c0b896c1a1dc6838bd8" }, { "url": "https://git.kernel.org/stable/c/61a8d06600c8c397f9a7e01940479d4c94a82f5f" }, { "url": "https://git.kernel.org/stable/c/f25e93768fcc5d8287e50b1ec52a42e4c276df34" } ], "title": "ksmbd: prevent out-of-bounds reads in share config responses", "x_generator": { "engine": "bippy-1.2.0" } } } }