CVE-2021-47282 in Linuxinformation

Résumé

par VulDB • 03/06/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

spi: bcm2835 : Correction d'un accès hors limites avec plus de 4 esclaves

Le commit 571e31fa60b3 (« spi: bcm2835 : Mise en cache de la valeur du registre CS pour ->prepare_message() ») a limité le nombre d'esclaves à 3 au moment de la compilation. Cette limitation était nécessaire en raison d'un tableau de taille statique prepare_cs[] dans les données privées du pilote, qui contient une valeur de registre par esclave.

Le commit cherchait à imposer cette limite lors de l'exécution en définissant num_chipselect du contrôleur à 3 : Les esclaves ayant un numéro de sélection de puce (chipselect) supérieur sont rejetés par spi_add_device().

Cependant, le commit a négligé que num_chipselect ne limite que le nombre de chipselects *natifs*. Si des chipselects GPIO sont spécifiés dans l'arborescence du dispositif pour plus de 3 esclaves, num_chipselect est augmenté silencieusement par of_spi_get_gpio_numbers() et les résultats sont des accès hors limites au tableau prepare_cs[] de taille statique.

En tant que correctif provisoire (bandaid) rétroportable vers la version stable, le nombre d'esclaves autorisés a été porté à 24 (« ce qui devrait suffire pour tout le monde »), la limite est appliquée lors du setup de l'esclave et num_chipselect est remis à 3 (qui correspond au nombre de chipselects natifs pris en charge par le contrôleur). Un prochain commit destiné à for-next permettra un nombre arbitraire d'esclaves.

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

Sources

Interested in the pricing of exploits?

See the underground prices here!