Medium · published April 3, 2025
In the Linux kernel, the following vulnerability has been resolved:
ipv6: Fix memleak of nhc_pcpu_rth_output in fib_check_nh_v6_gw().
fib_check_nh_v6_gw() expects that fib6_nh_init() cleans up everything
when it fails.
Commit 7dd73168e273 ("ipv6: Always allocate pcpu memory in a fib6_nh")
moved fib_nh_common_init() before alloc_percpu_gfp() within fib6_nh_init()
but forgot to add cleanup for fib6_nh->nh_common.nhc_pcpu_rth_output in
case it fails to allocate fib6_nh->rt6i_pcpu, resulting in memleak.
Let's call fib_nh_common_release() and clear nhc_pcpu_rth_output in the
error path.
Note that we can remove the fib6_nh_release() call in nh_create_ipv6()
later in net-next.git.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.3, < 5.4.292 | 5.4.292 |
| linux/linux_kernel | ≥ 5.5, < 5.10.236 | 5.10.236 |
| linux/linux_kernel | ≥ 5.16, < 6.1.132 | 6.1.132 |
| linux/linux_kernel | ≥ 6.2, < 6.6.85 | 6.6.85 |
| linux/linux_kernel | ≥ 6.7, < 6.12.21 | 6.12.21 |
| linux/linux_kernel | ≥ 6.13, < 6.13.9 | 6.13.9 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |