CVE-2021-47282 in Linuxinformazioni

Riassunto

di VulDB • 24/06/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

spi: bcm2835: Corretto l'accesso fuori dai limiti con più di 4 slave

Il commit 571e31fa60b3 ("spi: bcm2835: Cache CS register value for ->prepare_message()") ha limitato il numero di slave a 3 in fase di compilazione. Tale limitazione era necessaria a causa dell'array prepare_cs[] dalle dimensioni statiche presente nei dati privati del driver, che contiene un valore per registro per ogni slave.

Il commit mirava ad applicare la limitazione anche in fase di esecuzione impostando num_chipselect del controller su 3: gli slave con un chipselect superiore vengono rifiutati da spi_add_device().

Tuttavia, il commit ha trascurato il fatto che num_chipselect limita solo il numero di *native* chipselect. Se i GPIO chipselect sono specificati nel device tree per più di 3 slave, num_chipselect viene aumentato silenziosamente da of_spi_get_gpio_numbers() e ciò provoca accessi fuori dai limiti all'array prepare_cs[] dalle dimensioni statiche.

Come soluzione temporanea (bandaid fix) che può essere riportata alle versioni stabili (backportable to stable), è stato elevato il numero di slave consentiti a 24 ("dovrebbe bastare per tutti"), applicando la limitazione durante ->setup dello slave e reimpostando num_chipselect su 3 (che corrisponde al numero di native chipselect supportati dal controller). Un prossimo commit nella branch for-next permetterà un numero arbitrario di slave.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Prenotare

21/05/2024

Divulgazione

21/05/2024

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you know our Splunk app?

Download it now for free!