CVE-2026-44827 permite que un atacante ejecute código arbitrario al cargar un modelo de Hugging Face Diffusers, incluso si la bandera trust_remote_code está desactivada. Los investigadores han bautizado el fallo como “FaceHugger” y lo han atribuido a una condición de carrera en el proceso de carga de modelos de dos fases de la librería. Cualquier pipeline que descargue modelos desde el hub puede verse afectado.
Por qué es importante la vulnerabilidad
Diffusers impulsa modelos de texto a imagen y otros modelos de difusión. En julio de 2026 registró 8,1 millones de descargas, por lo que innumerables procesos de CI/CD, imágenes de contenedores y servicios de inferencia empresariales dependen de él. El error anula el principal mecanismo de seguridad (trust_remote_code) que los desarrolladores activan para bloquear código Python no confiable que se incluye con un modelo.
Cómo funciona la evasión
- Carga en dos fases: Diffusers primero obtiene una configuración del modelo y luego una segunda solicitud descarga los pesos del modelo y cualquier código asociado.
- Condición de carrera: La comprobación de seguridad que inspecciona la primera solicitud no se extiende a la segunda.
- Inserción de carga útil (payload): Un atacante que controla la segunda solicitud inyecta código malicioso que la librería ejecuta posteriormente, eludiendo por completo el control de confianza.
Debido a que la comprobación solo analiza la solicitud inicial, desactivar trust_remote_code ofrece una falsa sensación de protección.
Medidas inmediatas para desarrolladores
- Fijar la versión de Diffusers en
requirements.txto en su archivo de bloqueo (lock file) para evitar actualizaciones accidentales a una versión vulnerable. - Evitar la descarga de modelos sobre la marcha en entornos de producción. Descargue los modelos en un almacén de artefactos de confianza (por ejemplo, un bucket S3 interno) y cárguelos desde allí.
- Auditar los repositorios de modelos antes de su uso. Verifique que los archivos de código del modelo coincidan con los hashes esperados o provengan de una fuente validada.
- Implementar controles de salida de red (egress) para que los agentes de construcción y los servidores de inferencia no puedan acceder al hub público de Hugging Face a menos que usted lo permita.
- Ejecutar la carga de modelos dentro de contenedores aislados o sandboxes con privilegios mínimos, limitando el impacto de la ejecución de código no deseado.
Conclusión:
El error FaceHugger demuestra que desactivar trust_remote_code no es suficiente. Hasta que actualice Diffusers y refuerce su pipeline de ingesta de modelos, cada descarga de un modelo remoto seguirá siendo un punto de entrada potencial para código malicioso.
