In the Linux kernel, the following vulnerability has been resolved:
comedi: Fail COMEDI_INSNLIST ioctl if n_insns is too large
The handling of the COMEDI_INSNLIST ioctl allocates a kernel buffer to
hold the array of struct comedi_insn, getting the length from the
n_insns member of the struct comedi_insnlist supplied by the user.
The allocation will fail with a WARNING and a stack dump if it is too
large.
Avoid that by failing with an -EINVAL error if the supplied n_insns
value is unreasonable.
Define the limit on the n_insns value in the MAX_INSNS macro. Set
this to the same value as MAX_SAMPLES (65536), which is the maximum
allowed sum of the values of the member n in the array of struct comedi_insn, and sensible comedi instructions will have an n of at
least 1.
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 2.6.29 | 5.4.297 |
| linux / linux_kernel | 5.5 | 5.10.241 |
| linux / linux_kernel | 5.11 | 5.15.190 |
| linux / linux_kernel | 5.16 | 6.1.147 |
| linux / linux_kernel | 6.2 | 6.6.100 |
| linux / linux_kernel | 6.7 | 6.12.40 |
| linux / linux_kernel | 6.13 | 6.15.8 |
| linux / linux_kernel | 6.16-rc1 | 6.16-rc1.x |
| linux / linux_kernel | 6.16-rc2 | 6.16-rc2.x |
| linux / linux_kernel | 6.16-rc3 | 6.16-rc3.x |
| linux / linux_kernel | 6.16-rc4 | 6.16-rc4.x |
| linux / linux_kernel | 6.16-rc5 | 6.16-rc5.x |
| linux / linux_kernel | 6.16-rc6 | 6.16-rc6.x |
| debian / debian_linux | 11.0 | 11.0.x |