Vulnerabilidad en OpenPLC_v3 de openplcproject (CVE-2026-11826)
Gravedad CVSS v4.0:
ALTA
Tipo:
CWE-122
Desbordamiento de búfer basado en memoria dinámica (Heap)
Fecha de publicación:
18/07/2026
Última modificación:
24/10/2026
Descripción
OpenPLC_v3 contiene un desbordamiento de búfer basado en montículo en la función getData() en webserver/core/modbus_master.cpp. getData() lee caracteres entre dos delimitadores en un búfer proporcionado por el llamador sin parámetro de tamaño y sin verificación de límites. En parseConfig() la función es invocada con el campo MB_device.dev_name de 100 bytes asignado en el montículo. Un atacante autenticado con acceso a la interfaz web de OpenPLC puede enviar una solicitud HTTP POST manipulada al endpoint /modbus con un valor device_name sobredimensionado; el valor se persiste en mbconfig.cfg y se analiza al cargar, desbordando dev_name y sobrescribiendo campos de estructura adyacentes (protocolo en el desplazamiento 108, dev_address en el desplazamiento 109, ip_port en el desplazamiento 210). Una carga útil de 200 bytes escribe 100 bytes más allá de la asignación. El resultado es corrupción del montículo que lleva a un fallo en tiempo de ejecución y denegación de servicio del bucle de control de proceso del PLC, con sobrescritura controlada por el atacante de campos de configuración adyacentes. El repositorio upstream fue archivado el 04-04-2026 y no se espera ninguna solución; el proveedor ha confirmado que el problema no afecta a OpenPLC Runtime v4.
Impacto
Puntuación base 4.0
8.70
Gravedad 4.0
ALTA
Puntuación base 3.x
8.80
Gravedad 3.x
ALTA
Referencias a soluciones, herramientas e información
- https://gist.github.com/Shukhrat-03/5cf1825b72e485ef98a32958dfbc611a#security-vulnerability-report
- https://github.com/thiagoralves/OpenPLC_v3
- https://github.com/thiagoralves/OpenPLC_v3/commit/b4702061dc14d1024856f71b4543298d77007b88
- https://www.vulncheck.com/advisories/openplc-v3-heap-based-buffer-overflow-in-modbus-master-getdata


