Fallo en el framework Llama Stack de Meta expone sistemas de IA a riesgos de ejecución remota de código
Se ha descubierto un fallo de seguridad de alta gravedad en Llama Stack, un framework de Meta que define un conjunto de interfaces API para el desarrollo de aplicaciones con inteligencia artificial (IA) y permite usar los modelos Llama de Meta.
La vulnerabilidad podría permitir a un atacante ejecutar código arbitrario en el servidor de inferencia de Llama Stack a través de la deserialización de datos no confiables.
Específicamente, la API de inferencias para Python que ofrece Llama Stack contiene un método, run_inference
, que utiliza el método recv_pyobj
para recibir desde un socket un objeto de Python serializado y deserializarlo automáticamente utilizando el módulo pickle
de Python. El formato pickle
puede ejecutar cualquier código durante el proceso de deserialización. Esto lo hace inherentemente inseguro, ya que si el socket está expuesto en la red, un atacante puede construir objetos con código malicioso y enviarlos a través del socket, efectivamente logrando la ejecución de código remoto (RCE) en la máquina afectada.
Método vulnerable de Llama Stack. Fuente: Oligo Security.
Llama Stack utiliza pyzmq,
una implementación de la librería de mensajería ZeroMQ para Python. El método recv_pyobj
fue añadido al código de pyzmq
en un commit de agosto de 2016, el cual recibe datos del socket y los deserializa utilizando la función pickle.loads
.
El mantenedor de pyzmq
afirma que este uso del método recv_pyobj
es, de hecho, inseguro, y que «no debería usarse excepto para fuentes confiables, al igual que el propio pickle
. La elección de ejecutarlo en un socket abierto no es una elección de pyzmq
, ¡pero parece que meta-llama
hizo una elección insegura!».
La vulnerabilidad ha sido registrada con el CVE-2024-50050. Meta le ha asignado una puntuación de 6,3 sobre 10 (CVSS v3.1), mientras que la agencia de seguridad de la cadena de suministro de software Snyk le ha asignado puntuaciones de 9,3 (CVSS v4.0) y 9,8 (CVSS v3.1).
Los equipos de seguridad de Meta han corregido rápidamente la vulnerabilidad en la versión 0.0.41. Según un aviso emitido por Meta, la corrección ha sido cambiar el formato de serialización usado para la comunicación con el socket a JSON. También se ha remediado en la librería pyzmq
, actualizando la documentación y los ejemplos para mostrar el uso correcto de recv_pyobj
.
Este no es el único caso de vulnerabilidades producidas debido al uso librerías de deserialización en frameworks de IA. Por ejemplo, en agosto de 2024, Oligo detalló una «vulnerabilidad en la sombra» en Keras (TensorFlow); un bypass del ya resuelto CVE-2024-3660 (CVSS v3.1: 9,8) que podría dar lugar a la ejecución de código arbitrario debido al uso del módulo inseguro marshal
.
Más información:
- Meta’s Llama Framework Flaw Exposes AI Systems to Remote Code Execution Risks https://thehackernews.com/2025/01/metas-llama-framework-flaw-exposes-ai.html
- CVE-2024-50050: Critical Vulnerability in meta-llama/llama-stack | Oligo Security https://www.oligo.security/blog/cve-2024-50050-critical-vulnerability-in-meta-llama-llama-stack
La entrada Fallo en el framework Llama Stack de Meta expone sistemas de IA a riesgos de ejecución remota de código se publicó primero en Una Al Día.
Powered by WPeMatico