Hugging Face Transformers CVE-2026-80047: se salta el consentimiento
Un fallo recién divulgado en Hugging Face Transformers, la biblioteca más usada para ejecutar modelos abiertos, permite que un repositorio de modelos malicioso deje Python controlado por el atacante en tu disco antes de que llegues a pulsar «confiar». Registrado como CVE-2026-80047 y documentado por el CERT Coordination Center como VU#456290 el 1 de septiembre de 2026, convierte en teatro el aviso de seguridad en el que todo el mundo confía.
Qué ha pasado
El investigador Prasanna Dabi notificó, y el CERT/CC publicó el 1 de septiembre, un fallo que afecta a las versiones 4.49.0 a 5.8.1 de Hugging Face Transformers. La ruta load_custom_generate() de la biblioteca descarga y guarda en caché un módulo Python remoto mediante get_cached_module_file() antes de evaluar el consentimiento del usuario en resolve_trust_remote_code(). La ejecución del módulo sí queda correctamente detrás del aviso, pero la escritura del archivo no. El custom_generate/generate.py del atacante acaba en ~/.cache/huggingface/modules tanto si apruebas el aviso de confianza como si lo rechazas.
Por qué «pulsé Rechazar» no basta
Todo el modelo mental de «trust remote code» es que no ocurre nada peligroso hasta que dices que sí. Este fallo rompe esa suposición: basta con cargar una referencia a un modelo para que caiga un archivo en el disco. Por sí solo, un archivo sin ejecutar es inerte, pero combinado con cualquier segundo fallo que ejecute módulos en caché, con una tarea programada que recorra la caché o con un desarrollador que más tarde ejecute lo que no debe, un archivo plantado se convierte en un punto de apoyo. Es el patrón clásico de primitiva de escritura más ejecución posterior, y se dispara antes de que llegue a aparecer el único control del que dependen los usuarios.
Quién está expuesto
Transformers está integrada casi en cualquier sitio donde se ejecutan modelos: portátiles de desarrolladores, notebooks en la nube, canalizaciones de CI e inferencia en producción. Cualquiera de ellos que cargue modelos desde repositorios no confiables o en los que un atacante pueda influir entra en el alcance. También es un caso de manual de exposición en la cadena de suministro de IA: el riesgo vive en un repositorio de modelos, no en tu propio código, que es justo el tipo de dependencia que un escaneo tradicional nunca ve.
Qué hacer ahora
- No llames a
load_custom_generate()contra repositorios no confiables. Hasta que el proveedor publique un parche, esa es la mitigación operativa del CERT/CC. - Inspecciona y limpia la caché de módulos. Revisa periódicamente
~/.cache/huggingface/modulesy elimina los archivos inesperados en estaciones de trabajo, notebooks y canalizaciones. - Fija y revisa el origen de los modelos. Trata los repositorios de modelos como dependencias con procedencia, no como contenido de confianza. Una lista de materiales de IA (AIBOM) inventaría exactamente qué modelos y versiones descargas, y una auditoría de modelos de comportamiento revisa el propio modelo.
- Conoce el patrón. Esto es terreno de la cadena de suministro del OWASP para LLM: la lista de seguridad de LLM (OWASP) recoge los modos de fallo de procedencia de modelos en los que encaja CVE-2026-80047.
Fuentes
- CERT/CC — VU#456290: Hugging Face Transformers writes remote code to disk prior to consent check
- Cybersecurity News — Hugging Face Flaw Lets Malicious AI Models Plant Python Code
- GBHackers — Transformers Flaw Writes Malicious Python Before User Consent