Vulnerabilidad crítica en el framework Llama Stack de Meta
Vulnerabilidad crítica en el framework Llama Stack de Meta

Vulnerabilidad crítica en el framework Llama Stack de Meta

Se ha identificado una vulnerabilidad crítica en el framework Llama Stack, desarrollado por Meta. La brecha se debe al uso inadecuado del método recv_pyobj dentro de la API de inferencias para Python.

Vulnerabilidad y mecanismo de explotación

El método run_inference recibe datos desde un socket y los deserializa automáticamente utilizando el módulo pickle de Python. Si un atacante puede acceder al socket, podrá enviar objetos serializados con código malicioso, logrando así la ejecución remota (RCE) en la máquina afectada.

Identificación y puntuación de gravedad

La vulnerabilidad ha sido registrada bajo el identificador CVE-2024-50050. La agencia Snyk le asignó puntuaciones de 9,3 (CVSS v4.0) y 9,8 (CVSS v3.1), lo que refleja una alta gravedad. La vulnerabilidad ha sido evaluada con una puntuación de 6,3 sobre 10 (CVSS v3.1) por Meta.

Contexto técnico

Llama Stack utiliza la librería pyzmq, una implementación de ZeroMQ para Python. El método recv_pyobj fue introducido en un commit de agosto de 2016 y se utiliza para recibir datos serializados desde un socket.

Recomendaciones y corrección

El mantenedor de pyzmq ha señalado que el uso del método recv_pyobj es inseguro y debe limitarse a fuentes confiables. Meta ha corregido la vulnerabilidad en la versión 0.0.41 del framework, cambiando el formato de serialización a JSON para la comunicación con el socket.

Riesgos asociados

  • Ejecución remota (RCE) en la máquina afectada.
  • Uso inadecuado de formatos de serialización en entornos de desarrollo de IA.

Mitigaciones recomendadas

  • Cambiar el formato de serialización a JSON para la comunicación con el socket.
  • Actualizar los ejemplos y la documentación de pyzmq para mostrar el uso correcto del método recv_pyobj.