Zephyr-Saxon

#18766de 57,305
15.6CVSS total
Vulnerabilidades · 2
Alta
2
PT-2026-102352
7.8
2026-09-28
Zephyr · Zephyr · CVE-2026-18413
**Nome do Software Vulnerável e Versões Afetadas** Zephyr (versões afetadas não especificadas) **Descrição** O driver NXP MCUX LPADC não valida o tamanho do buffer de destino antes de iniciar uma sequência de amostragem. Especificamente, a função `mcux lpadc start read()` em `drivers/adc/adc mcux lpadc.c` não verifica se o buffer é grande o suficiente para conter as amostras solicitadas. Isso leva a uma gravação fora dos limites em `mcux lpadc isr()` para compilações orientadas a interrupção e em `mcux lpadc dma callback()` para compilações orientadas a DMA. Em compilações com `CONFIG USERSPACE` habilitado, uma thread de modo de usuário não privilegiada com acesso a um objeto de dispositivo LPADC pode manipular `channels`, `buffer`, `buffer size` e `options->extra samplings` para causar corrupção de memória do kernel. Como o driver opera no modo kernel, ele ignora as restrições da Unidade de Proteção de Memória (MPU), permitindo gravações em memórias adjacentes, dados do kernel ou pilhas de threads. Isso pode resultar em escalonamento de privilégios ou negação de serviço. Para compilações sem `CONFIG USERSPACE`, o problema limita-se a um defeito de robustez do lado do chamador. **Recomendações** Atualize o software para uma versão que implemente a função auxiliar `adc sequence validate buffer()` dentro de `mcux lpadc start read()` para garantir que o tamanho do buffer seja validado antes do início da amostragem.
PT-2026-102353
7.8
2026-09-28
Zephyr · Zephyr · CVE-2026-18414
**Nome do Software Vulnerável e Versões Afetadas** Zephyr (versões afetadas não especificadas) **Descrição** O driver ADI MAX32 não valida corretamente o tamanho do buffer de destino para sequências de amostragem. A função `start read()` em `drivers/adc/adc max32.c` compara a contagem de bytes `buffer size` com uma contagem de amostras sem considerar o tamanho de um `uint16 t`, permitindo a aceitação de buffers com metade do tamanho necessário. Isso resulta em uma gravação fora dos limites quando as amostras são armazenadas via `Wrap MXC ADC GetData()` em `adc max32 start channel()` para leituras síncronas ou `adc max32 isr()` para leituras assíncronas. Em compilações com `CONFIG USERSPACE`, onde `adc read()` e `adc read async()` são chamadas de sistema, uma thread de modo de usuário não privilegiada com acesso a um dispositivo ADC MAX32 pode controlar `channels`, `buffer`, `buffer size` e `options->extra samplings`. Isso permite que o driver escreva além do limite do buffer no modo kernel, ignorando as restrições da MPU e corrompendo a memória adjacente do kernel, outras partições ou pilhas de threads. Isso pode resultar em escalonamento de privilégios ou negação de serviço. **Recomendações** Atualize a função `start read()` para utilizar o auxiliar `adc sequence validate buffer()` em `drivers/adc/adc common.c` para validar corretamente o tamanho do buffer com base no tamanho de amostra `uint16 t`.