In the Linux kernel, the following vulnerability has been resolved:
mptcp: fix 'scheduling while atomic' in mptcp_pm_nl_append_new_local_addr
If multiple connection requests attempt to create an implicit mptcp endpoint in parallel, more than one caller may end up in mptcp_pm_nl_append_new_local_addr because none found the address in local_addr_list during their call to mptcp_pm_nl_get_local_id. In this case, the concurrent new_local_addr calls may delete the address entry created by the previous caller. These deletes use synchronize_rcu, but this is not permitted in some of the contexts where this function may be called. During packet recv, the caller may be in a rcu read critical section and have preemption disabled.
An example stack:
BUG: scheduling while atomic: swapper/2/0/0x00000302
Call Trace: <IRQ> dump_stack_lvl (lib/dump_stack.c:117 (discriminator 1)) dump_stack (lib/dump_stack.c:124) __schedule_bug (kernel/sched/core.c:5943) schedule_debug.constprop.0 (arch/x86/include/asm/preempt.h:33 kernel/sched/core.c:5970) __schedule (arch/x86/include/asm/jump_label.h:27 include/linux/jump_label.h:207 kernel/sched/features.h:29 kernel/sched/core.c:6621) schedule (arch/x86/include/asm/preempt.h:84 kernel/sched/core.c:6804 kernel/sched/core.c:6818) schedule_timeout (kernel/time/timer.c:2160) wait_for_completion (kernel/sched/completion.c:96 kernel/sched/completion.c:116 kernel/sched/completion.c:127 kernel/sched/completion.c:148) __wait_rcu_gp (include/linux/rcupdate.h:311 kernel/rcu/update.c:444) synchronize_rcu (kernel/rcu/tree.c:3609) mptcp_pm_nl_append_new_local_addr (net/mptcp/pm_netlink.c:966 net/mptcp/pm_netlink.c:1061) mptcp_pm_nl_get_local_id (net/mptcp/pm_netlink.c:1164) mptcp_pm_get_local_id (net/mptcp/pm.c:420) subflow_check_req (net/mptcp/subflow.c:98 net/mptcp/subflow.c:213) subflow_v4_route_req (net/mptcp/subflow.c:305) tcp_conn_request (net/ipv4/tcp_input.c:7216) subflow_v4_conn_request (net/mptcp/subflow.c:651) tcp_rcv_state_process (net/ipv4/tcp_input.c:6709) tcp_v4_do_rcv (net/ipv4/tcp_ipv4.c:1934) tcp_v4_rcv (net/ipv4/tcp_ipv4.c:2334) ip_protocol_deliver_rcu (net/ipv4/ip_input.c:205 (discriminator 1)) ip_local_deliver_finish (include/linux/rcupdate.h:813 net/ipv4/ip_input.c:234) ip_local_deliver (include/linux/netfilter.h:314 include/linux/netfilter.h:308 net/ipv4/ip_input.c:254) ip_sublist_rcv_finish (include/net/dst.h:461 net/ipv4/ip_input.c:580) ip_sublist_rcv (net/ipv4/ip_input.c:640) ip_list_rcv (net/ipv4/ip_input.c:675) __netif_receive_skb_list_core (net/core/dev.c:5583 net/core/dev.c:5631) netif_receive_skb_list_internal (net/core/dev.c:5685 net/core/dev.c:5774) napi_complete_done (include/linux/list.h:37 include/net/gro.h:449 include/net/gro.h:444 net/core/dev.c:6114) igb_poll (drivers/net/ethernet/intel/igb/igb_main.c:8244) igb __napi_poll (net/core/dev.c:6582) net_rx_action (net/core/dev.c:6653 net/core/dev.c:6787) handle_softirqs (kernel/softirq.c:553) __irq_exit_rcu (kernel/softirq.c:588 kernel/softirq.c:427 kernel/softirq.c:636) irq_exit_rcu (kernel/softirq.c:651) common_interrupt (arch/x86/kernel/irq.c:247 (discriminator 14)) </IRQ>
This problem seems particularly prevalent if the user advertises an endpoint that has a different external vs internal address. In the case where the external address is advertised and multiple connections already exist, multiple subflow SYNs arrive in parallel which tends to trigger the race during creation of the first local_addr_list entries which have the internal address instead.
Fix by skipping the replacement of an existing implicit local address if called via mptcp_pm_nl_get_local_id.
CVSS Details
- CVSS 3.1 Base Score: 7.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade python3-perfUpgrade kernel-tools-develUpgrade kernel-libbpfUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernelUpgrade kernel-headersUpgrade kernel-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade perf-debuginfoUpgrade kernel-livepatch-6.1.131-143.221Upgrade kernel-modules-extra-commonUpgrade kernel-libbpf-staticUpgrade kernel-debuginfo-common-aarch64Upgrade bpftoolUpgrade kernel-develUpgrade kernel-toolsUpgrade python3-perf-debuginfoUpgrade kernel-libbpf-debuginfoUpgrade perf | Jun 11, 2025 | Apr 1, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Apr 14, 2025 | Apr 1, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Apr 1, 2025 |
| Suse | — | Upgrade kernel-obs-qaUpgrade kernel-rt-develUpgrade cluster-md-kmp-rtUpgrade kernel-debug-develUpgrade dtb-hisiliconUpgrade kernel-64kbUpgrade dtb-amdUpgrade kselftests-kmp-rtUpgrade dtb-amlogicUpgrade kernel-kvmsmallUpgrade dtb-apmUpgrade kernel-default-vdsoUpgrade dtb-armUpgrade kernel-devel-azureUpgrade dtb-renesasUpgrade ocfs2-kmp-azureUpgrade gfs2-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade gfs2-kmp-64kbUpgrade dtb-mediatekUpgrade dlm-kmp-defaultUpgrade kernel-default-optionalUpgrade kernel-zfcpdumpUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-docsUpgrade kernel-symsUpgrade reiserfs-kmp-defaultUpgrade dtb-amazonUpgrade kernel-default-livepatch-develUpgrade kernel-debugUpgrade kernel-64kb-develUpgrade kernel-macrosUpgrade reiserfs-kmp-azureUpgrade dtb-xilinxUpgrade kernel-default-extraUpgrade kernel-64kb-optionalUpgrade kernel-develUpgrade cluster-md-kmp-azureUpgrade kernel-default-develUpgrade kernel-devel-rtUpgrade kernel-kvmsmall-develUpgrade kernel-sourceUpgrade dtb-socionextUpgrade dlm-kmp-rtUpgrade dlm-kmp-64kbUpgrade kernel-azure-develUpgrade dtb-sprdUpgrade dtb-marvellUpgrade kernel-debug-vdsoUpgrade kernel-default-baseUpgrade dtb-nvidiaUpgrade ocfs2-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade kernel-rt_debug-develUpgrade kernel-default-livepatchUpgrade gfs2-kmp-azureUpgrade dtb-allwinnerUpgrade reiserfs-kmp-64kbUpgrade kernel-rt-optionalUpgrade kernel-azure-extraUpgrade kernel-64kb-extraUpgrade dtb-freescaleUpgrade ocfs2-kmp-64kbUpgrade kernel-obs-buildUpgrade gfs2-kmp-defaultUpgrade kernel-docs-htmlUpgrade kernel-default-base-rebuildUpgrade kernel-azure-optionalUpgrade dtb-lgUpgrade kernel-rtUpgrade kernel-kvmsmall-vdsoUpgrade dtb-alteraUpgrade kernel-syms-rtUpgrade kernel-source-vanillaUpgrade kernel-azure-vdsoUpgrade dtb-broadcomUpgrade kernel-azureUpgrade dtb-rockchipUpgrade kernel-source-azureUpgrade kernel-rt-vdsoUpgrade dtb-caviumUpgrade kernel-syms-azureUpgrade kernel-rt_debugUpgrade kernel-source-rtUpgrade dtb-qcomUpgrade dtb-appleUpgrade reiserfs-kmp-rtUpgrade kselftests-kmp-azureUpgrade dtb-exynosUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-livepatch-develUpgrade kernel-rt-extraUpgrade kernel-default | Dec 5, 2025 | Jul 8, 2025 |
| Ubuntu | — | Upgrade linux-image-nvidiaUpgrade linux-image-azureUpgrade linux-image-genericUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-oem-22.04aUpgrade linux-image-azure-lts-24.04Upgrade linux-image-gkeUpgrade linux-image-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-ibm-classicUpgrade linux-image-oem-22.04dUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-6.11.0-1022-oemUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.11.0-26-genericUpgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-6.11.0-1014-awsUpgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1029-azureUpgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-azure-nvidiaUpgrade linux-image-gkeopUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-oem-22.04Upgrade linux-image-raspiUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-awsUpgrade linux-image-oem-24.04bUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-6.11.0-1015-azureUpgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-virtualUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.8.0-1026-ibmUpgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1028-oemUpgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-realtimeUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oracleUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-6.8.0-60-generic | May 20, 2025 | Apr 1, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 13, 2025 | Apr 1, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub