---
id: CVE-2026-72321
title: >-
  ipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and
  igmp_stop_timer()
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_…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    2d0effadf8d2cc9d006e4c4ab0ab6737aed28d77
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    40d6360ccf9bcbe17b5cb248a84e8e004aac2faa
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    f60ec3058a85447008b88b762c859d336163acb3
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    95128dc74425ec19ed4f2077ccc651e791ff4b75
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    3546deaa0c30a14c7cdb5dc8f2432cb428f0cd36
  - Linux 2.6.12
published: '2026-08-15'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:44:32.954Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-72321'
references:
  - url: 'https://git.kernel.org/stable/c/2d0effadf8d2cc9d006e4c4ab0ab6737aed28d77'
  - url: 'https://git.kernel.org/stable/c/40d6360ccf9bcbe17b5cb248a84e8e004aac2faa'
  - url: 'https://git.kernel.org/stable/c/f60ec3058a85447008b88b762c859d336163acb3'
  - url: 'https://git.kernel.org/stable/c/95128dc74425ec19ed4f2077ccc651e791ff4b75'
  - url: 'https://git.kernel.org/stable/c/3546deaa0c30a14c7cdb5dc8f2432cb428f0cd36'
tags:
  - cve.org
epss: 0.00207
epssPercentile: 0.10167
ingestedAt: '2026-10-21T12:48:53.593Z'
---

## Overview

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.

## Affected

- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 2d0effadf8d2cc9d006e4c4ab0ab6737aed28d77`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 40d6360ccf9bcbe17b5cb248a84e8e004aac2faa`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f60ec3058a85447008b88b762c859d336163acb3`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 95128dc74425ec19ed4f2077ccc651e791ff4b75`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 3546deaa0c30a14c7cdb5dc8f2432cb428f0cd36`
- `Linux 2.6.12`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
