{"id":"CVE-2025-38553","summary":"net/sched: Restrict conditions for adding duplicating netems to qdisc tree","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: Restrict conditions for adding duplicating netems to qdisc tree\n\nnetem_enqueue's duplication prevention logic breaks when a netem\nresides in a qdisc tree with other netems - this can lead to a\nsoft lockup and OOM loop in netem_dequeue, as seen in [1].\nEnsure that a duplicating netem cannot exist in a tree with other\nnetems.\n\nPrevious approaches suggested in discussions in chronological order:\n\n1) Track duplication status or ttl in the sk_buff struct. Considered\ntoo specific a use case to extend such a struct, though this would\nbe a resilient fix and address other previous and potential future\nDOS bugs like the one described in loopy fun [2].\n\n2) Restrict netem_enqueue recursion depth like in act_mirred with a\nper cpu variable. However, netem_dequeue can call enqueue on its\nchild, and the depth restriction could be bypassed if the child is a\nnetem.\n\n3) Use the same approach as in 2, but add metadata in netem_skb_cb\nto handle the netem_dequeue case and track a packet's involvement\nin duplication. This is an overly complex approach, and Jamal\nnotes that the skb cb can be overwritten to circumvent this\nsafeguard.\n\n4) Prevent the addition of a netem to a qdisc tree if its ancestral\npath contains a netem. However, filters and actions can cause a\npacket to change paths when re-enqueued to the root from netem\nduplication, leading us to the current solution: prevent a\nduplicating netem from inhabiting the same tree as other netems.\n\n[1] https://lore.kernel.org/netdev/8DuRWwfqjoRDLDmBMlIfbrsZg9Gx50DHJc1ilxsEBNe2D6NMoigR_eIRIG0LOjMc3r10nUUZtArXx4oZBIdUfZQrwjcQhdinnMis_0G7VEk=@willsroot.io/\n[2] https://lwn.net/Articles/719297/","modified":"2026-04-16T04:39:52.262923723Z","published":"2025-08-19T06:06:53.204Z","related":["SUSE-SU-2025:03272-1","SUSE-SU-2025:03290-1","SUSE-SU-2025:03301-1","SUSE-SU-2025:03382-1","SUSE-SU-2025:03602-1","SUSE-SU-2025:03613-1","SUSE-SU-2025:03614-1","SUSE-SU-2025:03615-1","SUSE-SU-2025:03626-1","SUSE-SU-2025:03628-1","SUSE-SU-2025:03633-1","SUSE-SU-2025:03634-1","SUSE-SU-2025:20653-1","SUSE-SU-2025:20669-1","SUSE-SU-2025:20739-1","SUSE-SU-2025:20756-1","SUSE-SU-2025:21074-1","SUSE-SU-2025:21139-1","SUSE-SU-2025:21179-1","SUSE-SU-2025:3716-1","SUSE-SU-2025:3761-1","openSUSE-SU-2025:20081-1"],"database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38553.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/09317dfb681ac5a96fc69bea0c54441cf91b8270"},{"type":"WEB","url":"https://git.kernel.org/stable/c/103c4e27ec9f5fe53022e46e976abf52c7221baf"},{"type":"WEB","url":"https://git.kernel.org/stable/c/250f8796006c0f2bc638ce545f601d49ae8d528b"},{"type":"WEB","url":"https://git.kernel.org/stable/c/325f5ec67cc0a77f2d0d453445b9857f1cd06c76"},{"type":"WEB","url":"https://git.kernel.org/stable/c/795cb393e38977aa991e70a9363da0ee734b2114"},{"type":"WEB","url":"https://git.kernel.org/stable/c/ad340a4b4adb855b18b3666f26ad65c8968e2deb"},{"type":"WEB","url":"https://git.kernel.org/stable/c/cab2809944989889f88a1a8b5cff1c78460c72cb"},{"type":"WEB","url":"https://git.kernel.org/stable/c/ec8e0e3d7adef940cdf9475e2352c0680189d14e"},{"type":"WEB","url":"https://git.kernel.org/stable/c/f088b6ebe8797a3f948d2cae47f34bfb45cc6522"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38553.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-38553"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"0afb51e72855971dba83b3c6b70c547c2d1161fd"},{"fixed":"ad340a4b4adb855b18b3666f26ad65c8968e2deb"},{"fixed":"f088b6ebe8797a3f948d2cae47f34bfb45cc6522"},{"fixed":"cab2809944989889f88a1a8b5cff1c78460c72cb"},{"fixed":"325f5ec67cc0a77f2d0d453445b9857f1cd06c76"},{"fixed":"103c4e27ec9f5fe53022e46e976abf52c7221baf"},{"fixed":"795cb393e38977aa991e70a9363da0ee734b2114"},{"fixed":"250f8796006c0f2bc638ce545f601d49ae8d528b"},{"fixed":"09317dfb681ac5a96fc69bea0c54441cf91b8270"},{"fixed":"ec8e0e3d7adef940cdf9475e2352c0680189d14e"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38553.json"}}],"schema_version":"1.7.5"}