CVE-2023-54112: kcm: Fix memory leak in error path of kcm_sendmsg()
In the Linux kernel, the following vulnerability has been resolved:
kcm: Fix memory leak in error path of kcm_sendmsg()
syzbot reported a memory leak like below:
BUG: memory leak
unreferenced object 0xffff88810b088c00 (size 240):
comm "syz-executor186", pid 5012, jiffies 4294943306 (age 13.680s)
hex dump (first 32 bytes):
00 89 08 0b 81 88 ff ff 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<ffffffff83e5d5ff>] __alloc_skb+0x1ef/0x230 net/core/skbuff.c:634
[<ffffffff84606e59>] alloc_skb include/linux/skbuff.h:1289 [inline]
[<ffffffff84606e59>] kcm_sendmsg+0x269/0x1050 net/kcm/kcmsock.c:815
[<ffffffff83e479c6>] sock_sendmsg_nosec net/socket.c:725 [inline]
[<ffffffff83e479c6>] sock_sendmsg+0x56/0xb0 net/socket.c:748
[<ffffffff83e47f55>] ____sys_sendmsg+0x365/0x470 net/socket.c:2494
[<ffffffff83e4c389>] ___sys_sendmsg+0xc9/0x130 net/socket.c:2548
[<ffffffff83e4c536>] __sys_sendmsg+0xa6/0x120 net/socket.c:2577
[<ffffffff84ad7bb8>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]
[<ffffffff84ad7bb8>] do_syscall_64+0x38/0xb0 arch/x86/entry/common.c:80
[<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
In kcm_sendmsg(), kcm_tx_msg(head)->last_skb is used as a cursor to append
newly allocated skbs to 'head'. If some bytes are copied, an error occurred,
and jumped to out_error label, 'last_skb' is left unmodified. A later
kcm_sendmsg() will use an obsoleted 'last_skb' reference, corrupting the
'head' frag_list and causing the leak.
This patch fixes this issue by properly updating the last allocated skb in
'last_skb'.
Security readout for executives and security teams
Plain-English summary
CVE-2023-54112 is a Linux kernel KCM networking memory leak. An error path in message sending could leave an outdated internal pointer, corrupt a packet list, and leak kernel memory. The source bundle does not provide CVSS, confirmed business impact, or active exploitation evidence.
Executive priority
Treat this as a kernel hygiene issue rather than an emergency based on current evidence. Patch through normal kernel maintenance, with earlier scheduling for shared infrastructure where untrusted workloads can exercise kernel networking paths.
Technical view
In net/kcm/kcmsock.c, kcm_sendmsg() used last_skb as an append cursor. When partial copy succeeded and then errored, last_skb was not updated before out_error. Later sends could use the stale skb reference, corrupt head frag_list, and leak an allocated skb. Stable kernel commits update last_skb correctly.
Likely exposure
Exposure is limited to Linux systems running affected kernel builds with the KCM code path available. The bundle lists Linux kernel versions and stable branch commits, but does not identify distributions, configurations, or whether KCM is commonly enabled in target environments.
Exploitation context
The report came from syzbot memory-leak testing. KEV is false, and the provided sources do not claim exploitation in the wild, remote exploitability, privilege impact, or a public weaponized exploit.
Researcher notes
The evidence supports a memory leak caused by stale last_skb cursor state after a kcm_sendmsg() error path. Public data is thin: no CVSS, CWE, exploitability analysis, or distribution-specific exposure details are included.
Mitigation direction
Update to a kernel containing the referenced stable fix commits.
Check Linux distribution advisories for backported fixes matching your kernel package.
Prioritize shared, multi-tenant, or workload-hosting Linux systems first.
If patch timing is uncertain, seek vendor guidance on KCM exposure controls.
Validation and detection
Inventory Linux kernel versions across servers, containers hosts, appliances, and build images.
Map installed kernels to vendor advisories or the referenced stable commits.
Confirm whether KCM support is present in relevant kernel configurations.
Review kernel update status after maintenance windows.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-54112 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
9Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 24, 2025, 13:06 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.