Los investigadores de Oligo Security descubrieron tres problemas de seguridad críticos en el paquete TorchServe de código abierto, utilizado para servir y escalar modelos de PyTorch en producción. Llamadas ShellTorch, estas fallas podrían permitir que un atacante ejecute códigos arbitrarios en los sistemas afectados. Pueden otorgarle el privilegio de ver, modificar, robar y eliminar modelos de inteligencia artificial y datos confidenciales en el servidor TorchServe. "Estas vulnerabilidades pueden comprometer completamente la infraestructura de IA de las empresas más grandes del mundo". explicar OligoSeguridad. “Pueden conducir a la ejecución remota de código de cadena completa, exponiendo a decenas de miles de servicios y usuarios finales, incluidas algunas de las empresas más grandes del mundo, a intrusiones y accesos no autorizados. de modelos de IA maliciosos y, potencialmente, una toma completa del servidor”. Dos de las vulnerabilidades descubiertas, denominadas CVE-2023-43654 y CVE-2023-1471, tienen puntuaciones CVSS respectivas de 9,8 y 9,9, mientras que la tercera aún no tiene una entrada CVE.

Al entregar modelos en producción, TorchServe proporciona la recuperación de archivos de configuración para modelos desde una URL remota mediante el flujo de trabajo de registro de modelo o API. En una de las vulnerabilidades (CVE-2023-43654), se descubrió que la lógica API para una lista permitida de dominios acepta todos los dominios como URL válidas, lo que genera una falsificación de solicitudes del lado del servidor (Server -Side-Request-Forgery, SSRF ). "Esta vulnerabilidad permite a un atacante cargar una plantilla maliciosa que será ejecutada por el servidor, lo que conducirá a la ejecución de código arbitrario", dijo Oligo Security.

Los principales entornos de contenedores también se ven afectados

Otro problema relacionado con CVE-2023-1471 deja a TorchServe expuesto a la ejecución remota de código crítico a través de la vulnerabilidad de deserialización SnakeYAML, que resulta del uso indebido de la biblioteca SnakeYAML de código abierto (Java). “Los modelos de IA pueden incluir un archivo YAML para declarar la configuración deseada. Al cargar una plantilla con un archivo YAML malicioso, pudimos desencadenar un ataque de deserialización inseguro que resultó en la ejecución de código en la máquina”, dijo Oligo Security. La tercera falla (sin referencia CVE hasta la fecha) es una vulnerabilidad de configuración incorrecta en la API de administración de TorchServe, responsable de administrar los modelos en tiempo de ejecución. La API está configurada para escuchar en el puerto 0.0.0.0 de forma predeterminada, lo que la hace accesible a solicitudes externas, tanto privadas como públicas. La explotación de las tres vulnerabilidades combinadas puede permitir la ejecución remota de código con privilegios elevados, lo que lleva a una toma completa del servidor.

Según Oligo Security, se descubrió que el contenedor de aprendizaje profundo (DLC) de Amazon y Google era vulnerable a ShellTorch. Los servicios administrados de Amazon y Google incluyen controles compensatorios que reducen la exposición. "AWS tiene conocimiento de CVE-2023-43654 y CVE-2022-1471 presentes en las versiones 0.3.0 a 0.8.1 de PyTorch TorchServe, que utilizan una versión de la biblioteca de código abierto SnakeYAML v1.31", dijo Amazon en un comunicado del 2 de octubre. asesoramiento sobre las vulnerabilidades. “La versión 0.8.2 de TorchServe resuelve estos problemas. AWS recomienda que los clientes que utilizan contenedores de aprendizaje profundo (DLC) de inferencia de PyTorch 1.13.1, 2.0.0 o 2.0.1 en EC2, EKS o ECS lanzados antes del 11 de septiembre de 2023, actualizar a la versión 0.8.2 de TorchServe ". Amazon ha aclarado que los clientes que utilizan contenedores de aprendizaje profundo (DLC) de inferencia de PyTorch a través de SageMaker no se ven afectados. Meta, co-mantenedor con Amazon de la biblioteca de código abierto TorchServe, arregló rápidamente la API de administración predeterminada para mitigar la tercera vulnerabilidad. Oligo Security dijo que trabajó con los mantenedores de PyTorch para revelar responsablemente estas fallas.