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 kernel-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade python3-perfUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-libbpfUpgrade kernel-headersUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.1.131-143.221Upgrade kernel-tools-develUpgrade perf-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-libbpf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-toolsUpgrade bpftoolUpgrade perfUpgrade kernel-develUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perf-debuginfoUpgrade kernel-libbpf-static | Jun 11, 2025 | Apr 1, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Apr 14, 2025 | Apr 1, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Apr 1, 2025 |
| Suse | — | Upgrade dtb-sprdUpgrade dtb-exynosUpgrade kernel-source-azureUpgrade kernel-rt-livepatch-develUpgrade dlm-kmp-rtUpgrade kernel-defaultUpgrade dtb-broadcomUpgrade dtb-rockchipUpgrade dtb-marvellUpgrade kernel-azure-extraUpgrade kernel-debug-vdsoUpgrade dtb-freescaleUpgrade kernel-64kb-extraUpgrade kernel-rt-optionalUpgrade kselftests-kmp-azureUpgrade kernel-docs-htmlUpgrade ocfs2-kmp-64kbUpgrade reiserfs-kmp-rtUpgrade dlm-kmp-64kbUpgrade kernel-rt-extraUpgrade kernel-azureUpgrade kernel-source-rtUpgrade dtb-socionextUpgrade kernel-default-livepatchUpgrade kernel-azure-develUpgrade kernel-kvmsmall-vdsoUpgrade reiserfs-kmp-64kbUpgrade kernel-azure-optionalUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-64kbUpgrade kernel-default-baseUpgrade dtb-nvidiaUpgrade dtb-caviumUpgrade cluster-md-kmp-64kbUpgrade ocfs2-kmp-defaultUpgrade dtb-appleUpgrade dtb-allwinnerUpgrade gfs2-kmp-azureUpgrade kernel-rtUpgrade gfs2-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-obs-buildUpgrade kernel-syms-rtUpgrade kernel-rt-vdsoUpgrade dtb-qcomUpgrade kernel-azure-vdsoUpgrade dtb-lgUpgrade kernel-rt_debugUpgrade kernel-default-base-rebuildUpgrade dtb-alteraUpgrade kernel-source-vanillaUpgrade gfs2-kmp-rtUpgrade kernel-kvmsmallUpgrade dtb-hisiliconUpgrade dtb-amdUpgrade kselftests-kmp-defaultUpgrade kernel-kvmsmall-develUpgrade cluster-md-kmp-azureUpgrade kernel-sourceUpgrade kernel-develUpgrade kernel-default-optionalUpgrade kernel-default-extraUpgrade kernel-docsUpgrade kernel-default-develUpgrade kernel-devel-rtUpgrade kernel-zfcpdumpUpgrade gfs2-kmp-64kbUpgrade dtb-xilinxUpgrade reiserfs-kmp-azureUpgrade kernel-default-livepatch-develUpgrade cluster-md-kmp-defaultUpgrade dtb-renesasUpgrade dlm-kmp-azureUpgrade kernel-64kb-optionalUpgrade kernel-64kbUpgrade dtb-armUpgrade ocfs2-kmp-azureUpgrade kernel-debug-develUpgrade kernel-obs-qaUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade dtb-amlogicUpgrade kernel-macrosUpgrade kernel-debugUpgrade kernel-64kb-develUpgrade dtb-amazonUpgrade reiserfs-kmp-defaultUpgrade kernel-rt-develUpgrade kernel-symsUpgrade dtb-mediatekUpgrade dtb-apmUpgrade kselftests-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-devel-azureUpgrade kernel-default-vdsoUpgrade ocfs2-kmp-rt | Dec 5, 2025 | Jul 8, 2025 |
| Ubuntu | — | Upgrade linux-image-azure-lts-24.04Upgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1029-azureUpgrade linux-image-ibmUpgrade linux-image-gcpUpgrade linux-image-genericUpgrade linux-image-6.11.0-1014-awsUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-raspi-realtimeUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-gcp-64kUpgrade linux-image-6.11.0-1014-lowlatencyUpgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.11.0-1013-raspiUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-azureUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.11.0-26-generic-64kUpgrade linux-image-6.11.0-1010-realtimeUpgrade linux-image-realtimeUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.11.0-1016-oracle-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-virtualUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-6.8.0-1026-ibmUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.8.0-1028-oemUpgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.11.0-1015-azureUpgrade linux-image-awsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-24.04bUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-oracleUpgrade linux-image-6.8.0-60-genericUpgrade linux-image-generic-lpaeUpgrade linux-image-6.11.0-1015-gcpUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.11.0-1014-lowlatency-64kUpgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-6.11.0-1016-oracleUpgrade linux-image-oem-22.04dUpgrade linux-image-6.11.0-1022-oemUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-oem-22.04aUpgrade linux-image-6.11.0-26-genericUpgrade linux-image-azure-nvidiaUpgrade linux-image-6.11.0-1015-gcp-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-oem-24.04Upgrade linux-image-6.11.0-1015-azure-fdeUpgrade linux-image-gkeopUpgrade linux-image-oem-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oem-22.04cUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-gkeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-raspi | 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