cbcvebase.
CVE-2024-56644
published 2024-12-27

CVE-2024-56644: In the Linux kernel, the following vulnerability has been resolved: net/ipv6: release expired exception dst cached in socket Dst objects get leaked in…

PriorityP420medium5.5CVSS 3.1
AVLACLPRLUINSUCNINAH
EPSS
0.24%
14.7th percentile
In the Linux kernel, the following vulnerability has been resolved:

net/ipv6: release expired exception dst cached in socket

Dst objects get leaked in ip6_negative_advice() when this function is
executed for an expired IPv6 route located in the exception table. There
are several conditions that must be fulfilled for the leak to occur:
* an ICMPv6 packet indicating a change of the MTU for the path is received,
resulting in an exception dst being created
* a TCP connection that uses the exception dst for routing packets must
start timing out so that TCP begins retransmissions
* after the exception dst expires, the FIB6 garbage collector must not run
before TCP executes ip6_negative_advice() for the expired exception dst

When TCP executes ip6_negative_advice() for an exception dst that has
expired and if no other socket holds a reference to the exception dst, the
refcount of the exception dst is 2, which corresponds to the increment
made by dst_init() and the increment made by the TCP socket for which the
connection is timing out. The refcount made by the socket is never
released. The refcount of the dst is decremented in sk_dst_reset() but
that decrement is counteracted by a dst_hold() intentionally placed just
before the sk_dst_reset() in ip6_negative_advice(). After
ip6_negative_advice() has finished, there is no other object tied to the
dst. The socket lost its reference stored in sk_dst_cache and the dst is
no longer in the exception table. The exception dst becomes a leaked
object.

As a result of this dst leak, an unbalanced refcount is reported for the
loopback device of a net namespace being destroyed under kernels that do
not contain e5f80fcf869a ("ipv6: give an IPv6 dev to blackhole_netdev"):
unregister_netdevice: waiting for lo to become free. Usage count = 2

Fix the dst leak by removing the dst_hold() in ip6_negative_advice(). The
patch that introduced the dst_hold() in ip6_negative_advice() was
92f1655aa2b22 ("net: fix __dst_negative_advice() race"). 

Affected

34 ranges· showing 25
VendorProductVersion rangeFixed in
debiandebian_linux
debianlinux< linux 6.1.123-1 (bookworm)linux 6.1.123-1 (bookworm)
debianlinux-6.1< linux 6.1.123-1 (bookworm)linux 6.1.123-1 (bookworm)
linuxlinux
linuxlinux
linuxlinux>= 2.6.33.2 < 2.6.342.6.34
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < a95808252e8acc0123bacd2dff8b9af10bc145b7a95808252e8acc0123bacd2dff8b9af10bc145b7
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < b90d061345bb8cd51fece561a800bae1c95448a6b90d061345bb8cd51fece561a800bae1c95448a6
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < 0b8903e6c881f72c6849d4952de742c656eb5ab90b8903e6c881f72c6849d4952de742c656eb5ab9
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < 535add1e9f274502209cb997801208bbe1ae6c6f535add1e9f274502209cb997801208bbe1ae6c6f
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < f43d12fd0fa8ee5b9caf8a3927e10d06431764d2f43d12fd0fa8ee5b9caf8a3927e10d06431764d2
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < 8b591bd522b71c42a82898290e35d32b482047e48b591bd522b71c42a82898290e35d32b482047e4
linuxlinux>= 54c1a859efd9fd6cda05bc700315ba2519c14eba < 3301ab7d5aeb0fe270f73a3d4810c9d1b6a9f0453301ab7d5aeb0fe270f73a3d4810c9d1b6a9f045
linuxlinux_kernel
linuxlinux_kernel
linuxlinux_kernel
linuxlinux_kernel
linuxlinux_kernel
linuxlinux_kernel
linuxlinux_kernel
linuxlinux_kernel>= 0 < 5.10.234-15.10.234-1
linuxlinux_kernel>= 0 < 6.1.123-16.1.123-1
linuxlinux_kernel>= 0 < 6.12.5-16.12.5-1
linuxlinux_kernel>= 0 < 6.12.5-16.12.5-1
linuxlinux_kernel>= 0 < 5.4.0-211.2315.4.0-211.231

CVSS provenance

nvdv3.15.5MEDIUMCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
osv8.8HIGH
vendor_ubuntu8.8HIGH
vendor_debian5.5MEDIUM
vendor_redhat5.5MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.