Saltar al contenido
Beveiligingsnieuws

Vulnerabilidades AIT-GUI: comandos sin autenticar

AIT-GUI commandobus

Un equipo de investigación de seguridad comunicó una cadena de fallos en AIT-GUI, la consola de operación basada en navegador vinculada al entorno de software de AMMOS (AMMOS Instrument Toolkit) utilizado para enviar comandos a instrumentos y a naves, además de procesar la telemetría. El punto más crítico: AIT-GUI comandos sin autenticar podrían permitir que un atacante sin credenciales emita órdenes arbitrarias a través de rutas web pensadas para el control.

El problema se reportó con severidad alta (con una calificación alrededor de 9,4 en CVSS v3.1, según el registro divulgado) y se identificó para versiones 2.5.1 y anteriores. La corrección llegó en AIT-GUI 2.5.2, publicada el 12 de agosto de 2026.

Qué es AMMOS y por qué AIT-GUI importa

AMMOS Instrument Toolkit es un marco para construir sistemas de datos en tierra. En ese contexto, el software participa en dos tareas clave: enviar comandos hacia instrumentos y/o naves y, en paralelo, recibir y procesar la telemetría que vuelve desde esos sistemas.

AIT-GUI funciona como la consola para el operador, es decir, la interfaz web desde la que se gestionan acciones que terminan llegando a un command bus. Ese detalle es esencial: si el front-end web no protege bien sus endpoints, el impacto no se limita a la pantalla o a páginas alteradas, sino a acciones sobre el entorno controlado.

El problema central: endpoints sin autenticación

De acuerdo con el aviso técnico publicado por Cycode, varias rutas con cambios de estado en AIT-GUI aceptan peticiones sin autenticación ni autorización. Además, el material divulgado indica que no existía protección contra CSRF (Cross-Site Request Forgery) en esas rutas.

En términos prácticos, el servidor web lee un valor de host configurado, pero luego lo ignora y, de forma predeterminada, expone el servicio de escucha en 0.0.0.0 usando el puerto 8080. Ese comportamiento hace que, si alguien puede alcanzar la interfaz de red, el sistema queda disponible para intentos externos.

Cómo podría actuar un atacante a través de la web

El advisory describe el escenario en el que un atacante no autenticado logra comunicarse con el puerto expuesto. Desde ahí, podría aprovechar varias rutas:

  • POST /cmd: emitir comandos arbitrarios para instrumentos y también para la plataforma objetivo.
  • POST /script/run: ejecutar scripts en el servidor. El aviso también menciona la posibilidad de manipular rutas para salir del directorio previsto mediante path traversal.
  • POST /seq: ejecutar secuencias de comandos, con capacidad de pasar archivos fuera del directorio configurado a un subproceso.

Cycode remarca que el “radio de explosión” medido no depende tanto de la alteración visual del sitio, sino de la cantidad de órdenes de instrumentos que pueden llegar a emitirse como consecuencia directa.

Por qué el navegador hace que el riesgo sea más amplio

Un elemento especialmente preocupante es la interacción con navegadores modernos y la forma en que el servidor gestiona solicitudes cross-origin. Según el aviso, como los endpoints aceptan cuerpos con tipo application/x-www-form-urlencoded, las peticiones encajan como solicitudes “simples” según los criterios habituales de CORS.

Esto significa que un navegador puede enviar la solicitud sin realizar preflight (sin una fase OPTIONS previa). En consecuencia, incluso si el despliegue está “localizado” o restringido por firewall, el riesgo persiste si el operador abre una página controlada por un atacante mientras tiene acceso al panel en el navegador.

El advisory indica que tráfico capturado en un navegador real confirmó que se entregan peticiones cross-origin con cero solicitudes OPTIONS, y que el servidor las procesa.

Clasificación de fallos: errores de validación y construcción de rutas

El material de Cycode clasifica los problemas en categorías como:

  • CWE-306 (falta de validación adecuada de entradas),
  • CWE-352 (problemas asociables a manipulación o exposición de rutas / desajustes en validación),
  • CWE-22 (path traversal).

En particular, dos de las rutas descritas —relacionadas con ejecución de scripts y secuencias— construyen rutas de archivos a partir de entradas que no estarían correctamente validadas. El resultado puede ser acceso a archivos fuera de los directorios esperados.

Qué cambió en AIT-GUI 2.5.2

