CVE-2025-38734

net/smc: fix UAF on smcsk after smc_listen_out()

CVE-2025-38734 is fixed in 24 products on 1 platform, first by DEBIAN-CVE-2025-38734, released September 5, 2025. It is not reported as exploited. Patch Radar priority: High.

High
CVSS
7.8
high
Exploitation
None reported
No vendor assessment
CISA KEV
Not listed
Not in the Known Exploited Vulnerabilities catalog
EPSS
0.0048
41st percentile

In the Linux kernel, the following vulnerability has been resolved: net/smc: fix UAF on smcsk after smc_listen_out() BPF CI testing report a UAF issue: [ 16.446633] BUG: kernel NULL pointer dereference, address: 000000000000003 0 [ 16.447134] #PF: supervisor read access in kernel mod e [ 16.447516] #PF: error_code(0x0000) - not-present pag e [ 16.447878] PGD 0 P4D 0 [ 16.448063] Oops: Oops: 0000 [#1] PREEMPT SMP NOPT I [ 16.448409] CPU: 0 UID: 0 PID: 9 Comm: kworker/0:1 Tainted: G OE 6.13.0-rc3-g89e8a75fda73-dirty #4 2 [ 16.449124] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODUL E [ 16.449502] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/201 4 [ 16.450201] Workqueue: smc_hs_wq smc_listen_wor k [ 16.450531] RIP: 0010:smc_listen_work+0xc02/0x159 0 [ 16.452158] RSP: 0018:ffffb5ab40053d98 EFLAGS: 0001024 6 [ 16.452526] RAX: 0000000000000001 RBX: 0000000000000002 RCX: 000000000000030 0 [ 16.452994] RDX: 0000000000000280 RSI: 00003513840053f0 RDI: 000000000000000 0 [ 16.453492] RBP: ffffa097808e3800 R08: ffffa09782dba1e0 R09: 000000000000000 5 [ 16.453987] R10: 0000000000000000 R11: 0000000000000000 R12: ffffa0978274640 0 [ 16.454497] R13: 0000000000000000 R14: 0000000000000000 R15: ffffa09782d4092 0 [ 16.454996] FS: 0000000000000000(0000) GS:ffffa097bbc00000(0000) knlGS:000000000000000 0 [ 16.455557] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003 3 [ 16.455961] CR2: 0000000000000030 CR3: 0000000102788004 CR4: 0000000000770ef 0 [ 16.456459] PKRU: 5555555 4 [ 16.456654] Call Trace : [ 16.456832] <TASK > [ 16.456989] ? __die+0x23/0x7 0 [ 16.457215] ? page_fault_oops+0x180/0x4c 0 [ 16.457508] ? __lock_acquire+0x3e6/0x249 0 [ 16.457801] ? exc_page_fault+0x68/0x20 0 [ 16.458080] ? asm_exc_page_fault+0x26/0x3 0 [ 16.458389] ? smc_listen_work+0xc02/0x159 0 [ 16.458689] ? smc_listen_work+0xc02/0x159 0 [ 16.458987] ? lock_is_held_type+0x8f/0x10 0 [ 16.459284] process_one_work+0x1ea/0x6d 0 [ 16.459570] worker_thread+0x1c3/0x38 0 [ 16.459839] ? __pfx_worker_thread+0x10/0x1 0 [ 16.460144] kthread+0xe0/0x11 0 [ 16.460372] ? __pfx_kthread+0x10/0x1 0 [ 16.460640] ret_from_fork+0x31/0x5 0 [ 16.460896] ? __pfx_kthread+0x10/0x1 0 [ 16.461166] ret_from_fork_asm+0x1a/0x3 0 [ 16.461453] </TASK > [ 16.461616] Modules linked in: bpf_testmod(OE) [last unloaded: bpf_testmod(OE) ] [ 16.462134] CR2: 000000000000003 0 [ 16.462380] ---[ end trace 0000000000000000 ]--- [ 16.462710] RIP: 0010:smc_listen_work+0xc02/0x1590 The direct cause of this issue is that after smc_listen_out_connected(), newclcsock->sk may be NULL since it will releases the smcsk. Therefore, if the application closes the socket immediately after accept, newclcsock->sk can be NULL. A possible execution order could be as follows: smc_listen_work | userspace ----------------------------------------------------------------- lock_sock(sk) | smc_listen_out_connected() | | \- smc_listen_out | | | \- release_sock | | |- sk->sk_data_ready() | | fd = accept(); | close(fd); | \- socket->sk = NULL; /* newclcsock->sk is NULL now */ SMC_STAT_SERV_SUCC_INC(sock_net(newclcsock->sk)) Since smc_listen_out_connected() will not fail, simply swapping the order of the code can easily fix this issue.

