PT-2026-102352 · Zephyr · Zephyr
CVSS v3.1
7.8
Alta
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
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.Exploit
Correção
Memory Corruption
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Zephyr