В графовой базе данных Dgraph обнаружили критическую уязвимость CVE-2026-34976. Проблема затрагивает административную GraphQL-операцию restoreTenant: она оказалась доступна без аутентификации, хотя другие похожие административные действия в системе защищены проверками доступа. В GitHub Advisory уязвимость получила максимальную оценку — 10.0 по шкале CVSS.

Мутация restoreTenant, предназначенная для восстановления данных арендатора или пространства имён из резервной копии, не была включена в список административных операций, для которых Dgraph применяет защитные промежуточные проверки. В результате запрос доходил до обработчика напрямую: без проверки токена и прав администратора, без ограничения по IP и даже без журналирования на этом этапе.
По данным GitHub Advisory, уязвимость позволяет перезаписать содержимое базы, читать файлы на стороне сервера через file://, а также использовать сервер как промежуточную точку для SSRF-атак — то есть для обращений к внутренним ресурсам от имени уязвимого узла. В описании отдельно сказано, что операция принимала управляемые атакующим адреса источников резервной копии, включая S3/MinIO, пути к файлам ключей шифрования и пути к файлам учётных данных Vault.
Проблема затрагивает несколько веток проекта. Уязвимы версии пакета github.com/dgraph-io/dgraph до 1.2.8 включительно, ветка v24 до 24.0.5 включительно и ветка v25 до 25.3.0 включительно. Исправление указано только для ветки v25: безопасной названа версия 25.3.1. Для двух более старых веток в карточке advisory на момент публикации патч не указан.
У Dgraph административный GraphQL-интерфейс /admin работает на порту 8080, и сама документация относит restoreTenant к административным мутациям этого интерфейса. Там же сказано, что административные операции в норме должны быть защищены механизмами аутентификации и сетевыми ограничениями.
Административные конечные точки Dgraph защищены тремя уровнями: ограничением по IP-адресам, токеном X-Dgraph-AuthToken и, при включённом ACL, JWT-токеном администратора из группы Guardians. Для /admin это правило должно действовать на все запросы, кроме login. На фоне этих правил отсутствие защиты у restoreTenant выглядит особенно серьёзно: фактически одна административная операция выпала из общего контура защиты.
Что исследователи советуют делать администраторам Dgraph прямо сейчас:
-
обновиться до 25.3.1, если используется ветка v25; проверить, не открыт ли административный интерфейс /admin извне;
-
ограничить доступ к порту 8080 на уровне сети; включить и перепроверить токен защиты административных операций;
-
отдельно просмотреть журналы и признаки несанкционированных восстановлений из резервных копий.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.