igmp: convert struct ip_sf_list to RCU
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 6 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
In the Linux kernel, the following vulnerability has been resolved: igmp: convert struct ip_sf_list to RCU Commit 23d2b94043ca ("igmp: Add ip_mc_list lock in ip_check_mc_rcu") added spin_lock_bh(&im->lock) to ip_check_mc_rcu() to prevent a use-after-free while iterating im->sources during concurrent deletions. However, ip_check_mc_rcu() is called from RCU read-side critical sections in packet receive and route lookup fast paths (e.g. __mkroute_output(), ip_route_input_rcu(), and __udp4_lib_rcv()). When igmpv3_send_cr() or igmpv3_send_report() holds &pmc->lock and calls add_grec() -> igmpv3_newpack() -> ip_route_output_ports(), an XFRM policy matching a multicast destination triggers xfrm_tmpl_resolve_one() -> xfrm4_get_saddr() -> __mkroute_output() -> ip_check_mc_rcu(). This attempts to acquire &im->lock while &pmc->lock is already held on the same CPU, triggering a lockdep recursive locking warning / deadlock. Fix this by converting IPv4 struct ip_sf_list to RCU, mirroring the IPv6 implementation in net/ipv6/mcast.c: 1. Add struct rcu_head to struct ip_sf_list and annotate sf_next, sources, and tomb as __rcu pointers. 2. Use rcu_assign_pointer() and kfree_rcu() for list updates and deletions. 3. Remove spin_lock_bh(&im->lock) from ip_check_mc_rcu() and traverse im->sources locklessly with for_each_psf_rcu(), reading and writing counter fields with READ_ONCE() and WRITE_ONCE(). Note: RCU conversion of /proc/net/mcfilter will be done in a separate patch.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Linux | Linux | 4.4.284 to before 4.5; 4.9.283 to before 4.10; 4.14.247 to before 4.15; 4.19.207 to before 4.20; 5.4.145 to before 5.5; 5.10.64 to before 5.11; 5.13.16 to before 5.14; 5.14.3 to before 5.15 | 4.5, 4.10, 4.15, 4.20, 5.5, 5.11, 5.14, 5.15 | Patch available | CNA |
| Linux | Linux | 5.15 and later | 6.6.160, 6.12.111, 6.18.53, 7.2.7, 7.3 | Patch available | CNA |
- Linux VendorLinux Affected 4.4.284 to before 4.5; 4.9.283 to before 4.10; 4.14.247 to before 4.15; 4.19.207 to before 4.20; 5.4.145 to before 5.5; 5.10.64 to before 5.11; 5.13.16 to before 5.14; 5.14.3 to before 5.15 Fixed in 4.5, 4.10, 4.15, 4.20, 5.5, 5.11, 5.14, 5.15 Patch available CNA
- Linux VendorLinux Affected 5.15 and later Fixed in 6.6.160, 6.12.111, 6.18.53, 7.2.7, 7.3 Patch available CNA
Remediation
- Fix · CNA Linux (Linux) Fixed in 4.5, 4.10, 4.15, 4.20, 5.5, 5.11, 5.14, 5.15
- Fix · CNA Linux (Linux) Fixed in 6.6.160, 6.12.111, 6.18.53, 7.2.7, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 6 | Affected | No fix planned: Out of support scope |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet: Fix deferred |
Not affected: 1 product
- Red Hat Enterprise Linux 7
Timeline
- 2026-10-02 Threatist record created from CVE-2026-98103
- 2026-10-03 Alias added: GHSA-2hrc-mwqg-6fr2
- 2026-10-19 Fix available: Linux/[email protected] · CNA
- 2026-10-21 Fix available: Linux/Linux@01131daffc4b64f1652e23dc3e6e2f601eda781d, Linux/[email protected] · CNA
- 2026-10-21 1 new reference · CNA
- 2026-11-06 Affected versions changed · Red Hat
References
Other 5
- https://git.kernel.org/stable/c/01131daffc4b64f1652e23dc3e6e2f601eda781d
- https://git.kernel.org/stable/c/f5182dfad54277267a8cb0c004a9cd4cf35aeebb
- https://git.kernel.org/stable/c/d3011d1f293478c730aa0870490afa145c37600e
- https://git.kernel.org/stable/c/e3206419bdb04e2087d8cc6be324df8639b3fac5
- https://git.kernel.org/stable/c/2987ee196c88dbde0463dc87d5fb209c684e34a2
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-98103 · CVE Program
- CVE-2026-98103 · NVD
- FIRST EPSS
- GHSA-2hrc-mwqg-6fr2 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-98103 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences