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
->prepare_message()") limited the number of slaves to 3 at compile-time.
The limitation was necessitated by a statically-sized array prepare_cs[]
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 num_chipselect to 3: Slaves with a higher chipselect are
rejected by spi_add_device().
However the commit neglected that num_chipselect only limits the number
of *native* chipselects. If GPIO chipselects are specified in the
device tree for more than 3 slaves, num_chipselect is silently raised by
of_spi_get_gpio_numbers() and the result are out-of-bounds accesses to
the statically-sized array prepare_cs[].
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.
References
Configurations
Configuration 1 (hide)
|
History
30 Apr 2025, 14:30
Type | Values Removed | Values Added |
---|---|---|
CVSS |
v2 : v3 : |
v2 : unknown
v3 : 7.8 |
CWE | CWE-787 | |
First Time |
Linux linux Kernel
Linux |
|
References | () https://git.kernel.org/stable/c/01415ff85a24308059e06ca3e97fd7bf75648690 - Patch | |
References | () https://git.kernel.org/stable/c/13817d466eb8713a1ffd254f537402f091d48444 - Patch | |
References | () https://git.kernel.org/stable/c/82a8ffba54d31e97582051cb56ba1f988018681e - Patch | |
References | () https://git.kernel.org/stable/c/b5502580cf958b094f3b69dfe4eece90eae01fbc - Patch | |
CPE | cpe:2.3:o:linux:linux_kernel:5.13:rc3:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:5.13:rc2:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:5.13:rc5:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:5.13:rc1:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:5.13:rc4:*:*:*:*:*:* |
21 Nov 2024, 06:35
Type | Values Removed | Values Added |
---|---|---|
References | () https://git.kernel.org/stable/c/01415ff85a24308059e06ca3e97fd7bf75648690 - | |
References | () https://git.kernel.org/stable/c/13817d466eb8713a1ffd254f537402f091d48444 - | |
References | () https://git.kernel.org/stable/c/82a8ffba54d31e97582051cb56ba1f988018681e - | |
References | () https://git.kernel.org/stable/c/b5502580cf958b094f3b69dfe4eece90eae01fbc - | |
Summary |
|
21 May 2024, 15:15
Type | Values Removed | Values Added |
---|---|---|
New CVE |
Information
Published : 2024-05-21 15:15
Updated : 2025-04-30 14:30
NVD link : CVE-2021-47282
Mitre link : CVE-2021-47282
CVE.ORG link : CVE-2021-47282
JSON object : View
Products Affected
linux
- linux_kernel
CWE
CWE-787
Out-of-bounds Write