Description
In the Linux kernel, the following vulnerability has been resolved:

ipv6: mcast: use copy-on-write RCU updates in ip6_mc_source()

pmc->sflist is read locklessly under rcu_read_lock() by
inet6_mc_check() during packet reception in the UDP and RAW
multicast receive paths.

ip6_mc_source() mutated psl->sl_addr and psl->sl_count in-place
when adding or removing a source filter. Additionally, when expanding
the filter buffer, newpsl was published via rcu_assign_pointer()
before writing the new source into the array.

Because 16-byte struct in6_addr writes are not atomic and array
shifting is not synchronized with RCU readers, concurrent readers in
inet6_mc_check() could read torn IPv6 addresses or observe
duplicated/missed source entries.

Fix this by switching ip6_mc_source() to copy-on-write RCU updates:
allocate and fully populate newpsl before publishing it via
rcu_assign_pointer(), and reclaim the old filter via kfree_rcu(),
matching ip6_mc_msfilter().

Also remove the now unused IP6_SFBLOCK macro.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Potential information disclosure or denial of service via corrupted IPv6 multicast source filtering
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s IPv6 multicast source filtering routine mutates the source filter list in place while other threads may be reading that list under an RCU read lock. Because 16‑byte IPv6 address writes are not atomic and the array is shifted without synchronization, concurrent readers can observe torn or duplicated address entries. An attacker could generate multicast traffic that triggers these race conditions and cause the kernel to misinterpret source addresses or crash the networking stack, potentially exposing internal IPv6 addresses or disrupting multicast service.

Affected Systems

The vulnerability exists in all Linux kernel builds containing the unpatched ip6_mc_source() implementation. Affected vendors include the Linux kernel maintainers; affected versions are those released before the commit that introduced copy‑on‑write RCU updates (e.g., the snapshot before commit 20db91a052332ef5). No specific patch level is listed, so kernels up to the corresponding release are impacted.

Risk and Exploitability

The CVSS score is not available and the EPSS score is not reported, indicating no known wide‑scale exploitation. The vulnerability requires simultaneous read/write activity on multicast source filters, which is not trivial to orchestrate from an external entity. Because it is a race condition that leads to corrupted data rather than immediate code execution, the risk is assessed as low to moderate. The vulnerability is not listed in the CISA KEV catalog, and no public exploits have been reported.

Generated by OpenCVE AI on September 25, 2026 at 11:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the copy‑on‑write RCU patch (commits 20db91a05 or later).
  • If a kernel update is not immediately possible, consider disabling IPv6 multicast on critical interfaces or applying network filtering rules to block multicast traffic from untrusted sources.
  • Monitor system logs for RCU warnings, crashes, or abnormal multicast behavior that may indicate exploitation attempts.

Generated by OpenCVE AI on September 25, 2026 at 11:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Fri, 25 Sep 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: use copy-on-write RCU updates in ip6_mc_source() pmc->sflist is read locklessly under rcu_read_lock() by inet6_mc_check() during packet reception in the UDP and RAW multicast receive paths. ip6_mc_source() mutated psl->sl_addr and psl->sl_count in-place when adding or removing a source filter. Additionally, when expanding the filter buffer, newpsl was published via rcu_assign_pointer() before writing the new source into the array. Because 16-byte struct in6_addr writes are not atomic and array shifting is not synchronized with RCU readers, concurrent readers in inet6_mc_check() could read torn IPv6 addresses or observe duplicated/missed source entries. Fix this by switching ip6_mc_source() to copy-on-write RCU updates: allocate and fully populate newpsl before publishing it via rcu_assign_pointer(), and reclaim the old filter via kfree_rcu(), matching ip6_mc_msfilter(). Also remove the now unused IP6_SFBLOCK macro.
Title ipv6: mcast: use copy-on-write RCU updates in ip6_mc_source()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:35:52.731Z

Reserved: 2026-09-25T10:25:14.315Z

Link: CVE-2026-98101

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:39.830

Modified: 2026-09-25T11:17:39.830

Link: CVE-2026-98101

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T13:45:18Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')