In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_fq: fix integer overflow of "credit"
if sch_fq is configured with "initial quantum" having values greater than INT_MAX, the first assignment of "credit" does signed integer overflow to a very negative value. In this situation, the syzkaller script provided by Cristoph triggers the CPU soft-lockup warning even with few sockets. It's not an infinite loop, but "credit" wasn't probably meant to be minus 2Gb for each new flow. Capping "initial quantum" to INT_MAX proved to fix the issue.
v2: validation of "initial quantum" is done in fq_policy, instead of open coding in fq_change() _ suggested by Jakub Kicinski
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 3.12 | 5.10.180 |
| linux / linux_kernel | 5.11 | 5.15.111 |
| linux / linux_kernel | 5.16 | 6.1.28 |
| linux / linux_kernel | 6.2 | 6.2.15 |
| linux / linux_kernel | 6.3 | 6.3.2 |