CVE-2025-38154

Description

In the Linux kernel, the following vulnerability has been resolved:bpf, sockmap: Avoid using sk_socket after free when sendingThe sk->sk_socket is not locked or referenced in backlog thread, andduring the call to skb_send_sock(), there is a race condition withthe release of sk_socket. All types of sockets(tcp/udp/unix/vsock)will be affected.Race conditions:CPU0 CPU1backlog::skb_send_sock sendmsg_unlocked sock_sendmsg sock_sendmsg_nosec close(fd): ... ops->release() -> sock_map_close() sk_socket->ops = null free(socket) sock->ops->sendmsg ^ panic hereThe ref of psock become 0 after sock_map_close() executed.void sock_map_close(){ ... if (likely(psock)) { ... // !! here we remove psock and the ref of psock become 0 sock_map_remove_links(sk, psock) psock = sk_psock_get(sk); if (unlikely(!psock)) goto no_psock; <=== Control jumps here via goto ... cancel_delayed_work_sync(&psock->work); <=== not executed sk_psock_put(sk, psock); ...}Based on the fact that we already wait for the workqueue to finish insock_map_close() if psock is held, we simply increase the psockreference count to avoid race conditions.With this patch, if the backlog thread is running, sock_map_close() willwait for the backlog thread to complete and cancel all pending work.If no backlog running, any pending work that hasnt started by then willfail when invoked by sk_psock_get(), as the psock reference count havebeen zeroed, and sk_psock_drop() will cancel all jobs viacancel_delayed_work_sync().In summary, we require synchronization to coordinate the backlog threadand close() thread.The panic I catched:Workqueue: events sk_psock_backlogRIP: 0010:sock_sendmsg+0x21d/0x440RAX: 0000000000000000 RBX: ffffc9000521fad8 RCX: 0000000000000001...Call Trace: die_addr+0x40/0xa0 exc_general_protection+0x14c/0x230 asm_exc_general_protection+0x26/0x30 sock_sendmsg+0x21d/0x440 sock_sendmsg+0x3e0/0x440 __pfx_sock_sendmsg+0x10/0x10 __skb_send_sock+0x543/0xb70 sk_psock_backlog+0x247/0xb80...

Risk Information

Base Score
7.8
MODERATE
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Score
Exploitation Probability
0.019

Associated Vulnerability

VulnerabilityOS Platform
kernel Security Update (ALAS2023-2025-1111) ALAS2023-2025-1111 kernel-livepatch-6.1.144-170.251-1.0-0.amzn2023.x86_64.rpmLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-cpupower_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-doc_6.1.147-1_all.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-doc-6.1_6.1.147-1_all.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-686-dbg_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-686-pae-dbg_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-cpupower_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-amd64-signed-template_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-cloud-amd64-dbg_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-i386-signed-template_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-rt-686-pae-dbg_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-rt-amd64-dbg_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-image-amd64-dbg_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-config-6.1_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-config-6.1_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-compiler-gcc-12-x86_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-kbuild-6.1_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 libcpupower1_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 libcpupower1_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 libcpupower-dev_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 libcpupower-dev_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 hyperv-daemons_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 hyperv-daemons_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 bpftool_7.1.0+6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-compiler-gcc-12-x86_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 usbip_2.0+6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 usbip_2.0+6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 rtla_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 rtla_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-source-6.1_6.1.147-1_all.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-source_6.1.147-1_all.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-libc-dev_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 bpftool_7.1.0+6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-libc-dev_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-perf_6.1.147-1_amd64.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-kbuild-6.1_6.1.147-1_i386.debLinux
linux security update(DSA-5973-1) DSA-5973-1 linux-perf_6.1.147-1_i386.debLinux

Patch Details

No records found

References

https://nvd.nist.gov/vuln/detail/CVE-2023-1234
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-1234