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.
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
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| 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.