Tras publicar el advisory el 13 de agosto de 2026, el proyecto liberó AIT-GUI 2.5.2 el 12 de agosto de 2026. Entre los cambios reportados en el changelog:

  • En vez de ignorar el host configurado, el servidor se enlaza de forma más consistente (por defecto a localhost, según se describe).
  • Se añadió un before_request hook que compara el Origin o el Referer de la solicitud con el Host del servidor, para acciones como POST, PUT, DELETE y PATCH.
  • Se restringen las operaciones en /script/run y /seq para que queden confinadas a sus raíces configuradas, limitando la explotación por traversal.

El objetivo declarado es bloquear peticiones de navegador cross-origin para endpoints que cambian estado, mitigando el componente CSRF. También se indica que clientes no basados en navegador que no envían esas cabeceras no se ven afectados por el filtro de mismo-origen.

Confirmaciones adicionales y un matiz importante

Además del advisory, la cobertura del caso explica que se revisó el código fuente etiquetado de versiones anteriores y posteriores. Se confirmó que 2.5.2 restringe dónde escucha la consola y bloquea solicitudes cross-origin impulsadas por navegador, pero no añade autenticación directamente a los endpoints de comando, script o secuencia.

También se revisó el paquete en el ecosistema de publicación (PyPI) y se señala que la versión más reciente publicada allí en el momento del análisis era 2.4.1 (subida en 2023). Se menciona, además, que no se reflejaron de forma consistente las versiones 2.5.0, 2.5.1 y 2.5.2 en el historial de releases visible en ese canal.

Por último, existe un desacuerdo de alcance entre registros: una referencia con CVE (publicada el 29 de julio de 2026) describe la ausencia de comprobación de credenciales al emitir sesiones mediante Sessions.create(). Mientras tanto, el advisory de Cycode sitúa el problema afectando 2.5.1 y corrigiéndose en 2.5.2.

Qué significa esto para equipos que operan con consolas de control

Este caso ilustra un riesgo clásico en software de consola: cuando una interfaz web se conecta con mecanismos que ejecutan acciones reales (como comandos sobre instrumentos o sistemas), los fallos de seguridad no deben medirse solo en términos de “defacement” o impacto visual. Aquí, el potencial es generar acciones operativas.

En concreto, los hallazgos apuntan a que:

  • La exposición en todas las interfaces de red (cuando ocurre) incrementa el número de escenarios explotables.
  • La ausencia de autenticación y autorización en endpoints sensibles vuelve críticas las protecciones de aplicación.
  • La combinación con CORS “simple requests” y falta de mitigaciones CSRF puede permitir explotación mediante páginas de terceros.

Si administras un despliegue de este tipo de consola, la lección es clara: revisar la configuración de red, actualizar a la versión corregida cuando aplique y validar que los endpoints que cambian estado tienen controles de seguridad completos.

Recomendaciones prácticas

Con base en lo descrito, estas son acciones razonables para reducir riesgo:

  • Actualizar a AIT-GUI 2.5.2 (cuando sea compatible con tu entorno), ya que ahí se implementan cambios de enlace y mitigación cross-origin para rutas sensibles.
  • Verificar el alcance de red: evitar que el servicio quede accesible en interfaces no necesarias y controlar el acceso al puerto de la consola.
  • Auditar endpoints que disparan comandos, ejecución de scripts o secuencias, especialmente rutas equivalentes a /cmd, /script/run y /seq.
  • Revisar controles en torno al navegador (mismo-origen, CSRF y restricciones de origen/referer) para que una página externa no pueda inducir peticiones.

Conclusión

La cadena de fallos descrita en AIT-GUI comandos sin autenticar muestra cómo una consola web conectada a un entorno de comando puede volverse un vector de ataque de alta consecuencia. El caso señala endpoints sin autenticación/autorización, ausencia de protección CSRF y problemas de construcción de rutas que podrían facilitar traversal, con además un componente cross-origin que el navegador puede activar sin preflight.

La corrección divulgada llega en AIT-GUI 2.5.2, con cambios orientados a limitar el acceso de navegador a rutas sensibles y a confinar la ejecución a raíces configuradas. Aun así, el análisis remarca que la actualización descrita no necesariamente incorpora autenticación en los endpoints de comando, por lo que actualizar y endurecer el despliegue deben ir de la mano.

Fuente: https://thehackernews.com/2026/08/nasa-ait-gui-flaws-could-let.html