net/sched: fix packet loop on netem when duplicate is on
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.93, 6.18.57, 7.0.12
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: net/sched: fix packet loop on netem when duplicate is on When netem duplicates a packet it re-enqueues the copy at the root qdisc. If another netem sits in the tree the copy can be duplicated again, recursing until the stack or memory is exhausted. The original duplication guard temporarily zeroed q->duplicate around the re-enqueue, but that does not cover all cases because it is per-qdisc state shared across all concurrent enqueue paths and is not safe without additional locking. Use the skb tc_depth field introduced in an earlier patch: • increment it on the duplicate before re-enqueue • skip duplication for any skb whose tc_depth is already non-zero. This marks the packet itself rather than mutating qdisc state, therefore it is safe regardless of tree topology or concurrency.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 0afb51e72855971dba83b3c6b70c547c2d1161fd · fixed in 1a298a514ce766c6d0c232991a390fec67af81ad; From 0afb51e72855971dba83b3c6b70c547c2d1161fd · fixed in 4ec3a8ca97394f17e73a4d8d4c79c1c78b322772; From 0afb51e72855971dba83b3c6b70c547c2d1161fd · fixed in cfb2616042767ab31260d4f39190c381bec8b12e; From 0afb51e72855971dba83b3c6b70c547c2d1161fd · fixed in 9552b11e3edabc97cfcd9f29103d5afbce7ae183
- Linux Linux
2.6.12
- KernelLinux
From 2.6.12 · fixed in 6.12.93; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.0.12