Skip to main content
← All vulnerabilities
CVE-2026-72321

ipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and igmp_stop_timer()

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.6.160, 6.12.114, 6.18.40, 7.1.5
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: ipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and igmp_stop_timer() When a timer is deleted and not re-armed in igmp_mod_timer(), or stopped in igmp_stop_timer(), the code currently decrements the reference counter of the multicast list entry @im using refcount_dec(&im->refcnt). However, both functions can be called from the RCU reader path: • igmp_mod_timer() via igmp_heard_query() -> for_each_pmc_rcu() • igmp_stop_timer() via igmp_rcv() -> igmp_heard_report() If the group im was concurrently removed from the list by ip_mc_dec_group(), its reference count might have already been decremented to 1. In this case, timer_delete() succeeds, and refcount_dec() decrements the refcount from 1 to 0. Since refcount_dec() does not free the object when it hits 0 (unlike ip_ma_put()), the im structure is leaked. Fix this by using ip_ma_put(im) instead of refcount_dec(&im->refcnt), and deferring the put until after the spinlock is released.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    Version range not reported

  • Linux Linux

    2.6.12

  • KernelLinux

    From 2.6.12 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5

References 6

git.kernel.org