CVE: CVE-2026-100692
Продукт: Debian
Дата публикации: 26.09.2026
Критичность: HIGH
CVSS: 8.7 (4.0)
EPSS: нет данных; процентиль нет данных
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В Debian отслеживается CVE-2026-100692 для пакета hugo. Ошибка касается версий Hugo после v0.123.0 и до v0.166.0, где проверка изоляции симлинков останавливалась на самом корне монтирования.
Это позволяло файлам за симлинком читаться во время сборки сайта и попадать в public/ через статические монтирования.
В Debian статусы различаются по релизам: bookworm и sid отмечены как resolved, forky и trixie — open.
Основные характеристики
Риск связан с нарушением локальной изоляции путей при сборке статического сайта Hugo. Симлинк в корне монтирования мог вести наружу, а файлы за ним читались и публиковались без ограничения на локальность пути.
- Тип ошибки: CWE-59 — Path Traversal
- CVSS v4.0:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X, оценка 8.7, severity HIGH
- Условие атаки: локальный доступ к системе с установленным Hugo и конфигурацией сборки, где используются темы или модули из themes/ или vendored modules
- Факт эксплуатации: в источниках не подтверждена реальная эксплуатация; статус CVE — Undergoing Analysis
- EPSS: нет данных
Какие продукты и версии затронуты
В Debian затронут пакет hugo.
По данным Debian Security Tracker:
- bookworm: resolved, версия в репозитории
0.111.3-1
- forky: open, версия в репозитории
0.165.0-3
- sid: resolved, fixed_version
0.166.0-1, версия в репозитории0.166.0-2
- trixie: open, версия в репозитории
0.131.0-1
В исходном описании CVE указаны версии Hugo после v0.123.0 и до v0.166.0.
Официальный трекер: Debian Security Tracker — CVE-2026-100692.
NVD: CVE-2026-100692.
Причина уязвимости
Hugo проверял, что источник темы или модуля находится в пределах разрешённой области монтирования. Проверка останавливалась на самом корне монтирования.
Если в теме или vendored module был симлинк именно в корне монтирования, например
themes/mytheme/assets -> /some/dir/outside, проверка не блокировала выход за пределы корня. Файлы по адресу цели симлинка считались доступными во время сборки через функции вроде resources.Get и resources.Match.Такие файлы могли попадать в
public/ через статические монтирования, что обходило правило: источники тем и модулей должны быть локальными путями.Модули, получаемые через Go modules, не затронуты, потому что архивы Go modules не содержат симлинков. Для основного проекта это не является эскалацией, так как конфигурация может уже использовать абсолютные пути монтирования.
Как работает атака
Атака строится на том, что Hugo до v0.166.0 разрешал симлинк в корне монтирования темы или модуля.
Путь данных выглядит так:
- пользователь или процесс запускает сборку сайта Hugo;
- конфигурация подключает тему из
themes/или vendored module;
- внутри этой структуры находится симлинк, указывающий на каталог вне ожидаемой области сборки;
- при выполнении функций чтения ресурсов Hugo следует по симлинку и читает файлы из целевого каталога;
- через статические монтирования эти файлы могут быть опубликованы в
public/.
Нарушается граница доверия: система считает, что источник остаётся локальным и ограниченным корнем, хотя фактически данные берутся из произвольного пути.
Уровень подтверждения:
- подтверждено описание механизма из CVE;
- не подтверждено наличие публичного эксплойта или реальных инцидентов эксплуатации в предоставленных источниках.
Условия успешной эксплуатации
Для реализации описанного поведения нужны следующие условия.
- установлен и запущен Hugo версии после v0.123.0 и до v0.166.0;
- есть доступ к системе или окружению, где выполняется сборка сайта;
- в проекте используются темы из
themes/или vendored modules;
- в структуре темы или модуля присутствует симлинк в корне монтирования, ведущий наружу ожидаемой области сборки;
- конфигурация Hugo включает статические монтирования, способные опубликовать ресурсы в
public/.
Дополнительно:
- доступ к Go module cache не является условием для этой ошибки; модули из Go modules не содержат симлинков и не дают такого пути;
- абсолютные пути могут уже использоваться конфигурацией Hugo, поэтому выход за пределы корня не всегда является нарушением доверия в контексте основного проекта.
Если нет доступа к системе или процессу сборки, описанный сценарий не реализуется.
Возможный сценарий атаки
Сценарий привязан к локальной сборке статического сайта.
Администратор или разработчик использует Hugo для публикации сайта. В проекте подключена тема из
themes/. Внутри темы есть симлинк, например в подкаталоге, который Hugo воспринимает как корень монтирования. Цель симлинка указывает на каталог вне проекта.Во время сборки Hugo вызывает функции чтения ресурсов. Функции читают файлы по цели симлинка. Если эти файлы попадают в статическое монтирование, они могут быть опубликованы в
public/.Результат: нарушается изоляция путей при сборке. Файлы из внешнего каталога становятся доступны как часть результата сборки.
В предоставленных источниках нет подтверждения, что такой сценарий использовался против конкретных систем или приводил к компрометации данных в реальных инцидентах.
Есть ли публичный эксплойт
В предоставленных источниках не указано наличие публичного эксплойта.
Статус CVE — Undergoing Analysis. В описании есть техническое описание механизма и workaround, но нет указания на готовый рабочий payload, reverse shell, обход авторизации или подтверждённую эксплуатацию.
Отсутствие сведений в источниках не означает, что эксплойт отсутствует. Это значит, что по доступным данным статус публичного эксплойта не раскрыт.
Для проверки актуального статуса можно смотреть официальные ссылки:
Признаки эксплуатации
Специфичных IOC для этой уязвимости в источниках не подтверждено.
Ниже приведены общие точки контроля, которые можно использовать как неспецифичные признаки аномалии при сборке Hugo.
- появление файлов в
public/, которых нет ни в исходной теме, ни в ожидаемых статических каталогах;
- неожиданные ссылки на внешние пути в результатах сборки или в логах Hugo;
- симлинки в
themes/или vendored modules, чьи цели выходят за пределы проекта;
- изменения в файловой системе во время сборки, не связанные с ожидаемым выводом сайта;
- процессы Hugo, читающие файлы из каталогов вне корня проекта.
Эти признаки не являются подтверждёнными маркерами CVE-2026-100692. Они подходят для общей проверки аномалий в окружении сборки статических сайтов.
Как обнаружить атаку
Для обнаружения можно использовать комбинацию проверок конфигурации, файловой системы и журналов.
Проверки:
- поиск симлинков в
themes/и vendored modules с целями вне корня проекта;
- сравнение содержимого
public/до и после сборки Hugo;
- анализ логов Hugo на обращения к неожиданным путям;
- аудит конфигурации Hugo на статические монтирования, которые публикуют ресурсы из тем или модулей.
Команды для проверки версий и пакетов:
Bash:
cat /etc/debian_version
Bash:
cat /etc/os-release
Bash:
apt-cache policy <имя-пакета>
Bash:
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Замените
<имя-пакета> на имя проверяемого пакета, например hugo.Для проверки конкретного пакета Hugo:
Bash:
apt-cache policy hugo
Bash:
dpkg-query -W -f='${Package} ${Version}\n' hugo
Как проверить свою версию
Проверка версии в Debian выполняется через пакетные утилиты.
Команды:
Bash:
cat /etc/debian_version
Bash:
cat /etc/os-release
Bash:
apt-cache policy <имя-пакета>
Bash:
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Замените
<имя-пакета> на имя пакета. Для Hugo:
Bash:
apt-cache policy hugo
Bash:
dpkg-query -W -f='${Package} ${Version}\n' hugo
Сравните полученную версию с данными Debian Security Tracker.
Версии, требующие внимания по данным CVE: после v0.123.0 и до v0.166.0.
Статусы по релизам Debian:
- bookworm: resolved,
0.111.3-1
- forky: open,
0.165.0-3
- sid: resolved,
0.166.0-2, fixed_version0.166.0-1
- trixie: open,
0.131.0-1
Исправление
Основное исправление — обновление Hugo до v0.166.0.
В Debian:
- для bookworm статус resolved; в репозитории доступна версия
0.111.3-1;
- для sid статус resolved; fixed_version
0.166.0-1, в репозитории0.166.0-2;
- для forky и trixie статус open, исправления ещё не назначены.
Команды обновления:
Bash:
apt update
Bash:
apt upgrade hugo
Если пакет не обновляется из основного репозитория, проверьте доступные версии:
Bash:
apt-cache policy hugo
Для ручного контроля версий:
Bash:
dpkg-query -W -f='${Package} ${Version}\n' hugo
Временные меры защиты
Пока нет исправления в конкретном релизе Debian, можно использовать временные меры.
- проверить
themes/и vendored modules на наличие симлинков в корнях монтирования перед сборкой;
- заменить симлинки на явные монтирования или на обычные каталоги с ожидаемым содержимым;
- ограничить доступ к каталогам, которые могут быть подключены как темы или модули;
- отключать статические монтирования, если они не нужны для текущей сборки;
- проводить сборку Hugo в изолированном окружении без доступа к чувствительным каталогам.
Команда для поиска симлинков:
Bash:
find themes -type l
Для vendored modules:
Bash:
find vendor -type l
Проверка целей симлинков:
Bash:
find themes -type l -exec readlink -f {} \;
Bash:
find vendor -type l -exec readlink -f {} \;
Как проверить устранение уязвимости
После обновления нужно подтвердить, что версия Hugo соответствует исправленной.
Команды:
Bash:
dpkg-query -W -f='${Package} ${Version}\n' hugo
Bash:
apt-cache policy hugo
Проверить статус релиза в Debian Security Tracker: Debian Security Tracker — CVE-2026-100692.
Для bookworm и sid статус resolved. Для forky и trixie нужно следить за обновлениями.
Дополнительная проверка:
Bash:
find themes -type l
Bash:
find vendor -type l
Если после обновления симлинки в корнях монтирования больше не приводят к чтению внешних файлов, это подтверждает срабатывание исправления. Точное подтверждение поведения Hugo можно получить только через тестовую сборку в контролируемом окружении.
Вывод
CVE-2026-100692 затрагивает Hugo в Debian и связан с нарушением изоляции путей при сборке статического сайта.
Ошибка позволяет симлинку в корне монтирования темы или модуля вести наружу ожидаемой области сборки. Файлы за таким симлинком читаются Hugo и могут публиковаться в
public/ через статические монтирования.В Debian статусы различаются: bookworm и sid resolved, forky и trixie open. Для систем на forky и trixie нужно следить за обновлениями или применять временные меры.
Основные действия:
- обновить Hugo до v0.166.0;
- проверить версии пакетов через
apt-cache policyиdpkg-query;
- удалить или заменить симлинки в корнях монтирования тем и модулей;
- ограничить доступ к чувствительным каталогам во время сборки.
В предоставленных источниках нет подтверждения реальных инцидентов эксплуатации и нет данных о публичном эксплойте.
Официальные источники
История обновлений статьи
- 27.09.2026 — Опубликована первая версия материала.
- 28.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
- 28.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
