In the Linux kernel, the following vulnerability has been resolved: comedi: das6402: Fix bit shift out of bounds When checking for a supported IRQ number, the following test is used: /* IRQs 2,3,5,6,7, 10,11,15 are valid for "enhanced" mode */ if ((1 << it->options[1]) & 0x8cec) { However, `it->options[i]` is an unchecked `int` value from userspace, so the shift amount could be negative or out of bounds. Fix the test by requiring `it->options[1]` to be within bounds before proceeding with the original test. Valid `it->options[1]` values that select the IRQ will be in the range [1,15]. The value 0 explicitly disables the use of interrupts.
https://git.kernel.org/stable/c/a18a42e77545afcacd6a2b8d9fc16191b87454df
https://git.kernel.org/stable/c/8a3637027ceeba4ca5e500b23cb7d24c25592513
https://git.kernel.org/stable/c/70f2b28b5243df557f51c054c20058ae207baaac
https://git.kernel.org/stable/c/4a3c18cde02e35aba87e0ad5672b3e1c72dda5a4
https://git.kernel.org/stable/c/3eab654f5d199ecd45403c6588cda63e491fcfca