ksmbd: ipc: fix use-after-free in ipc_msg_send_request (Linux Linux)

CVE-2025-68263
CRITICAL 9.8

At a glance

Source
NVD
EPSS
EPSS 0.44 % · percentile 39 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Deferred

Description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: ipc: fix use-after-free in ipc_msg_send_request ipc_msg_send_request() waits for a generic netlink reply using an ipc_msg_table_entry on the stack. The generic netlink handler (handle_generic_event()/handle_response()) fills entry->response under ipc_msg_table_lock, but ipc_msg_send_request() used to validate and free entry->response without holding the same lock. Under high concurrency this allows a race where handle_response() is copying data into entry->response while ipc_msg_send_request() has just freed it, leading to a slab-use-after-free reported by KASAN in handle_generic_event(): BUG: KASAN: slab-use-after-free in handle_generic_event+0x3c4/0x5f0 [ksmbd] Write of size 12 at addr ffff888198ee6e20 by task pool/109349 ... Freed by task: kvfree ipc_msg_send_request [ksmbd] ksmbd_rpc_open -> ksmbd_session_rpc_open [ksmbd] Fix by: - Taking ipc_msg_table_lock in ipc_msg_send_request() while validating entry->response, freeing it when invalid, and removing the entry from ipc_msg_table. - Returning the final entry->response pointer to the caller only after the hash entry is removed under the lock. - Returning NULL in the error path, preserving the original API semantics. This makes all accesses to entry->response consistent with handle_response(), which already updates and fills the response buffer under ipc_msg_table_lock, and closes the race that allowed the UAF.

References

Scores

VersionScoreVectorScored by
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)

European references

CERT-FR advisories

Affected products

ProductVersions
Linux · Linuxaffected 0626e6641f6b467447c81dd7678a69c66f7746cf < de85fb58f9967ba024bb08e0041613d37b57b4d1 ; affected 0626e6641f6b467447c81dd7678a69c66f7746cf < 708a620b471a14466f1f52c90bf3f65ebdb31460 ; affected 0626e6641f6b467447c81dd7678a69c66f7746cf < 5ac763713a1ef8f9a8bda1dbd81f0318d67baa4e ; affected 0626e6641f6b467447c81dd7678a69c66f7746cf < 759c8c30cfa8706c518e56f67971b1f0932f4b9b ; affected 0626e6641f6b467447c81dd7678a69c66f7746cf < 8229c6ca50cea701e25a7ee25f48441b582ec5fa ; affected 0626e6641f6b467447c81dd7678a69c66f7746cf < 1fab1fa091f5aa97265648b53ea031deedd26235
Linux · Linuxaffected 5.15 ; unaffected 0 < 5.15 ; unaffected 6.1.160 ≤ 6.1.* ; unaffected 6.6.120 ≤ 6.6.* ; unaffected 6.12.62 ≤ 6.12.* ; unaffected 6.17.12 ≤ 6.17.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD