From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 307EE499F23 for ; Fri, 25 Sep 2026 10:40:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790332830; cv=none; b=o5orL5ZO3J0aCeiAkSY0g3vlNn9JzfTRE9esNK2tu64wltMulsugozjb0PWRHRXxrAcolqdFf/UuhJX3Mkz/yV0GTS40RmQgmUjEP/jbGyCyT6DPdr3bAfJzT0v93lNSg0E0CHZmlaoPS8kgFpOtF1EUuecmcyHDjbmq/dMaMd8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790332830; c=relaxed/simple; bh=ZG4lv9d5ByZeEI7RxfHbKCvulQsNdNt0akaJOYfuRbo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=gTT4TGcl15yObrvku2VMpvolLdqc9+6PGRNN3h1GxgaKimICewMSMYJztaOdi8CAfACYvs/S2gzaSK+dMqmsp3CmH18757MeSPtaLbBm8gGHKI0fyZQY7OCg5PFNndH62ISSAxjxs0xz7xFbkE4TCjPFi16toqblCpMyphneS8Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=1TcxkiLz; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="1TcxkiLz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86C0E1F000FF; Fri, 25 Sep 2026 10:40:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1790332829; bh=3uy66Knjd5/k4DWlmaVCWVYcnkoHCbG5FhY8F77qmuE=; h=From:To:Cc:Subject:Date:Reply-To; b=1TcxkiLz7EtA6DxRofg4BixET3UfZxwf7JrNH24pPq4ejji6pfU71rGSQkV6UhrYE JMWNeF/O5bahlVJAeHBCkdRcslvMOnPPpJMJRs2Plg0BHmNY5wm3r1QRM1HRjz45Lr 1K/F67dqJ+bIfHDjZ7oP6+25y5Knvb27XHXaKYDg= From: Greg Kroah-Hartman To: linux-cve-announce@vger.kernel.org Cc: Greg Kroah-Hartman Subject: CVE-2026-98103: igmp: convert struct ip_sf_list to RCU Date: Fri, 25 Sep 2026 12:39:10 +0200 Message-ID: <2026092510-CVE-2026-98103-e4c1@gregkh> X-Mailer: git-send-email 2.55.0 Reply-To: , Precedence: bulk X-Mailing-List: linux-cve-announce@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4301; i=gregkh@linuxfoundation.org; h=from:subject:message-id; bh=3RWQ/hArZl9tNBklMi4mhsUxcDsM3/+EWYDmyHAMLqY=; b=owGbwMvMwCRo6H6F97bub03G02pJDFnb/P1EWZk/r/bIsNm9NjrT2uXg7s0mCRkl668+v3y4z //64+2OHbEsDIJMDLJiiixftvEc3V9xSNHL0PY0zBxWJpAhDFycAjCRrX4MC24ari3+X1xd6bZi V9aHuzvs5/HP9WaYZxtwb8vsPA+NSNenx0PCbuzIFQn1BgA= X-Developer-Key: i=gregkh@linuxfoundation.org; a=openpgp; fpr=F4B60CC5BF78C2214A313DCB3147D40DDB2DFB29 Content-Transfer-Encoding: 8bit From: Greg Kroah-Hartman Description =========== 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. The Linux kernel CVE team has assigned CVE-2026-98103 to this issue. Affected and fixed versions =========================== Issue introduced in 5.15 with commit 23d2b94043ca8835bd1e67749020e839f396a1c2 and fixed in 6.12.111 with commit f5182dfad54277267a8cb0c004a9cd4cf35aeebb Issue introduced in 5.15 with commit 23d2b94043ca8835bd1e67749020e839f396a1c2 and fixed in 6.18.53 with commit d3011d1f293478c730aa0870490afa145c37600e Issue introduced in 5.15 with commit 23d2b94043ca8835bd1e67749020e839f396a1c2 and fixed in 7.2.7 with commit e3206419bdb04e2087d8cc6be324df8639b3fac5 Issue introduced in 5.15 with commit 23d2b94043ca8835bd1e67749020e839f396a1c2 and fixed in 7.3-rc2 with commit 2987ee196c88dbde0463dc87d5fb209c684e34a2 Issue introduced in 4.4.284 with commit b24065948ae6c48c9e20891f8cfe9850f1d748be Issue introduced in 4.9.283 with commit e9924c4204ede999b0515fd31a370a1e27f676bc Issue introduced in 4.14.247 with commit 78967749984cf3614de346c90f3e259ff8272735 Issue introduced in 4.19.207 with commit 4768973dffed4d0126854514335ed4fe87bec1ab Issue introduced in 5.4.145 with commit d84708451d9041dff8a81e3718f821f12d2eb6c5 Issue introduced in 5.10.64 with commit ddd7e8b7b84836c584a284b98ca9bd7a348a0558 Issue introduced in 5.13.16 with commit 961447ff60291b91e27d5c32fa549c1411ad3b70 Issue introduced in 5.14.3 with commit d1a3c6d5925a8d00a32c5ef2d674dd9c0ce89c95 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-98103 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: include/linux/igmp.h net/ipv4/igmp.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: 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