In the Linux kernel, the following vulnerability has been resolved: spi: bcm2835: Fix out-of-bounds access with more than 4 slaves Commit 571e31fa60b3 ("spi: bcm2835: Cache CS register value for ->preparemessage()") limited the number of slaves to 3 at compile-time. The limitation was necessitated by a statically-sized array preparecs[] in the driver private data which contains a per-slave register value. The commit sought to enforce the limitation at run-time by setting the controller's numchipselect to 3: Slaves with a higher chipselect are rejected by spiadddevice(). However the commit neglected that numchipselect only limits the number of native chipselects. If GPIO chipselects are specified in the device tree for more than 3 slaves, numchipselect is silently raised by ofspigetgpionumbers() and the result are out-of-bounds accesses to the statically-sized array preparecs[]. As a bandaid fix which is backportable to stable, raise the number of allowed slaves to 24 (which "ought to be enough for anybody"), enforce the limitation on slave ->setup and revert num_chipselect to 3 (which is the number of native chipselects supported by the controller). An upcoming for-next commit will allow an arbitrary number of slaves.