CVE-2025-21938

Yüksək

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: mptcp: mptcp_pm_nl_append_new_local_addr funksiyasında 'scheduling while atomic' xətası düzəldildi Əgər bir neçə bağlantı sorğusu paralel şəkildə implicit mptcp endpoint yaratmağa çalışarsa, heç biri mptcp_pm_nl_get_local_id çağırışı zamanı ünvanı local_addr_list-dən tapmadığı üçün birdən çox çağırıcı mptcp_pm_nl_append_new_local_addr funksiyasına daxil ola bilər. Bu halda, eyni vaxtda baş verən new_local_addr çağırışları əvvəlki çağırıcı tərəfindən yaradılmış ünvan girişini silə bilər. Bu silmə əməliyyatları synchronize_rcu funksiyasından istifadə edir, lakin bu funksiyanın çağırıla bildiyi bəzi kontekstlərdə buna icazə verilmir. Paket qəbulu (recv) zamanı çağırıcı rcu oxuma kritik bölməsində ola və preemption deaktiv edilmiş ola bilər. Nümunə stek: 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> Bu problem, istifadəçi xarici və daxili ünvanları fərqli olan bir endpoint təqdim etdikdə daha çox müşahidə olunur. Xarici ünvan elan edildikdə və artıq bir neçə bağlantı mövcud olduqda, paralel olaraq çoxlu sayda subflow SYN paketləri gəlir ki, bu da yerinə daxili ünvan olan ilk local_addr_list girişlərinin yaradılması zamanı yarış vəziyyətini (race condition) tetikləyir. Həll yolu: Əgər mptcp_pm_nl_get_local_id vasitəsilə çağırılıbsa, mövcud implicit lokal ünvanın əvəzlənməsi ötürülür.

CiddilikYüksək
CVSS7.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc1 apr 2025
İlk görülmə1 apr 2025

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.1.131, 6.6.83, 6.12.19, 6.13.7 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel5.18 ≤ v < 6.1.131, 6.2 ≤ v < 6.6.83, 6.7 ≤ v < 6.12.19, 6.13 ≤ v < 6.13.7, 6.146.1.131, 6.6.83, 6.12.19, 6.13.7

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2025-21938 · Linux Kernel · Dark Radar