In the Linux kernel, the following vulnerability has been resolved:
sch/netem: fix use after free in netem_dequeue
If netem_dequeue() enqueues packet to inner qdisc and that qdisc
returns __NET_XMIT_STOLEN. The packet is dropped but
qdisc_tree_reduce_backlog() is not called to update the parent’s
q.qlen, leading to the similar use-after-free as Commit
e04991a48dbaf382 (“netem: fix return value if duplicate enqueue
fails”)
Commands to trigger KASAN UaF:
ip link add type dummy
ip link set lo up
ip link set dummy0 up
tc qdisc add dev lo parent root handle 1: drr
tc filter add dev lo parent 1: basic classid 1:1
tc class add dev lo classid 1:1 drr
tc qdisc add dev lo parent 1:1 handle 2: netem
tc qdisc add dev lo parent 2: handle 3: drr
tc filter add dev lo parent 3: basic classid 3:1 action mirred egress
redirect dev dummy0
tc class add dev lo classid 3:1 drr
ping -c1 -W0.01 localhost # Trigger bug
tc class del dev lo classid 1:1
tc class add dev lo classid 1:1 drr
ping -c1 -W0.01 localhost # UaF
[
{
"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": "50612537e9ab",
"lessThan": "f0bddb4de043",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "295ad5afd9ef",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "98c75d761879",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "14f91ab8d391",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "db2c23568291",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "dde33a9d0b80",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "32008ab989dd",
"status": "affected",
"versionType": "git"
},
{
"version": "50612537e9ab",
"lessThan": "3b3a2a9c6349",
"status": "affected",
"versionType": "git"
}
]
},
{
"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": "3.3",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.3",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.322",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.284",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.226",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.167",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.110",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.51",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.10.10",
"lessThanOrEqual": "6.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.11",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/14f91ab8d391f249b845916820a56f42cf747241
git.kernel.org/stable/c/295ad5afd9efc5f67b86c64fce28fb94e26dc4c9
git.kernel.org/stable/c/32008ab989ddcff1a485fa2b4906234c25dc5cd6
git.kernel.org/stable/c/3b3a2a9c6349e25a025d2330f479bc33a6ccb54a
git.kernel.org/stable/c/98c75d76187944296068d685dfd8a1e9fd8c4fdc
git.kernel.org/stable/c/db2c235682913a63054e741fe4e19645fdf2d68e
git.kernel.org/stable/c/dde33a9d0b80aae0c69594d1f462515d7ff1cb3d
git.kernel.org/stable/c/f0bddb4de043399f16d1969dad5ee5b984a64e7b