Se ha descubierto una vulnerabilidad de seguridad significativa en Microsoft Copilot Enterprise que posibilitaba a usuarios no autorizados obtener acceso a nivel de «root» (administrador) a su entorno de servidor backend. Esta vulnerabilidad representaba un riesgo considerable, ya que podría haber permitido a individuos malintencionados manipular la configuración del sistema, acceder a datos confidenciales y comprometer la integridad general de la aplicación.
Origen de la Vulnerabilidad y el Rol de Jupyter Notebook
El problema se originó con una actualización de abril de 2025 que incorporó una zona de pruebas de Python en vivo impulsada por Jupyter Notebook, diseñada para ejecutar código de manera fluida. Lo que inicialmente se concibió como una mejora de funcionalidad, inadvertidamente se transformó en un punto de entrada para posibles explotaciones, subrayando los riesgos inherentes en sistemas con integración de Inteligencia Artificial.
Descubrimiento y Mecanismo de Explotación
La vulnerabilidad fue identificada por Eye Security, quienes de manera ingeniosa compararon la interacción con Copilot con la de persuadir a un niño impredecible. Mediante el uso de la sintaxis %command
de Jupyter, los investigadores lograron ejecutar comandos arbitrarios de Linux como el usuario «ubuntu» dentro de un entorno miniconda.
Aunque el usuario pertenecía al grupo «sudo», no existía un binario «sudo» disponible, lo que añadió una capa inesperada a la configuración. La zona de pruebas compartía similitudes con el modelo de ChatGPT, aunque con un kernel más reciente y Python 3.12, en contraste con la versión 3.11 de ChatGPT en ese momento.
Detalles Técnicos del Entorno Comprometido
La investigación reveló que el sandbox desempeñaba un papel principal en la ejecución de Jupyter Notebooks junto con un servidor Tika. El contenedor presentaba una interfaz de red local con un enlace limitado y una máscara de red /32
, utilizando un sistema de archivos OverlayFS vinculado a una ruta /legion
en el host.
Los scripts personalizados se ubicaban en el directorio /app
. Tras comandos persistentes, se pudo inducir a Copilot a descargar archivos o carpetas comprimidas (tar), copiándolos a /mnt/data
para su acceso externo mediante enlaces de blobs en outlook.office[.]com
.
Un binario crucial, goclientapp
en /app
, actuaba como interfaz del contenedor, operando un servidor web en el puerto 6000 para solicitudes POST a los puntos finales /ejecutar
. Cargas útiles JSON sencillas, como {"code":"%env"}
, activaban la ejecución de código en el entorno Jupyter. Un binario httpproxy
sugirió futuras capacidades de tráfico saliente, aunque la salida estaba deshabilitada en ese momento.
El Error Crítico en Entrypoint.sh
El script Entrypoint.sh
, ejecutado con privilegios de root, fue fundamental en la vulnerabilidad. Aunque eliminaba privilegios para la mayoría de los procesos, iniciaba keepAliveJupyterSvc.sh
como root. Un error crítico en la línea 28 involucró la ejecución del comando pgrep
sin una ruta completa, operando en un bucle «while true
» cada dos segundos.
Este comando se basaba en la variable $PATH
, que incluía directorios modificables como /app/miniconda/bin
antes de /usr/bin
, donde reside el pgrep
legítimo.
Aprovechando esta debilidad, los investigadores crearon un script Python malicioso disfrazado de pgrep
en la ruta de escritura. Subido a través de Copilot, este script leía comandos de /mnt/data/in
, los ejecutaba con popen
y enviaba los resultados a /mnt/data/out
. Esto les otorgó acceso de root, permitiendo la exploración del sistema de archivos, aunque no se encontraron datos confidenciales ni rutas de acceso adicionales, ya que las vulnerabilidades conocidas habían sido corregidas.
Notificación y Resolución
Eye Security informó el problema al Centro de Respuesta de Seguridad de Microsoft (MSRC) el 18 de abril de 2025. La vulnerabilidad fue solucionada el 25 de julio y clasificada como de gravedad moderada. No se otorgó una recompensa económica, solo un reconocimiento en la página de investigadores de Microsoft.
Los investigadores señalaron que la explotación no produjo «absolutamente nada» más allá del interés técnico, pero propició más descubrimientos, incluido el acceso al panel de Operaciones Responsables de IA para Copilot y 21 servicios internos a través del abuso de Entra OAuth.
Este incidente subraya la dualidad de los entornos de zona de pruebas de IA: son innovadores pero inherentemente vulnerables a ataques creativos. Microsoft no ha emitido comentarios públicos, pero la rápida resolución demuestra su enfoque proactivo en seguridad dentro del panorama evolutivo de la IA.