In the Linux kernel, the following vulnerability has been resolved: comedi: das16m1: Fix bit shift out of bounds When checking for a supported IRQ number, the following test is used: /* only irqs 2, 3, 4, 5, 6, 7, 10, 11, 12, 14, and 15 are valid */ if ((1 << it->options[1]) & 0xdcfc) { 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.