CVE-2023-53781 in Linux
Zusammenfassung
von VulDB • 16.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
smc: Behebung eines Use-After-Free-Fehlers in tcp_write_timer_handler().
Mit Eric's Ref-Tracker konnte syzbot schließlich einen reproduzierbaren Fall für einen Use-After-Free-Fehler in tcp_write_timer_handler() durch Kernel-TCP-Sockets finden. [0]
Wenn SMC einen Kernel-Socket in __smc_create() erstellt, soll der Kernel-Socket in smc_clcsock_release() durch Aufruf von sock_release() freigegeben werden, wenn wir den übergeordneten SMC-Socket mit close() schließen.
Am Ende von smc_clcsock_release() ist der sk_state des Kernel-Sockets jedoch möglicherweise nicht TCP_CLOSE. Das bedeutet, dass wir inet_csk_destroy_sock() in __tcp_close() nicht aufgerufen und die TCP-Timer nicht gestoppt haben.
Die TCP-Timer des Kernel-Sockets können später ausgelöst werden, daher müssen wir einen refcnt für net halten, wie wir es auch für MPTCP-Subflows in mptcp_subflow_create_socket() tun.
[0]:
leaked reference. sk_alloc (./include/net/net_namespace.h:335 net/core/sock.c:2108) inet_create (net/ipv4/af_inet.c:319 net/ipv4/af_inet.c:244) __sock_create (net/socket.c:1546) smc_create (net/smc/af_smc.c:3269 net/smc/af_smc.c:3284) __sock_create (net/socket.c:1546) __sys_socket (net/socket.c:1634 net/socket.c:1618 net/socket.c:1661) __x64_sys_socket (net/socket.c:1672) do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120) ================================================================== BUG: KASAN: slab-use-after-free in tcp_write_timer_handler (net/ipv4/tcp_timer.c:378 net/ipv4/tcp_timer.c:624 net/ipv4/tcp_timer.c:594) Read of size 1 at addr ffff888052b65e0d by task syzrepro/18091
CPU: 0 PID: 18091 Comm: syzrepro Tainted: G W 6.3.0-rc4-01174-gb5d54eb5899a #7 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-1.amzn2022.0.1 04/01/2014 Call Trace: <IRQ> dump_stack_lvl (lib/dump_stack.c:107) print_report (mm/kasan/report.c:320 mm/kasan/report.c:430) kasan_report (mm/kasan/report.c:530 mm/kasan/report.c:550)
If you want to get best quality of vulnerability data, you may have to visit VulDB.