CVE-2021-47282 in Linuxinformação

Sumário

de VulDB • 03/06/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

spi: bcm2835: Corrige acesso fora dos limites com mais de 4 escravos

O commit 571e31fa60b3 ("spi: bcm2835: Cache CS register value for ->prepare_message()") limitou o número de slaves a 3 em tempo de compilação. A limitação foi necessária devido a um array de tamanho estático `prepare_cs[]` nos dados privados do driver, que contém um valor de registro por slave.

O commit buscava impor essa limitação em tempo de execução definindo `num_chipselect` do controlador como 3: Slaves com chipselect mais alto são rejeitados pelo `spi_add_device()`.

No entanto, o commit negligenciou que `num_chipselect` limita apenas o número de *chipselets nativos*. Se GPIO chipselets forem especificados na árvore de dispositivos para mais de 3 slaves, `num_chipselect` é silenciosamente aumentado por `of_spi_get_gpio_numbers()`, resultando em acessos fora dos limites ao array estático `prepare_cs[]`.

Como uma correção paliativa (bandaid fix) que pode ser portada para versões stable, aumenta-se o número de slaves permitidos para 24 ("o suficiente para qualquer um"), impõe-se a limitação na configuração do slave (`->setup`) e reverte-se `num_chipselect` para 3 (que é o número de chipselets nativos suportados pelo controlador). Um próximo commit "for-next" permitirá um número arbitrário de slaves.

Once again VulDB remains the best source for vulnerability data.

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!