Forescout Research - Vedere Labs ha informado que utilizó Claude de Anthropic para portar un exploit de ejecución remota de código (RCE) pre-autenticación de un controlador lógico programable (PLC) WAGO a otro, logrando ejecutar shellcode ARM proporcionado por el atacante en hardware real. El exploit aprovecha CVE-2021-31886, un desbordamiento de búfer basado en pila en el manejo del comando USER del servidor FTP Nucleus, que tiene una puntuación CVSS de 9.8 asignada por Siemens y es accesible antes de la autenticación a través del puerto TCP 21.
CERT@VDE indica que no hay actualizaciones disponibles para los controladores WAGO afectados y recomienda a los propietarios deshabilitar o bloquear FTP en el puerto 21, aplicar controles de segmentación y monitorear el tráfico de red para detectar anomalías.
El proceso de portabilidad requirió una guía sostenida por parte del investigador, y la etapa final de desarrollo del RCE consumió $535.74 en uso de la interfaz de programación de aplicaciones (API) durante una sesión de 8 horas y 32 minutos.
Una sesión posterior que intentó extender el exploit a un implante de comando y control (C2) escribió en una región de memoria flash, lo que dejó el PLC permanentemente inutilizado (bricked).
Uno podría argumentar que el mismo investigador podría haber logrado el port inicial del RCE sin IA en menos tiempo y a menor costo, manteniendo además el PLC con vida.
Vedere Labs ya había desarrollado un exploit RCE funcional para el WAGO 750-852, y portó ese exploit al WAGO 750-831 con firmware V01.04.16. Los investigadores proporcionaron el exploit existente para el 750-852, un binario de firmware del 750-831 y un 750-831 físico como objetivo en vivo. Cada etapa consistió en sesiones interactivas entre un investigador y Claude Code, que tenía acceso a un terminal, la herramienta de ingeniería inversa Ghidra y el PLC objetivo.
El trabajo comenzó con Claude Sonnet 4.6 y luego pasó a Claude Opus 4.6 después de que los intentos iniciales de RCE se estancaran. El procesamiento FTP normal en el 750-831 ponía a cero 256 bytes en el búfer controlado por el atacante, por lo que el shellcode inyectado se sobrescribía antes de poder ejecutarse.
Claude adaptó la secuencia USER y QUIT utilizada contra el 750-852 a una secuencia USER y CWD. Omitir el terminador CRLF 'impidió que la ruta de procesamiento relevante se completara de la manera habitual', dijo Forescout. El búfer sobrevivió el tiempo suficiente para que el payload se ejecutara.
Una vez establecida la ejecución de código, el modelo pasó de trabajar con shellcode NOP (no operación) a dos payloads funcionales en 12 minutos, según Forescout. Uno enviaba solicitudes de eco ICMP a un sistema controlado por el atacante, y el otro enviaba un paquete UDP con la cadena PWNED. El exploit se ejecuta en el contexto de llamada de recepción de Ethernet, y la capacidad demostrada se detiene en el punto de enviar paquetes de red.
Vedere Labs ha demostrado anteriormente que un RCE en un controlador puede encadenarse para permitir un movimiento lateral profundo en redes de tecnología operativa (OT), explotando múltiples vulnerabilidades en los PLC Modicon de Schneider Electric.
Forescout dijo que el modelo también señaló un posible error en el bucle de extracción de comandos FTP, distinto de CVE-2021-31886, durante la primera sesión. La revisión manual 'sugirió que esto podría ser una vulnerabilidad separada, previamente no identificada', dijo Forescout. El equipo lo dejó de lado para una investigación separada, y el problema no tiene identificador CVE.
Una búsqueda en GitHub por CVE-2021-31886, realizada por The Hacker News el 1 de septiembre, no arrojó resultados, y la falla está ausente en Exploit-DB y Packet Storm. Esa búsqueda indexa nombres y descripciones de repositorios, no el contenido de los archivos.
El riesgo más inmediato no es que un agente independientemente decida atacar un controlador, sino que un agente autorizado tome la acción incorrecta en un sistema físico donde la falla tiene consecuencias operativas reales.
Dispositivos Afectados por CVE-2021-31886
- 750-829 (FW16 y anteriores)
- 750-831/000-00x (FW14 y anteriores)
- 750-852 (FW16 y anteriores)
- 750-880/0xx-xxx (FW16 y anteriores)
- 750-881 (FW16 y anteriores)
- 750-882 (FW16 y anteriores)
- 750-885/0xx-xxx (FW16 y anteriores)
- 750-889 (FW16 y anteriores)
- 750-331 (FW16 y anteriores)
- 750-352/xxx-xxx (FW16 y anteriores)
El aviso de CERT@VDE para WAGO lista los dispositivos anteriores como vulnerables a todas las fallas de ese aviso, incluida CVE-2021-31886. El aviso dice: 'Los acopladores de bus de campo y PLC listados anteriormente se basan en Nucleus V1 RTOS. Por el momento, no hay actualizaciones disponibles para esta versión'.
Dos de esos modelos, el 750-882 y el 750-885/0xx-xxx, no aparecen ni en la sección de mitigación del aviso ni en su tabla de remediación, dejando sin especificar su estado de corrección.
Siemens, que mantiene Nucleus, declara en su aviso de Nucleus que no se planea remediación para Nucleus NET en todas las versiones, y que las versiones de Nucleus ReadyStart V3 desde V2013.08.1 ya corrigen CVE-2021-31886.
La falla fue una de las 13 divulgadas en noviembre de 2021 como NUCLEUS:13 por Forescout y Medigate. En su investigación anterior sobre el encadenamiento de exploits en PLC, Forescout concluyó que los problemas discutidos 'probablemente no deberían estar cerca de la parte superior de su lista de prioridades', y dijo que los avances en IA deberían hacer que las organizaciones reconsideren ese cálculo de riesgo.
La investigación sigue a un aviso conjunto emitido el 19 de agosto por la NSA, CISA, FBI, Departamento de Energía y Agencia de Protección Ambiental, que advirtió sobre una amenaza activa a los PLC de la serie Siemens S7 expuestos a Internet proveniente de scripts de explotación generados por IA. Las agencias evalúan que la actividad probablemente esté destinada a reconocimiento persistente y desarrollo de capacidades, y se han abstenido de atribuirla.
Por separado, el FBI y la EPA informaron ataques a empresas de agua en al menos siete estados desde el 27 de julio, algunos de los cuales degradaron las operaciones. Estos actores cambiaron direcciones IP y contraseñas en controladores Rockwell Automation MicroLogix expuestos a Internet, en ataques que no requirieron exploit.
El uso de IA para generar scripts de explotación representa una evolución en las capacidades de los actores de amenaza, reduciendo drásticamente la experiencia técnica y el tiempo requeridos para desarrollar scripts de explotación y herramientas maliciosas funcionales para ICS.