In the Linux kernel, the following vulnerability has been resolved:
net_sched: qfq: Fix double list add in class with netem as child qdisc
As described in Gerrard's report [1], there are use cases where a netem child qdisc will make the parent qdisc's enqueue callback reentrant. In the case of qfq, there won't be a UAF, but the code will add the same classifier to the list twice, which will cause memory corruption.
This patch checks whether the class was already added to the agg->active list (cl_is_active) before doing the addition to cater for the reentrant case.
[1] https://lore.kernel.org/netdev/CAHcdcOm+03OD2j6R0=YHKqmy=VgJ8xEOKuP6c7mSgnp-TEJJbw@mail.gmail.com/
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 5.0.1 | 5.4.294 |
| linux / linux_kernel | 5.5 | 5.10.238 |
| linux / linux_kernel | 5.11 | 5.15.182 |
| linux / linux_kernel | 5.16 | 6.1.138 |
| linux / linux_kernel | 6.2 | 6.6.90 |
| linux / linux_kernel | 6.7 | 6.12.28 |
| linux / linux_kernel | 6.13 | 6.14.6 |
| linux / linux_kernel | 5.0 | 5.0.x |
| linux / linux_kernel | 5.0-rc3 | 5.0-rc3.x |
| linux / linux_kernel | 5.0-rc4 | 5.0-rc4.x |
| linux / linux_kernel | 5.0-rc5 | 5.0-rc5.x |
| linux / linux_kernel | 5.0-rc6 | 5.0-rc6.x |
| linux / linux_kernel | 5.0-rc7 | 5.0-rc7.x |
| linux / linux_kernel | 5.0-rc8 | 5.0-rc8.x |
| linux / linux_kernel | 6.15-rc1 | 6.15-rc1.x |
| linux / linux_kernel | 6.15-rc2 | 6.15-rc2.x |
| linux / linux_kernel | 6.15-rc3 | 6.15-rc3.x |
| linux / linux_kernel | 6.15-rc4 | 6.15-rc4.x |
| debian / debian_linux | 11.0 | 11.0.x |