Угрозы

В Dgraph нашли уязвимость на 10 из 10: атакующему не нужен даже логин

Маша Даровская
By Маша Даровская , IT-редактор и автор
· Обновлено: 7 апреля 2026
В Dgraph нашли уязвимость на 10 из 10: атакующему не нужен даже логин
Обложка © Anonhaven

В графовой базе данных 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 на уровне сети; включить и перепроверить токен защиты административных операций;

  • отдельно просмотреть журналы и признаки несанкционированных восстановлений из резервных копий. 

Есть новость? Станьте автором.

Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.

Вопросы по теме

Что произошло?
В Dgraph нашли критическую уязвимость CVE-2026-34976: административная операция restoreTenant выполнялась без аутентификации.
Насколько это серьёзно?
Очень серьёзно. Уязвимость получила 10.0 по CVSS, то есть максимальную оценку опасности.
Что может сделать атакующий?
Перезаписать базу, читать файлы на сервере и использовать сервер для SSRF-запросов к внутренним ресурсам.
Нужен ли логин или токен?
Нет. В этом и состоит суть ошибки: операция могла выполняться без обычных проверок доступа.
Какие версии затронуты?
Затронуты github.com/dgraph-io/dgraph до 1.2.8, ветка v24 до 24.0.5 и ветка v25 до 25.3.0 включительно
Какая версия исправлена?
В advisory исправленной указана версия 25.3.1 для ветки v25.
Где расположен уязвимый интерфейс?
Речь идёт об административном GraphQL-интерфейсе /admin на порту 8080 у узла Dgraph Alpha.
Что проверить в первую очередь?
Обновление до безопасной версии, доступность /admin из внешней сети, настройки токенов и логи возможных восстановлений. Это самые очевидные шаги исходя из механики ошибки.