PT-2026-60966 · Openplc · Openplc
CVSS v3.1
8.8
Alta
| Vetor | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
OpenPLC v3 (versões afetadas não especificadas)
Descrição
Um estouro de buffer baseado em heap existe na função
getData() em webserver/core/modbus master.cpp. A função lê caracteres entre dois delimitadores em um buffer fornecido pelo chamador sem parâmetro de tamanho ou verificação de limites. Especificamente, em parseConfig(), a função é invocada usando o campo MB device.dev name de 100 bytes alocado no heap. Um invasor autenticado com acesso à interface web pode enviar uma requisição HTTP POST manipulada para o endpoint /modbus com um valor de device name excessivo; o valor é persistido em mbconfig.cfg e analisado ao carregar, estourando o dev name e sobrescrevendo campos de estrutura adjacentes (protocol no deslocamento 108, dev address no deslocamento 109, ip port no deslocamento 210). Um payload de 200 bytes escreve 100 bytes além da alocação, resultando em corrupção de heap que leva a um travamento de tempo de execução e negação de serviço do loop de controle de processo do PLC.Recomendações
No momento, não há informações sobre uma versão mais recente que contenha a correção para esta vulnerabilidade.
Restrinja o acesso à interface web para minimizar o risco de exploração.
DoS
Heap Based Buffer Overflow
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Openplc