linux/net/netfilter/ipvs
Waiman Long aa60652069 ipvs: Guard access of HK_TYPE_KTHREAD cpumask with RCU
The ip_vs_ctl.c file and the associated ip_vs.h file are the only places
in the kernel where HK_TYPE_KTHREAD cpumask is being retrieved and used.
Now that HK_TYPE_KTHREAD/HK_TYPE_DOMAIN cpumask can be changed at run
time. We need to use RCU to guard access to this cpumask to avoid a
potential UAF problem as the returned cpumask may be freed before it
is being used.

We can replace HK_TYPE_KTHREAD by HK_TYPE_DOMAIN as they are aliases
of each other, but keeping the HK_TYPE_KTHREAD name can highlight the
fact that it is the kthread initiated by ipvs that is being controlled.

Fixes: 03ff735101 ("cpuset: Update HK_TYPE_DOMAIN cpumask from cpuset")
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
History 2026-05-05 01:52:55 +02:00
..
ip_vs_app.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_conn.c ipvs: fix the spin_lock usage for RT build 2026-05-05 01:52:55 +02:00
ip_vs_core.c ipvs: fix shift-out-of-bounds in ip_vs_rht_desired_size 2026-05-05 01:52:55 +02:00
ip_vs_ctl.c ipvs: Guard access of HK_TYPE_KTHREAD cpumask with RCU 2026-05-05 01:52:55 +02:00
ip_vs_dh.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ip_vs_est.c ipvs: fix races around est_mutex and est_cpulist 2026-05-05 01:52:55 +02:00
ip_vs_fo.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_ftp.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_lblc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ip_vs_lblcr.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ip_vs_lc.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_mh.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
ip_vs_nfct.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_nq.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_ovf.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_pe.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_pe_sip.c ipvs: switch to per-net connection table 2026-03-04 11:45:45 +01:00
ip_vs_proto.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ip_vs_proto_ah_esp.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_proto_sctp.c ipvs: skip ipv6 extension headers for csum checks 2026-02-17 15:04:20 +01:00
ip_vs_proto_tcp.c ipvs: skip ipv6 extension headers for csum checks 2026-02-17 15:04:20 +01:00
ip_vs_proto_udp.c ipvs: skip ipv6 extension headers for csum checks 2026-02-17 15:04:20 +01:00
ip_vs_rr.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_sched.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_sed.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_sh.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ip_vs_sync.c ipvs: switch to per-net connection table 2026-03-04 11:45:45 +01:00
ip_vs_twos.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_wlc.c net: Remove KMSG_COMPONENT macro 2025-11-28 19:20:27 -08:00
ip_vs_wrr.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ip_vs_xmit.c ipvs: fix MTU check for GSO packets in tunnel mode 2026-04-20 23:45:43 +02:00
Kconfig sctp: use skb_crc32c() instead of __skb_checksum() 2025-05-21 15:40:16 -07:00
Makefile ipvs: add weighted random twos choice algorithm 2021-01-26 01:09:46 +01:00