Transformers de Hugging Face guarda archivos sin consentimiento
El CERT/CC reveló el 1 de septiembre la falla CVE-2026-80047 en Hugging Face Transformers: escribe un archivo Python remoto en disco antes de que el usuario dé su aprobación. Aún no hay parche disponible.

El CERT Coordination Center (CERT/CC) de Estados Unidos publicó el 1 de septiembre de 2026 un aviso de seguridad sobre una falla en Hugging Face Transformers, la biblioteca Python más utilizada del mundo para cargar y ejecutar modelos de inteligencia artificial. Catalogada como CVE-2026-80047, afecta a las versiones 4.49.0 a 5.8.1 de la biblioteca. El portal japonés de vulnerabilidades JVN (Japan Vulnerability Notes) publicó información equivalente el mismo día, reportada originalmente por el medio INTERNET Watch. Al momento de escribir esto, Hugging Face no ha publicado ningún parche ni declaración oficial.
Hugging Face Transformers es la biblioteca Python que ofrece la plataforma Hugging Face para cargar modelos de IA preentrenados —procesamiento de lenguaje natural, visión por computadora, audio, vídeo y sistemas multimodales— y ejecutar inferencia o reentrenamiento. El CERT/CC la describe como uno de los frameworks más extendidos de su tipo, usado tanto en investigación como en producción en todo el mundo.
Un archivo escrito antes de hacer siquiera la pregunta
El fallo reside en la función GenerativePreTrainedModel.load_custom_generate(), que permite a un repositorio de modelos aportar su propia lógica de generación. Esa función obtiene el módulo remoto mediante get_cached_module_file() y lo escribe en la caché local del usuario, en ~/.cache/huggingface/modules, antes de que la biblioteca evalúe el consentimiento del usuario mediante resolve_trust_remote_code(), el mecanismo trust_remote_code pensado para impedir la ejecución de código no aprobado. El CERT/CC señala que la ejecución en sí se bloquea correctamente si el usuario la rechaza; lo que resulta incondicional es la escritura inicial en disco. La causa raíz es una copia de archivo incondicional dentro de dynamic_module_utils.py, un comportamiento distinto al de las demás rutas de carga dinámica de la biblioteca —AutoConfig, AutoModel, AutoTokenizer y AutoImageProcessor— que sí verifican el consentimiento antes de obtener o escribir nada.
- Aunque el usuario rechace la ejecución en el aviso de confianza, el archivo permanece guardado en la caché local
- El autor de un repositorio de modelos malicioso puede colocar cualquier código Python en custom_generate/generate.py
- Basta con intentar cargar el modelo para que se produzca la escritura, sin privilegios elevados ni acción adicional del usuario
- En entornos donde la caché se reutiliza, un archivo malicioso ya guardado podría ejecutarse sin querer durante una carga posterior considerada de confianza
Sin parche todavía, solo una recomendación provisional
El fallo fue reportado por el investigador de seguridad Prasanna Dabi. El CERT/CC afirma haber notificado a Hugging Face el 4 de agosto de 2026; a fecha de publicación del aviso, el 1 de septiembre, la empresa no había emitido ninguna declaración, y su estado de proveedor figura como 'Unknown' en el expediente. Mientras no haya una corrección, tanto el CERT/CC como el JVN recomiendan evitar llamar a load_custom_generate() sobre repositorios de modelos no confiables, e inspeccionar periódicamente el directorio ~/.cache/huggingface/modules para eliminar cualquier archivo inesperado.
El CERT/CC también señala que la copia inicial del archivo no puede deshacerse una vez realizada: el mecanismo trust_remote_code bloquea correctamente la ejecución del código si el usuario la rechaza, pero nada elimina el archivo ya escrito en disco. El aviso recomienda además, como principio general de diseño, que cualquier verificación de tipo trust_remote_code se produzca antes de obtener o escribir cualquier contenido remoto, un requisito que la función afectada no cumple actualmente. El código fuente de la biblioteca es público en GitHub, donde el repositorio huggingface/transformers sigue siendo, por ahora, el único canal oficial para seguir el estado de la corrección.
El aviso atribuye el hallazgo al investigador de seguridad Prasanna Dabi y señala al analista del CERT/CC Bob Kemerer como redactor del documento. Transcurrió menos de un mes entre la notificación privada a Hugging Face, el 4 de agosto, y la publicación del aviso, el 1 de septiembre, un plazo durante el cual, según el calendario de divulgación coordinada del CERT/CC, la empresa no dio ninguna respuesta.
El CERT/CC forma parte del Software Engineering Institute de la Universidad Carnegie Mellon y funciona con el respaldo de la Cybersecurity and Infrastructure Security Agency (CISA), la agencia federal estadounidense de ciberseguridad.
La ejecución del módulo está correctamente bloqueada, pero la escritura inicial del archivo es incondicional, un comportamiento distinto al de otras rutas de carga dinámica de módulos en la biblioteca.
Qué cambia para un equipo de desarrollo hispanohablante
Para cualquier equipo que construya pipelines de IA sobre Hugging Face Transformers —desde una startup hasta un banco o una universidad—, este fallo es una tarea de revisión inmediata, no una alerta más para ignorar. Conviene localizar todas las llamadas a load_custom_generate() en el código y en los pipelines de CI/CD, confirmar que ninguna apunta a repositorios de modelos sin verificar, y revisar el directorio ~/.cache/huggingface/modules en máquinas de desarrollo y servidores de compilación en busca de archivos Python inesperados. Hasta que llegue un parche oficial, fijar la versión de la biblioteca en producción y documentar un procedimiento de revisión de la caché es la medida más fiable disponible.
Fuentes
- 「Hugging Face Transformers」に脆弱性、ユーザーの同意前にPythonファイルを保存INTERNET Watch · 2 de septiembre de 2026
- VU#456290 - Hugging Face Transformers library writes remote code to disk prior to consent checkCERT Coordination Center (CERT/CC) · 1 de septiembre de 2026



