In the Linux kernel, the following vulnerability has been resolved:
net_sched: hfsc: Fix a UAF vulnerability in class with netem as child qdisc
As described in Gerrard's report [1], we have a UAF case when an hfsc class has a netem child qdisc. The crux of the issue is that hfsc is assuming that checking for cl->qdisc->q.qlen == 0 guarantees that it hasn't inserted the class in the vttree or eltree (which is not true for the netem duplicate case).
This patch checks the n_active class variable to make sure that the code won't insert the class in the vttree or eltree twice, catering 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 |