{"id":"CVE-2023-54112","state":"PUBLISHED","title":"kcm: Fix memory leak in error path of kcm_sendmsg()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nkcm: Fix memory leak in error path of kcm_sendmsg()\n\nsyzbot reported a memory leak like below:\n\nBUG: memory leak\nunreferenced object 0xffff88810b088c00 (size 240):\n  comm \"syz-executor186\", pid 5012, jiffies 4294943306 (age 13.680s)\n  hex dump (first 32 bytes):\n    00 89 08 0b 81 88 ff ff 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [<ffffffff83e5d5ff>] __alloc_skb+0x1ef/0x230 net/core/skbuff.c:634\n    [<ffffffff84606e59>] alloc_skb include/linux/skbuff.h:1289 [inline]\n    [<ffffffff84606e59>] kcm_sendmsg+0x269/0x1050 net/kcm/kcmsock.c:815\n    [<ffffffff83e479c6>] sock_sendmsg_nosec net/socket.c:725 [inline]\n    [<ffffffff83e479c6>] sock_sendmsg+0x56/0xb0 net/socket.c:748\n    [<ffffffff83e47f55>] ____sys_sendmsg+0x365/0x470 net/socket.c:2494\n    [<ffffffff83e4c389>] ___sys_sendmsg+0xc9/0x130 net/socket.c:2548\n    [<ffffffff83e4c536>] __sys_sendmsg+0xa6/0x120 net/socket.c:2577\n    [<ffffffff84ad7bb8>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]\n    [<ffffffff84ad7bb8>] do_syscall_64+0x38/0xb0 arch/x86/entry/common.c:80\n    [<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0xcd\n\nIn kcm_sendmsg(), kcm_tx_msg(head)->last_skb is used as a cursor to append\nnewly allocated skbs to 'head'. If some bytes are copied, an error occurred,\nand jumped to out_error label, 'last_skb' is left unmodified. A later\nkcm_sendmsg() will use an obsoleted 'last_skb' reference, corrupting the\n'head' frag_list and causing the leak.\n\nThis patch fixes this issue by properly updating the last allocated skb in\n'last_skb'.","publishedAt":"2025-12-24T13:06:34.854Z","updatedAt":"2026-05-11T19:55:42.470Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"8dc7eb757b1652b82725f32e0c89a1e9f6c0e13b","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"5e5554389397e98fafb9efe395d8b4830dd5f042","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"479c71cda14b3c3a6515773faa39055333eaa2b7","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"33db24ad811b3576a0c2f8862506763f2be925b0","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"97275339c34cfbccd65e87bc38fd910ae66c48ba","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"16989de75497574b5fafd174c0c233d5a86858b7","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"af8085e0fc3207ecbf8b9e7a635c790e36d058c6","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"c821a88bd720b0046433173185fd841a100d44ad","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/kcm/kcmsock.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.6","versionType":"semver"},{"version":"4.14.326","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.295","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.257","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.195","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.132","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.54","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.5.4","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/kcm/kcmsock.c"]}],"references":["https://git.kernel.org/stable/c/8dc7eb757b1652b82725f32e0c89a1e9f6c0e13b","https://git.kernel.org/stable/c/5e5554389397e98fafb9efe395d8b4830dd5f042","https://git.kernel.org/stable/c/479c71cda14b3c3a6515773faa39055333eaa2b7","https://git.kernel.org/stable/c/33db24ad811b3576a0c2f8862506763f2be925b0","https://git.kernel.org/stable/c/97275339c34cfbccd65e87bc38fd910ae66c48ba","https://git.kernel.org/stable/c/16989de75497574b5fafd174c0c233d5a86858b7","https://git.kernel.org/stable/c/af8085e0fc3207ecbf8b9e7a635c790e36d058c6","https://git.kernel.org/stable/c/c821a88bd720b0046433173185fd841a100d44ad"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:42.242Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/54xxx/CVE-2023-54112.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-54112","state":"PUBLISHED","datePublished":"2025-12-24T13:06:34.854Z","dateUpdated":"2026-05-11T19:55:42.470Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-24T13:02:52.518Z"},"containers":{"cna":{"title":"kcm: Fix memory leak in error path of kcm_sendmsg()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nkcm: Fix memory leak in error path of kcm_sendmsg()\n\nsyzbot reported a memory leak like below:\n\nBUG: memory leak\nunreferenced object 0xffff88810b088c00 (size 240):\n  comm \"syz-executor186\", pid 5012, jiffies 4294943306 (age 13.680s)\n  hex dump (first 32 bytes):\n    00 89 08 0b 81 88 ff ff 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [<ffffffff83e5d5ff>] __alloc_skb+0x1ef/0x230 net/core/skbuff.c:634\n    [<ffffffff84606e59>] alloc_skb include/linux/skbuff.h:1289 [inline]\n    [<ffffffff84606e59>] kcm_sendmsg+0x269/0x1050 net/kcm/kcmsock.c:815\n    [<ffffffff83e479c6>] sock_sendmsg_nosec net/socket.c:725 [inline]\n    [<ffffffff83e479c6>] sock_sendmsg+0x56/0xb0 net/socket.c:748\n    [<ffffffff83e47f55>] ____sys_sendmsg+0x365/0x470 net/socket.c:2494\n    [<ffffffff83e4c389>] ___sys_sendmsg+0xc9/0x130 net/socket.c:2548\n    [<ffffffff83e4c536>] __sys_sendmsg+0xa6/0x120 net/socket.c:2577\n    [<ffffffff84ad7bb8>] do_syscall_x64 arch/x86/entry/common.c:50 [inline]\n    [<ffffffff84ad7bb8>] do_syscall_64+0x38/0xb0 arch/x86/entry/common.c:80\n    [<ffffffff84c0008b>] entry_SYSCALL_64_after_hwframe+0x63/0xcd\n\nIn kcm_sendmsg(), kcm_tx_msg(head)->last_skb is used as a cursor to append\nnewly allocated skbs to 'head'. If some bytes are copied, an error occurred,\nand jumped to out_error label, 'last_skb' is left unmodified. A later\nkcm_sendmsg() will use an obsoleted 'last_skb' reference, corrupting the\n'head' frag_list and causing the leak.\n\nThis patch fixes this issue by properly updating the last allocated skb in\n'last_skb'."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"8dc7eb757b1652b82725f32e0c89a1e9f6c0e13b","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"5e5554389397e98fafb9efe395d8b4830dd5f042","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"479c71cda14b3c3a6515773faa39055333eaa2b7","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"33db24ad811b3576a0c2f8862506763f2be925b0","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"97275339c34cfbccd65e87bc38fd910ae66c48ba","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"16989de75497574b5fafd174c0c233d5a86858b7","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"af8085e0fc3207ecbf8b9e7a635c790e36d058c6","versionType":"git"},{"version":"ab7ac4eb9832e32a09f4e8042705484d2fb0aad3","status":"affected","lessThan":"c821a88bd720b0046433173185fd841a100d44ad","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/kcm/kcmsock.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.6","versionType":"semver"},{"version":"4.14.326","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.295","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.257","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.195","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.132","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.54","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.5.4","status":"unaffected","lessThanOrEqual":"6.5.*","versionType":"semver"},{"version":"6.6","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/kcm/kcmsock.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8dc7eb757b1652b82725f32e0c89a1e9f6c0e13b"},{"url":"https://git.kernel.org/stable/c/5e5554389397e98fafb9efe395d8b4830dd5f042"},{"url":"https://git.kernel.org/stable/c/479c71cda14b3c3a6515773faa39055333eaa2b7"},{"url":"https://git.kernel.org/stable/c/33db24ad811b3576a0c2f8862506763f2be925b0"},{"url":"https://git.kernel.org/stable/c/97275339c34cfbccd65e87bc38fd910ae66c48ba"},{"url":"https://git.kernel.org/stable/c/16989de75497574b5fafd174c0c233d5a86858b7"},{"url":"https://git.kernel.org/stable/c/af8085e0fc3207ecbf8b9e7a635c790e36d058c6"},{"url":"https://git.kernel.org/stable/c/c821a88bd720b0046433173185fd841a100d44ad"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:55:42.470Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"4.14.326"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"4.19.295"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"5.4.257"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"5.10.195"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"5.15.132"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"6.1.54"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"6.5.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.6","versionEndExcluding":"6.6"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}