Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

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.