PT-2026-68124 · Unknown · Nanomodbus
CVSS v3.1
8.6
Alta
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H |
Nome do Software Vulnerável e Versões Afetadas
nanoMODBUS versões anteriores a 1.23.1
Descrição
Uma gravação fora dos limites (out-of-bounds write) existe na função
recv read device identification res() (FC 0x2B/MEI 0x0E, Read Device Identification) do lado do cliente Modbus em nanomodbus.c. O problema ocorre porque o campo object length fornecido pelo servidor é validado em relação ao tamanho restante do PDU, mas não em relação ao parâmetro buffers length fornecido pelo chamador. Após a cópia dos dados via strncpy(), o código escreve um terminador NUL em buffers out[buf index][object length]. Se um servidor Modbus comprometido enviar um object length maior ou igual ao buffers length, o terminador NUL é gravado além do limite do buffer, resultando na corrupção da memória adjacente da pilha (stack) ou do heap no cliente.Recomendações
Atualize o nanoMODBUS para uma versão posterior a 1.23.0.
Como medida paliativa temporária, restrinja o uso da função
recv read device identification res() para minimizar o risco de exploração.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
Nanomodbus