MZ Automation lib60870 enfrenta una advertencia de ciberseguridad de CISA por una falla de bloqueo remoto
- Aisha Washington

- hace 1 día
- 15 min de lectura
MZ Automation enfrenta una advertencia de ciberseguridad de CISA después de que investigadores descubrieran que un solo mensaje malformado puede bloquear los procesos de análisis vulnerables de lib60870. La falla afecta a lib60870 hasta la versión 2.4.0 y lleva el identificador CVE-2026-16002. La versión 2.4.1 contiene la corrección.
El error se encuentra en software utilizado para procesar comunicaciones IEC 60870-5 en entornos de control industrial. Estas comunicaciones pueden conectar centros de control, subestaciones, unidades terminales remotas y otros sistemas de tecnología operativa. Por ello, un fallo del analizador tiene implicaciones distintas a las de un bloqueo de una aplicación convencional.
El conflicto central contrapone código acotado con amplias consecuencias operativas. El decodificador defectuoso gestiona un tipo de mensaje especializado, pero la biblioteca afectada admite comunicaciones utilizadas en infraestructuras de energía, productos químicos, agua y aguas residuales. CISA describe el producto como desplegado en todo el mundo.
No se trata de una toma de control demostrada de equipos industriales. Los investigadores observaron una lectura fuera de límites y un resultado de denegación de servicio, no ejecución arbitraria de código. Sin embargo, un atacante con acceso a la red no necesita una cuenta ni interacción del usuario una vez que una trama manipulada llega a un analizador expuesto.
La respuesta inmediata es clara: identificar los despliegues de lib60870, determinar si procesan el tipo de mensaje afectado y actualizar a la versión 2.4.1 o posterior. La tarea más difícil consiste en localizar cada copia integrada y modificar con seguridad sistemas operativos que no toleran tiempos de inactividad informales.
Lo que cambió con el aviso de ciberseguridad de CISA
CISA convirtió un defecto del analizador en un plazo concreto de gestión de activos para las organizaciones que ejecutan lib60870 en entornos operativos.
El aviso de ciberseguridad de CISA identifica una lectura fuera de límites en MZ Automation lib60870. Este error de seguridad de memoria permite al software leer más allá del límite previsto de un búfer de datos.
Una explotación exitosa puede bloquear el proceso de análisis y provocar una denegación de servicio. CISA incluye como afectadas las versiones de lib60870 hasta la 2.4.0 e identifica la 2.4.1 como la versión corregida.
El aviso asocia el problema con CVE-2026-16002 y CWE-125, la clasificación estándar para lecturas fuera de límites. También describe un despliegue mundial en operaciones químicas, energéticas, de agua y aguas residuales.
Esa lista de sectores no establece que todas las organizaciones de esas industrias ejecuten el código vulnerable. Muestra por qué CISA trata la biblioteca como software de sistemas de control industrial, con consecuencias que van más allá de una aplicación de servidor convencional.
El registro detallado de seguridad del proveedor delimita los componentes afectados al maestro CS101 y al cliente CS104. Estos componentes reciben y analizan mensajes de otros dispositivos, lo que sitúa el código vulnerable en una ruta de comunicaciones entrantes.
La versión vulnerable probada fue la 2.4.0, asociada al commit de código fuente 083dc8e. La rama de desarrollo también se vio afectada antes del commit correctivo 182ed30. MZ Automation publicó la versión 2.4.1 como lanzamiento parcheado.
Las fechas ayudan a explicar la urgencia. MZ Automation anunció la versión 2.4.1 el 16 de julio de 2026 y publicó su aviso de seguridad de GitHub el 17 de julio. Posteriormente, CISA incorporó el problema a su proceso de avisos industriales.
Ahora aparecen dos cifras de severidad en los registros públicos. El material de CISA asigna una puntuación CVSS v3 de 8.2, mientras que el aviso de GitHub del proveedor muestra 5.3 con una etiqueta de gravedad moderada.
La puntuación más baja del proveedor utiliza un vector que describe un ataque de red de baja complejidad, sin privilegios ni interacción del usuario. Asigna un bajo impacto en la disponibilidad y ningún impacto confirmado en la confidencialidad o la integridad.
Las organizaciones no deberían interpretar esa diferencia de puntuación como prueba de que uno de los registros sea necesariamente incorrecto. Los resultados CVSS pueden variar cuando los evaluadores hacen supuestos distintos sobre el impacto o el contexto de despliegue. Los operadores industriales deberían basar la prioridad en la accesibilidad real, la criticidad del proceso, la redundancia y el comportamiento de recuperación.
Un analizador que se reinicia automáticamente en un sistema de prueba redundante tiene un efecto operativo distinto al de uno que respalda una única ruta de telemetría de producción. El defecto de origen puede ser idéntico mientras el riesgo operativo cambia de forma sustancial.
Por tanto, la nueva obligación no consiste simplemente en “instalar un parche”. Los equipos deben vincular un identificador de software con dispositivos reales, puertas de enlace, sistemas de ingeniería y aplicaciones. Ese paso de inventario suele determinar si una corrección publicada llega a los sistemas que la necesitan.
Una trama malformada puede ir más allá del búfer
La vulnerabilidad existe porque el decodificador valida menos datos de los que consume posteriormente.
El código afectado procesa el TypeID 41 de ASDU de IEC 60870-5, también llamado S_IT_TC_1. Una ASDU, o Unidad de Datos de Servicio de Aplicación, transporta información operativa estructurada entre puntos finales IEC 60870.
S_IT_TC_1 representa totales integrados para estadísticas de seguridad con una marca temporal. El defecto aparece en la ruta de decodificación IntegratedTotalsForSecurityStatistics dentro de cs101_information_objects.c.
Según el aviso de seguridad del proveedor, la comprobación de longitud del analizador verifica solo una parte de cada elemento esperado. Después, el decodificador lee una estructura más grande que contiene información de contador y una marca temporal.
El elemento completo requiere unos 14 bytes. Incluye un valor AID de dos bytes, una lectura de contador binario de cinco bytes y una marca temporal CP56Time2a de siete bytes. La lógica de validación vulnerable solo contempla cinco bytes en su comprobación de tamaño principal.
Esa discrepancia se vuelve peligrosa cuando un mensaje declara más elementos de los que contiene su carga útil física. El decodificador confía en el recuento declarado el tiempo suficiente para desplazarse más allá del final del búfer suministrado.
Los investigadores demostraron el comportamiento con una trama reducida de unos 201 bytes. Su Calificador de Estructura Variable declaraba 93 elementos, mientras que la trama contenía físicamente aproximadamente 11.
El analizador alcanzó el desplazamiento 201 al intentar procesar el siguiente elemento. Una página de protección marcada como inaccesible provocó un fallo determinista cuando el decodificador cruzó el límite del búfer.
Esta ruta técnica es relevante porque la explotación no requiere un intercambio prolongado ni una secuencia de operaciones cuidadosamente sincronizadas. El aviso indica que una sola ASDU TypeID 41 malformada puede activar la lectura.
IEC 60870-5-104 suele transportar sus mensajes a través del puerto TCP 2404. El protocolo subyacente no proporciona autenticación integrada, aunque los despliegues pueden añadir controles de seguridad de transporte y aplicación.
Un atacante aún debe hacer llegar el mensaje manipulado al analizador. Por lo general, esto requiere accesibilidad de red, acceso a una ruta intermedia de comunicaciones u otra forma de inyectar tráfico en el enlace pertinente.
Una vez que existe esa condición, el vector publicado no requiere privilegios ni interacción del usuario. Un operador no necesita abrir un archivo, aprobar un aviso ni iniciar sesión en una interfaz.
La ruta afectada es más específica de lo que sugiere la expresión “todas las comunicaciones de lib60870”. El proveedor afirma que las aplicaciones que manejan el objeto de contador de seguridad S_IT_TC_1 están expuestas al bloqueo demostrado.
Ese detalle debería orientar las pruebas, pero no debería convertirse en una excusa para ignorar una versión vulnerable identificada. Las organizaciones podrían no tener visibilidad completa de cada tipo de mensaje habilitado por un integrador, una aplicación posterior o una configuración futura.
La corrección amplía la validación para cubrir todos los datos consumidos por cada elemento antes de que el decodificador los lea. Se trata de una reparación directa de la discrepancia de límites, no de una solución alternativa a nivel de red.
MZ Automation incluyó la corrección en una actualización más amplia de la versión 2.4.1. El lanzamiento también aborda comprobaciones de longitud de mensajes, validación de certificados, comunicaciones de servidor y otros problemas de estabilidad.
Este alcance más amplio del lanzamiento incrementa la necesidad de pruebas de regresión. En todos los casos, un operador no está aplicando un cambio aislado de código fuente. Puede estar migrando a un paquete que contiene varias correcciones de seguridad y comportamiento.
Un pequeño error de decodificador presiona a grandes sistemas industriales
El principal riesgo no es la cantidad de memoria dañada, sino el papel operativo del proceso que se detiene.
Lib60870 implementa comunicaciones IEC 60870-5-101 e IEC 60870-5-104 en código C portable. El primero admite enlaces de telecontrol serie, mientras que el segundo transporta comunicaciones relacionadas a través de redes TCP/IP.
El repositorio oficial enumera compatibilidad con maestro y esclavo, funciones de cliente y servidor CS104, grupos de redundancia y servicios de archivos. También admite funciones TLS cuando se compila con la dependencia requerida.
Estas capacidades sitúan la biblioteca dentro de aplicaciones que intercambian información de telemetría y control. La arquitectura exacta del producto varía porque lib60870 es un componente de software, no un único dispositivo industrial fijo.
Una empresa de servicios públicos podría utilizarla en un cliente de centro de control que recibe datos de estaciones remotas. Un proveedor de equipos podría incorporarla en una puerta de enlace. Un integrador podría compilarla en una aplicación especializada de supervisión.
Esa variedad crea el primer punto de presión práctico. Los equipos de seguridad pueden reconocer el nombre de un dispositivo, pero no saber qué biblioteca de comunicaciones aparece dentro de su firmware o paquete de software.
Los usuarios del código fuente pueden revisar registros de dependencias, manifiestos de compilación e historiales de commits. Los clientes comerciales pueden necesitar documentación del proveedor, una lista de materiales de software o confirmación directa de los suministradores.
El segundo punto de presión es el tiempo de actividad. Las comunicaciones industriales suelen respaldar la visibilidad continua, la gestión de alarmas y las operaciones remotas. Reiniciar un proceso puede ser sencillo desde el punto de vista técnico, pero disruptivo desde el operativo.
El impacto demostrado es un bloqueo, no daño físico por sí mismo. Aun así, una interrupción de las comunicaciones puede ocultar mediciones actuales, interrumpir la recopilación de datos históricos, retrasar alarmas u obligar a los operadores a recurrir a procedimientos de respaldo.
Las consecuencias reales dependen del diseño del sistema. Los clientes redundantes, los supervisores de procesos, la segmentación de red y los controles autónomos locales pueden limitar el efecto. Las redes planas y las rutas únicas de comunicación pueden amplificarlo.
El tercer punto de presión es el control de cambios. Los equipos de tecnología operativa suelen probar las actualizaciones de bibliotecas de protocolos frente al comportamiento de los dispositivos, la sincronización, los certificados y las extensiones específicas de cada proveedor antes del despliegue en producción.
Esa cautela protege la disponibilidad, pero también puede prolongar la exposición. Las organizaciones deben equilibrar el riesgo del bloqueo conocido por una trama malformada frente al riesgo de introducir una actualización de biblioteca insuficientemente probada.
La lista de sectores afectados de CISA hace más visible esa disyuntiva. Los operadores de energía y agua no pueden asumir que una estrategia de mantenimiento diseñada para software de oficina convencional se adapte a un sistema de telemetría.
El problema también se extiende más allá de la exposición a internet. Un dispositivo puede estar protegido de la internet pública y seguir siendo accesible desde una estación de trabajo comprometida, un servicio de acceso remoto, una conexión de proveedor o una red operativa adyacente.
Por eso, buscar únicamente puntos finales públicos con el puerto TCP 2404 es insuficiente. La exposición externa es una ruta, no toda la superficie de ataque.
Una revisión de activos debería rastrear la ruta de datos completa. Los equipos deben identificar qué sistemas reciben mensajes IEC 60870, qué procesos los analizan y qué fuentes ascendentes pueden entregar tráfico TypeID 41.
También deben determinar qué ocurre después de un fallo. Un proceso supervisado puede reiniciarse de inmediato, mientras que otro servicio puede permanecer indisponible hasta que se realice una intervención manual.
Las tramas maliciosas repetidas podrían derrotar la recuperación automática si el mismo tráfico llega al proceso reiniciado. Por tanto, el filtrado de red y la supervisión de procesos complementan el parche, pero no lo sustituyen.
Una prueba operativa útil pregunta si la pérdida del cliente afectado cambia la capacidad de control, únicamente la supervisión, o ambas cosas. Esa distinción determina la gravedad del incidente, la programación del mantenimiento y los controles compensatorios temporales.
La verdadera disyuntiva es aplicar parches rápido frente a cambiar con seguridad
La versión 2.4.1 corrige la brecha de decodificación conocida, pero los operadores industriales aún necesitan un despliegue controlado y contención por capas.
La remediación más clara es actualizar las aplicaciones afectadas a lib60870 2.4.1 o posterior. MZ Automation recomienda específicamente este paso para las aplicaciones que usan el objeto de información S_IT_TC_1.
Las organizaciones deberían elaborar primero un inventario de los sistemas que contienen lib60870. Entre las evidencias útiles se incluyen archivos de bloqueo de código fuente, registros de compilación, manifiestos de firmware, certificaciones de proveedores, metadatos de paquetes y análisis binario cuando los contratos lo permitan.
Los equipos deberían registrar tanto la versión de la biblioteca como la función de la aplicación. Un cliente CS104 vulnerable que recibe mensajes presenta un escenario distinto al de un software que incluye la biblioteca pero nunca invoca el componente afectado.
Después, deberían mapear la accesibilidad. Las preguntas pertinentes incluyen si el endpoint acepta tráfico de redes no confiables, segmentos empresariales enrutados, portátiles de mantenimiento, jump hosts o servicios remotos de terceros.
La corrección debería pasar por un entorno de pruebas representativo antes de llegar a producción. Las pruebas deben cubrir la telemetría normal, el manejo de entradas malformadas, la conmutación por error, el comportamiento de reconexión, la validación de certificados y las combinaciones de mensajes específicas del proveedor.
La versión 2.4.1 incluye varios cambios además de CVE-2026-16002. MZ Automation afirma que añade validación de la longitud de los mensajes y corrige otros defectos de seguridad y estabilidad. Estos cambios refuerzan la conveniencia de actualizar, pero también amplían la superficie de pruebas de regresión.
Cuando el despliegue inmediato no es posible, los controles de red pueden reducir la exposición. Los operadores pueden restringir el acceso a endpoints de comunicación conocidos y bloquear rutas innecesarias hacia segmentos IEC 60870.
Una red privada virtual puede proteger el acceso remoto, pero no hace que todos los dispositivos dentro de la ruta de confianza sean seguros. Las credenciales robadas o un host autorizado comprometido aún pueden proporcionar accesibilidad de red.
La supervisión consciente del protocolo puede ayudar a identificar tráfico TypeID 41 anómalo, recuentos de elementos inconsistentes, fallos de conexión repetidos y reinicios de procesos. Los operadores deberían validar que los dispositivos de supervisión analizan correctamente la variante de protocolo pertinente.
La supervisión de endpoints puede acortar las interrupciones al reiniciar servicios fallidos. Sin embargo, también puede ocultar una explotación repetida, salvo que los eventos de reinicio generen alertas y conserven registros útiles.
El filtrado temporal de mensajes S_IT_TC_1 requiere una revisión de ingeniería cuidadosa. Bloquear un objeto legítimo de contador de seguridad puede alterar el comportamiento de supervisión esperado y no debería adoptarse a ciegas.
La respuesta de ciberseguridad de CISA también debería preservar las pruebas. Los registros pertinentes incluyen capturas de paquetes, volcados de fallos de procesos, registros de reinicio, mensajes de aplicación y cambios de configuración en torno al endpoint afectado.
Estos artefactos pueden distinguir la explotación de un par defectuoso, tráfico corrupto o un fallo de aplicación no relacionado. La misma estructura malformada puede producirse de forma deliberada o accidental.
La discrepancia sobre la gravedad merece un tratamiento cuidadoso durante la priorización. La puntuación de 8.2 de CISA indica una alta preocupación, mientras que el cálculo de 5.3 del proveedor refleja el impacto de seguridad limitado demostrado.
Ninguna de las dos cifras describe por sí sola una planta o centro de control específico. Una evaluación de riesgo local debería considerar la exposición, la dependencia operativa, el comportamiento de reinicio, la redundancia y las consecuencias de seguridad de perder visibilidad.
Los equipos también deberían evitar exagerar el hallazgo. El aviso público informa de una lectura fuera de límites, no de una escritura. Los investigadores no demostraron ejecución arbitraria de código.
El proveedor señala que datos adyacentes del heap podrían quedar expuestos en determinadas condiciones, dependiendo de la disposición de la memoria y de si los valores decodificados se devuelven a un par. Esta posibilidad no se ha establecido como un exploit funcional de divulgación.
Del mismo modo, la prueba de concepto pública no está disponible. El aviso describe el desencadenante y los resultados experimentales, pero las organizaciones no deberían asumir una explotación activa generalizada sin pruebas independientes.
Por tanto, una respuesta disciplinada se sitúa entre la desestimación y la alarma. Corrija el defecto confirmado, reduzca la accesibilidad durante el despliegue y supervise el patrón de fallo descrito.
Lo que el hallazgo revela sobre las pruebas de software industrial
CVE-2026-16002 demuestra cómo el fuzzing moderno puede encontrar defectos de memoria acotados dentro de implementaciones de protocolos industriales de larga trayectoria.
El aviso del proveedor afirma que una herramienta de código abierto asistida por LLM llamada Eldprov encontró el problema mediante AFL++ o libFuzzer con AddressSanitizer. El fuzzing introduce entradas inusuales en el software para revelar fallos y supuestos incorrectos.
Automation identificó el posible fallo, pero posteriormente una persona lo reprodujo y verificó. Los investigadores utilizaron un harness con páginas de guarda y revisaron la ruta de código fuente pertinente antes de informar del resultado.
Esta secuencia importa porque los informes automatizados de vulnerabilidades pueden contener falsos positivos o fallos mal caracterizados. En este caso, el registro público describe una reproducción determinista y un error específico en la comprobación de límites.
El descubrimiento también ofrece una comparación útil con investigaciones anteriores sobre seguridad industrial. Avisos previos relacionados con lib60870 han implicado procesamiento de mensajes y condiciones de denegación de servicio, lo que demuestra que la resiliencia de los analizadores sigue siendo una preocupación constante.
Las bibliotecas de protocolos afrontan un espacio de entrada difícil. Una trama puede ser válida en una capa y, al mismo tiempo, contener recuentos, longitudes, indicadores y tipos de objeto contradictorios en otra.
Las pruebas de comunicaciones normales de dispositivos rara vez cubrirán todas las combinaciones malformadas. El fuzzing puede explorar esas combinaciones más rápido, especialmente cuando se combina con sanitizadores que detectan accesos inválidos a memoria.
El papel humano sigue siendo central. Un fallo debe reducirse, rastrearse, reproducirse y conectarse con una exposición realista antes de que los operadores puedan actuar.
El hallazgo también separa la seguridad del protocolo de la seguridad de la implementación. El cifrado, la autenticación y la segmentación pueden limitar quién envía tráfico, pero el analizador receptor aún debe manejar los datos malformados de forma segura.
MZ Automation ha publicado orientación que describe IEC 60870-5-101 e IEC 60870-5-104 como protocolos creados sin cifrado, autenticación ni protección de integridad nativos. Su visión general de la seguridad de IEC analiza las protecciones TLS e IEC 62351 que pueden añadirse a los despliegues.
Estos controles reducen el acceso no autorizado cuando se implementan correctamente. No eximen a un decodificador de validar todos los campos antes de leer memoria.
A la inversa, un analizador corregido no resuelve una confianza de red débil. La versión 2.4.1 evita esta ruta de lectura conocida, pero no transforma un protocolo heredado en un límite de seguridad completo.
Esta es la disyuntiva central detrás del incidente. Los operadores industriales necesitan código más seguro y rutas de comunicación más restringidas, al tiempo que mantienen la compatibilidad con equipos que pueden seguir desplegados durante años.
Los proveedores pueden mejorar ese equilibrio publicando información de dependencias legible por máquina, rutas de actualización compatibles y descripciones claras de los componentes afectados. Los operadores pueden entonces identificar la exposición sin aplicar ingeniería inversa a cada binario desplegado.
El espejo de código abierto de la biblioteca ayuda a los investigadores a examinar el código y permite a los usuarios del código fuente comparar commits. Sin embargo, los productos comerciales que incorporan la biblioteca aún requieren coordinación con el proveedor cuando los clientes no pueden recompilarlos directamente.
La siguiente cuestión de pruebas es si existen comprobaciones similares de longitud parcial en otros decodificadores ASDU. La versión 2.4.1 añade una validación más amplia de la longitud de los mensajes, lo que sugiere que la versión aborda más de una línea aislada.
Eso no establece vulnerabilidades explotables adicionales. Sí justifica una revisión centrada en las rutas de decodificación que combinan recuentos variables, direcciones opcionales, contadores y marcas de tiempo.
Los equipos de seguridad también deberían seguir si los proveedores posteriores publican sus propios avisos. Una corrección de la biblioteca no llega a los productos integrados hasta que los mantenedores recompilan, prueban y distribuyen software actualizado.
Tres señales mostrarán si el riesgo está contenido
La siguiente fase depende de la adopción del parche, la divulgación posterior y las pruebas de explotación en el mundo real.
La primera señal es la aparición de la versión 2.4.1 en productos operativos reales. Una versión de la biblioteca inicia el proceso de remediación, pero no demuestra que los integradores hayan distribuido aplicaciones o firmware corregidos.
Los operadores deberían preguntar a los proveedores si sus productos incluyen lib60870-C, qué versión utilizan y si el decodificador afectado es accesible. Las respuestas deberían identificar una versión corregida y un procedimiento de despliegue compatible.
Una sólida oleada de avisos posteriores confirmaría que los proveedores han rastreado la dependencia en sus carteras. El silencio podría significar que los productos no están afectados, pero también podría reflejar un inventario incompleto.
La segunda señal es la evidencia operativa de las actualizaciones. Las organizaciones deberían vigilar problemas de interoperabilidad, cambios en el comportamiento de los certificados, problemas de reconexión y el manejo inesperado de ASDUs poco comunes tras migrar a 2.4.1.
Los despliegues limpios respaldarían una adopción rápida en flotas más grandes. Regresiones significativas ralentizarían la aplicación de parches y aumentarían la dependencia de la segmentación, las listas de permitidos y la supervisión.
La tercera señal es cualquier evidencia de que los atacantes estén utilizando CVE-2026-16002 fuera de pruebas controladas. Código de exploit público, informes de incidentes, tráfico TypeID 41 malformado repetido o una escalada en catálogos aumentarían la urgencia.
Según los detalles publicados en el aviso, el resultado demostrado es un fallo del analizador en condiciones de laboratorio. El registro público no establece ejecución arbitraria de código ni explotación generalizada.
Las organizaciones deberían vigilar las actualizaciones de CISA, los avisos de proveedores y su propia telemetría operativa en lugar de esperar un titular. Los fallos repetidos de procesos en clientes IEC 60870 merecen investigación incluso cuando los dispositivos perimetrales no muestran exposición pública.
La acción inmediata más útil es una revisión focalizada del inventario. Encuentre todos los sistemas que reciben mensajes IEC 60870-5, determine su versión de lib60870 y documente quién puede alcanzar su analizador.
Después, pruebe la versión 2.4.1 con tráfico y escenarios de fallo representativos. Cuando no sea posible una actualización rápida, restrinja las rutas de comunicación y genere alertas ante reinicios del analizador o mensajes TypeID 41 malformados.
Este enfoque se ajusta a las pruebas sin exagerarlas. La advertencia de ciberseguridad de CISA describe una condición confirmada de denegación de servicio accesible de forma remota en configuraciones afectadas.
La cuestión sin resolver no es si existe la comprobación de límites defectuosa. Es cuántos sistemas de producción la contienen, qué tan accesibles son esos sistemas y con qué rapidez sus propietarios pueden desplegar la corrección de forma segura.


