Tres fallos en la librería Diffusers de Hugging Face podrían permitir que un repositorio de modelos malicioso ejecute código arbitrario

Investigadores de seguridad han revelado tres vulnerabilidades de alta severidad en la librería Diffusers de Hugging Face, el toolkit de Python más usado para ejecutar modelos de generación de imágenes y video, que podrían permitir que un repositorio de modelos creado con fines maliciosos ejecute código arbitrario en la máquina de la víctima. Las fallas, conocidas colectivamente como FaceHugger, anulan la salvaguarda integrada de la librería, trust_remote_code — el mecanismo exacto diseñado para detener este tipo de ataque.
Una brecha de timing, no una cerradura rota
El ajuste trust_remote_code de Diffusers está diseñado para evitar que código Python no revisado y potencialmente malicioso, incluido dentro de un repositorio de modelos, se ejecute automáticamente cuando un usuario carga ese modelo. Las vulnerabilidades FaceHugger explotan una falla de Time-of-Check a Time-of-Use (TOCTOU) en cómo se implementa esa salvaguarda: la verificación ocurre durante la primera de dos solicitudes HTTP secuenciales que se hacen al descargar un modelo, pero el código real no se ejecuta hasta más tarde. Un atacante que pueda modificar el contenido del repositorio en la ventana entre esas dos solicitudes puede colar código malicioso sin pasar por la verificación. Como señalan los investigadores, cualquier método que haga que el loader vea código personalizado que la puerta de seguridad nunca inspeccionó anula la protección.
Tres puntos de entrada distintos
La divulgación cubre tres CVEs separados. CVE-2026-44827 (CVSS 8.8) permite inyección de código a través de un archivo de pipeline manipulado que engañosamente se llama “None.py” — una elección de nombre diseñada para pasar desapercibida durante la revisión manual. CVE-2026-45804 (CVSS 7.5) explota directamente la condición de carrera en la secuencia de descarga. CVE-2026-44513 (CVSS 8.8) logra inyección de código mediante la manipulación de flujos de pipeline personalizados. Las tres comparten la misma debilidad subyacente: la brecha entre cuando Diffusers verifica la confiabilidad de un repositorio y cuando realmente usa el código de ese repositorio.
Por qué la escala aquí importa
Diffusers se descargó más de 8.1 millones de veces solo en julio de 2026, y está integrado en una enorme cantidad de pipelines de IA en producción, sistemas de CI/CD y despliegues containerizados que automáticamente jalan y ejecutan modelos con mínima revisión humana. Cualquier ruta de código que llame a DiffusionPipeline.from_pretrained con un pipeline personalizado está potencialmente expuesta. En un ecosistema donde los equipos rutinariamente jalan modelos de repositorios públicos como algo normal, una falla que evita la única salvaguarda construida específicamente para vetar ese código tiene un alcance desproporcionado.
Qué hacer al respecto
El fix de Hugging Face llegó en Diffusers versión 0.38.0, lanzada en mayo de 2026 — los equipos que aún corren versiones anteriores deberían actualizar de inmediato. Donde el parcheo inmediato no sea viable, la postura más segura es cargar modelos solo desde fuentes totalmente confiables y auditadas, e inspeccionar manualmente los snapshots locales de modelos para detectar archivos Python inesperados, particularmente aquellos con nombres engañosos o camuflados.
Según reportó The Hacker News, la divulgación se suma a un patrón creciente este año de investigación en la cadena de suministro de IA dirigida a los mecanismos de confianza que permiten a los desarrolladores jalar y ejecutar modelos de terceros de forma segura — mecanismos que son tan fuertes como los supuestos de timing integrados en su implementación.
Originally reported by The Hacker News. Read the original article for additional details.
View original source