{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-45016",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-08-21T05:34:56.682Z",
        "datePublished": "2024-09-11T15:13:52.053Z",
        "dateUpdated": "2026-08-05T11:37:41.654Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:37:41.654Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetem: fix return value if duplicate enqueue fails\n\nThere is a bug in netem_enqueue() introduced by\ncommit 5845f706388a (\"net: netem: fix skb length BUG_ON in __skb_to_sgvec\")\nthat can lead to a use-after-free.\n\nThis commit made netem_enqueue() always return NET_XMIT_SUCCESS\nwhen a packet is duplicated, which can cause the parent qdisc's q.qlen\nto be mistakenly incremented. When this happens qlen_notify() may be\nskipped on the parent during destruction, leaving a dangling pointer\nfor some classful qdiscs like DRR.\n\nThere are two ways for the bug happen:\n\n- If the duplicated packet is dropped by rootq->enqueue() and then\n  the original packet is also dropped.\n- If rootq->enqueue() sends the duplicated packet to a different qdisc\n  and the original packet is dropped.\n\nIn both cases NET_XMIT_SUCCESS is returned even though no packets\nare enqueued at the netem qdisc.\n\nThe fix is to defer the enqueue of the duplicate packet until after\nthe original packet has been guaranteed to return NET_XMIT_SUCCESS."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 7.8,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The vulnerability is reached by configuring a DRR/netem qdisc hierarchy via rtnetlink (RTM_NEWQDISC/RTM_NEWTCLASS) and locally transmitting packets through it. This requires local system access, matching the tc/netlink qdisc guidance.\nAC:L - The attacker fully controls both trigger conditions — netem's `duplicate` probability (settable to 100%) and its `limit` — so the bogus NET_XMIT_SUCCESS is produced deterministically on every enqueue, with no race to win and no reliance on state outside the attacker's control.\nPR:L - Qdisc and class configuration requires CAP_NET_ADMIN, but the check is `netlink_net_capable()` against the netns owner user_ns, so any unprivileged user obtains it inside `unshare -Urn` along with a dummy/veth device to attach the qdiscs to.\nUI:N - The attacker performs every step — qdisc setup, packet transmission, class deletion, and the subsequent dequeue that touches freed memory — with no victim action required.\nS:U - The corruption occurs in kernel heap memory within the same host security authority; there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - The freed `struct drr_class` remains linked in `q->active` and is dereferenced on dequeue (`cl->qdisc->ops->peek`, `cl->deficit`), so reclaiming the slab object lets the attacker read arbitrary kernel memory through the attacker-controlled `cl->qdisc` pointer.\nI:H - The use-after-free yields a write primitive via `list_del`/`list_move_tail` into the freed object and a controlled function-pointer call through `cl->qdisc->ops->peek`, which is sufficient for control-flow hijack and privilege escalation.\nA:H - Even without successful exploitation the dangling `drr_class` pointer causes an oops/panic on the next dequeue, and the desynchronized parent q.qlen corrupts scheduler state, reliably crashing the kernel."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "net/sched/sch_netem.c"
                    ],
                    "versions": [
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "759e3e8c4a6a6b4e52ebc4547123a457f0ce90d4",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "c414000da1c2ea1ba9a5e5bb1a4ba774e51e202d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "52d99a69f3d556c6426048c9d481b912205919d8",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "0486d31dd8198e22b63a4730244b38fffce6d469",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "577d6c0619467fe90f7e8e57e45cb5bd9d936014",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "e5bb2988a310667abed66c7d3ffa28880cf0f883",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5845f706388a4cde0f6b80f9e5d33527e942b7d9",
                            "lessThan": "c07ff8592d57ed258afee5a5e04991a48dbaf382",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "a550a01b8af856f2684b0f79d552f5119eb5006c",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "009510a90e230bb495f3fe25c7db956679263b07",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "4de7d30668cb8b06330992e1cd336f91700a2ce7",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d1dd2e15c85e890a1cc9bde5ba07ae63331e5c73",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "0148fe458b5705e2fea7cb88294fed7e36066ca2",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "3.16.66",
                            "lessThan": "3.17",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.9.163",
                            "lessThan": "4.10",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.14.106",
                            "lessThan": "4.15",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.19.28",
                            "lessThan": "4.20",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.20.15",
                            "lessThan": "4.21",
                            "status": "affected",
                            "versionType": "semver"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "net/sched/sch_netem.c"
                    ],
                    "versions": [
                        {
                            "version": "5.0",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "5.0",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.4.283",
                            "lessThanOrEqual": "5.4.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.225",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.166",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.107",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.48",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.10.7",
                            "lessThanOrEqual": "6.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.11",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "5.4.283"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "5.10.225"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "5.15.166"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.1.107"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.6.48"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.10.7"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.11"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "3.16.66"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.9.163"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.14.106"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.19.28"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.20.15"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/759e3e8c4a6a6b4e52ebc4547123a457f0ce90d4"
                },
                {
                    "url": "https://git.kernel.org/stable/c/c414000da1c2ea1ba9a5e5bb1a4ba774e51e202d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/52d99a69f3d556c6426048c9d481b912205919d8"
                },
                {
                    "url": "https://git.kernel.org/stable/c/0486d31dd8198e22b63a4730244b38fffce6d469"
                },
                {
                    "url": "https://git.kernel.org/stable/c/577d6c0619467fe90f7e8e57e45cb5bd9d936014"
                },
                {
                    "url": "https://git.kernel.org/stable/c/e5bb2988a310667abed66c7d3ffa28880cf0f883"
                },
                {
                    "url": "https://git.kernel.org/stable/c/c07ff8592d57ed258afee5a5e04991a48dbaf382"
                }
            ],
            "title": "netem: fix return value if duplicate enqueue fails",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "timestamp": "2024-09-29T15:49:19.675501Z",
                                "id": "CVE-2024-45016",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "role": "CISA Coordinator",
                                "version": "2.0.3"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-09-29T15:49:33.932Z"
                }
            },
            {
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"
                    },
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html"
                    }
                ],
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2025-11-03T22:15:21.244Z"
                }
            },
            {
                "x_adpType": "supplier",
                "providerMetadata": {
                    "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
                    "shortName": "siemens-SADP",
                    "dateUpdated": "2026-05-12T11:57:29.260Z"
                },
                "affected": [
                    {
                        "vendor": "Siemens",
                        "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    }
                ],
                "references": [
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
                    }
                ]
            }
        ]
    }
}