CVE-2024-45016
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
11/09/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
netem: fix return value if duplicate enqueue fails<br />
<br />
There is a bug in netem_enqueue() introduced by<br />
commit 5845f706388a ("net: netem: fix skb length BUG_ON in __skb_to_sgvec")<br />
that can lead to a use-after-free.<br />
<br />
This commit made netem_enqueue() always return NET_XMIT_SUCCESS<br />
when a packet is duplicated, which can cause the parent qdisc&#39;s q.qlen<br />
to be mistakenly incremented. When this happens qlen_notify() may be<br />
skipped on the parent during destruction, leaving a dangling pointer<br />
for some classful qdiscs like DRR.<br />
<br />
There are two ways for the bug happen:<br />
<br />
- If the duplicated packet is dropped by rootq->enqueue() and then<br />
the original packet is also dropped.<br />
- If rootq->enqueue() sends the duplicated packet to a different qdisc<br />
and the original packet is dropped.<br />
<br />
In both cases NET_XMIT_SUCCESS is returned even though no packets<br />
are enqueued at the netem qdisc.<br />
<br />
The fix is to defer the enqueue of the duplicate packet until after<br />
the original packet has been guaranteed to return NET_XMIT_SUCCESS.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.0 (including) | 5.4.283 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.225 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.166 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.107 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.48 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.7 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/0486d31dd8198e22b63a4730244b38fffce6d469
- https://git.kernel.org/stable/c/52d99a69f3d556c6426048c9d481b912205919d8
- https://git.kernel.org/stable/c/577d6c0619467fe90f7e8e57e45cb5bd9d936014
- https://git.kernel.org/stable/c/759e3e8c4a6a6b4e52ebc4547123a457f0ce90d4
- https://git.kernel.org/stable/c/c07ff8592d57ed258afee5a5e04991a48dbaf382
- https://git.kernel.org/stable/c/c414000da1c2ea1ba9a5e5bb1a4ba774e51e202d
- https://git.kernel.org/stable/c/e5bb2988a310667abed66c7d3ffa28880cf0f883
- https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