Where it's fixed

ProductFixed inFixReleased
Linux
dtb-aarch64 · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
dtb-aarch64 · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-64kb · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-64kb · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-64kb · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-64kb · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-64kb · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-azure · opensuse-leap 15.6 6.4.0-150600.8.52.1 SUSE-SU-2025:03634-1 Oct 17, 2025
kernel-azure · sles 15.6 6.4.0-150600.8.52.1 SUSE-SU-2025:03634-1 Oct 17, 2025
kernel-azure · sles 15.7 6.4.0-150700.20.18.1 SUSE-SU-2025:4132-1 Nov 18, 2025
kernel-debug · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-default · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-default · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-default · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-default · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-default · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-default-base · opensuse-leap 15.6 6.4.0-150600.23.73.1.150600.12.32.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-default-base · opensuse-leap 16.0 6.12.0-160000.6.1.160000.2.4 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-default-base · sles 15.6 6.4.0-150600.23.73.1.150600.12.32.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-default-base · sles 15.7 6.4.0-150700.53.22.1.150700.17.15.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-default-base · sles 16.0 6.12.0-160000.6.1.160000.2.4 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-docs · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-docs · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-docs · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-docs · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-docs · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-kvmsmall · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-kvmsmall · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-kvmsmall · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-livepatch-SLE15-SP6-RT_Update_16 · sles 15.6 1-150600.1.3.1 SUSE-SU-2025:3751-1 Oct 23, 2025
kernel-livepatch-SLE15-SP6_Update_16 · sles 15.6 1-150600.13.3.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-livepatch-SLE15-SP7-RT_Update_6 · sles 15.7 1-150700.1.3.1 SUSE-SU-2025:4141-1 Nov 19, 2025
kernel-livepatch-SLE15-SP7_Update_6 · sles 15.7 1-150700.15.3.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-obs-build · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-obs-build · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-obs-build · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-obs-build · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-obs-qa · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-obs-qa · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-obs-qa · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-rt · opensuse-leap 15.6 6.4.0-150600.10.55.1 SUSE-SU-2025:3751-1 Oct 23, 2025
kernel-rt · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-rt_debug · opensuse-leap 15.6 6.4.0-150600.10.55.1 SUSE-SU-2025:3751-1 Oct 23, 2025
kernel-source · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-source · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-source · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-source · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-source · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-source-azure · opensuse-leap 15.6 6.4.0-150600.8.52.1 SUSE-SU-2025:03634-1 Oct 17, 2025
kernel-source-azure · sles 15.6 6.4.0-150600.8.52.1 SUSE-SU-2025:03634-1 Oct 17, 2025
kernel-source-azure · sles 15.7 6.4.0-150700.20.18.1 SUSE-SU-2025:4132-1 Nov 18, 2025
kernel-source-rt · opensuse-leap 15.6 6.4.0-150600.10.55.1 SUSE-SU-2025:3751-1 Oct 23, 2025
kernel-syms · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-syms · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-syms · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-syms · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-syms · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
kernel-syms-azure · opensuse-leap 15.6 6.4.0-150600.8.52.1 SUSE-SU-2025:03634-1 Oct 17, 2025
kernel-syms-azure · sles 15.6 6.4.0-150600.8.52.1 SUSE-SU-2025:03634-1 Oct 17, 2025
kernel-syms-azure · sles 15.7 6.4.0-150700.20.18.1 SUSE-SU-2025:4132-1 Nov 18, 2025
kernel-syms-rt · opensuse-leap 15.6 6.4.0-150600.10.55.1 SUSE-SU-2025:3751-1 Oct 23, 2025
kernel-zfcpdump · opensuse-leap 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-zfcpdump · opensuse-leap 16.0 6.12.0-160000.6.1 OPENSUSE-SU-2025:20081-1 Nov 25, 2025
kernel-zfcpdump · sles 15.6 6.4.0-150600.23.73.1 SUSE-SU-2025:03600-1 Oct 15, 2025
kernel-zfcpdump · sles 15.7 6.4.0-150700.53.22.1 SUSE-SU-2025:4057-1 Nov 11, 2025
kernel-zfcpdump · sles 16.0 6.12.0-160000.6.1 SUSE-SU-2025:21139-1 Nov 25, 2025
linux · Debian 13.5 (trixie) 6.12.48-1 DEBIAN-CVE-2025-38734 Sep 5, 2025
linux · Debian 14 6.16.5-1 DEBIAN-CVE-2025-38734 Sep 5, 2025

Patch Radar data is free to use with attribution. Terms and how to credit it.

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.