Vulnerabilidad de RCE detectada en el software del controlador industrial CODESYS

Los problemas de ciberseguridad siguen apareciendo, incluso en medio de la pandemia por coronavirus. Un equipo de investigadores de Cisco Talos acaba de revelar el hallazgo de una vulnerabilidad crítica en el software de control industrial CODESYS Control SoftPLC. Identificada como CVE-2020-6081, la explotación de esta falla permitiría a los actores de amenazas remotos ejecutar código en el sistema objetivo. 

CODESYS Control SoftPLC es un software que transforma cualquier PC o dispositivo integrado en un controlador industrial que cumpla con IEC 61131-3, por lo que es ampliamente utilizado en entornos empresariales.

Según los expertos en ciberseguridad, la vulnerabilidad de ejecución remota de código está relacionada con la funcionalidad del software PLC_Task. Un actor de amenazas podría explotar esta falla enviando paquetes especialmente diseñados a través de la red. El problema afecta a la versión CODESYS Control SoftPLC 3.5.14.30 y ha recibido un puntaje de 9.9/10 en la escala del Common Vulnerability Scoring System (CVSS).

El código de aplicación para CODESYS se compila en código de máquina cuando se envía desde el software. El algoritmo CRC-32 prueba el código de máquina solo antes de que se ejecute en el contexto del código binario codesys3 en un hilo separado. Al crear un archivo .app con el código de shell de arquitectura apropiado, un hacker malicioso puede ejecutar código de forma remota con la capacidad de descargar proyectos.

Esta descarga malintencionada puede realizarse a través del protocolo SSH o el puerto Codesys 11740 utilizando un protocolo propietario. Para pasar la verificación CRC, el actor de amenazas debe crear un archivo .crc teniendo en cuenta el algoritmo CRC-32 para todo el archivo .app.

Los expertos afirman que la vulnerabilidad está relacionada con la falta de verificación criptográfica forzada del binario cargado. Dado que la autenticación se puede deshabilitar para el puerto 11740, que se utiliza para descargar aplicaciones PLC al dispositivo, se requiere una firma criptográfica para verificar que el binario proviene de una fuente confiable. Sin verificación criptográfica, si el dispositivo se configuró para bloquear el acceso directo al dispositivo, además de la lógica de aplicación requerida de acuerdo con IEC 61131, el código arbitrario podría ejecutarse directamente en el dispositivo con privilegios relacionados con el tiempo de ejecución de Codesys.

Mayores detalles sobre esta vulnerabilidad, sus parches de actualización y soluciones alternativas están disponibles en las plataformas oficiales de los desarrolladores de los productos afectados.