CERT/CC опубликовал примечание об уязвимости VU#456290 1 сентября, посвящённое CVE-2026-80047 в Hugging Face Transformers. По словам самого примечания, библиотека «выполняет удалённую загрузку модуля и локальную запись в кеш до оценки запроса согласия trust_remote_code, нарушая контракт безопасности, действующий в других путях динамической загрузки модулей».

Где порядок операций меняется местами

Затронутый путь — load_custom_generate(), который вызывает get_cached_module_file() для custom_generate/generate.py в репозитории модели. Этот вспомогательный метод копирует файл в локальный HF_MODULES_CACHE. Только после этого вызывается resolve_trust_remote_code(). Все остальные пути загрузки — AutoConfig, AutoModel, AutoTokenizer — запрашивают согласие до обращения к диску.

Что в распространённой трактовке неверно

Это будет описываться как удалённое выполнение кода в Transformers, и сводка NVD сама подталкивает к этому, начиная с «remote Python files». Но само по себе это не RCE: отказ от запроса доверия по-прежнему останавливает выполнение, поскольку get_class_in_module() вызывается после обращения за согласием. Однако отказаться нельзя от появления файла в вашем кеше, где более поздняя доверенная загрузка может столкнуться с ним. Последствие — нежелательная запись, переживающая сессию, в которой пользователь сказал «нет».

Диапазон версий указывает в неверную сторону

В уведомлении затронутый диапазон указан как 4.49.0 through 5.8.1, а массив vulnerabilities в записи GitHub — пустой, то есть исправленная версия не названа. Читать этот потолок как «более новые версии чисты» — ошибка: порядок fetch-before-consent не изменился в v5.16.1, выпущенной 26 августа, — на восемь минорных релизов выше верхней границы указанного диапазона. Диапазон фиксирует, где тестирование остановилось, а не где заканчивается ошибка.

Четыре недели без заявления вендора

CERT/CC указывает, что Hugging Face был уведомлён 4 августа, и на момент публикации 1 сентября статус вендора обозначен как Unknown со строкой «We have not received a statement from the vendor.» Балл также не опубликован — ни GitHub, ни CERT/CC не назначают CVSS. Разрыв в 28 дней между уведомлением и публикацией при отсутствии ответа вендора — это часть истории раскрытия, стоящая рядом с технической стороной.