Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-19478 — Обнаруживает CVE-2026-19478 в GitLab CE/EE с помощью неразрушающего шаблона Nuclei, который запускает вызов метода резервного поля GraphQL через touch и подтверждает уязвимые экземпляры без деструктивных вызовов. | Kitploit
Инструменты/GitHubGitHub/renzi25031469/cve-2026-19478
Сканеры веб-уязвимостейАнализ уязвимостейЭксплуатация веб-приложенийТестирование безопасности APIСбор информацииВеб-безопасностьТестирование на Проникновение
GitHub
renzi25031469/cve-2026-19478

CVE-2026-19478

Обнаруживает CVE-2026-19478 в GitLab CE/EE с помощью неразрушающего шаблона Nuclei, который запускает вызов метода резервного поля GraphQL через touch и подтверждает уязвимые экземпляры без деструктивных вызовов.

Репозиторий
1621 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-19478 — произвольный вызов метода через резервное поле GraphQL в GitLab — шаблон обнаружения Nuclei

CVE Severity Nuclei Target License

CVE-2026-19478 — шаблон Nuclei

Неразрушающий шаблон обнаружения Nuclei для CVE-2026-19478 — критической (CVSS 9.4) неаутентифицированной уязвимости произвольного вызова методов в GraphQL API GitLab, исправленной GitLab 17 августа 2026 года.

TL;DR

Схема GraphQL в GitLab поддерживает директиву @gl_introduced(version: "X.Y.Z"), которая ограничивает поле минимальной версией GitLab. Когда директива ссылается на версию , чем у запущенного экземпляра, GitLab генерирует для (иначе неизвестного) имени поля. Этот резервный резолвер вызывает напрямую на базовом Ruby-объекте — , и других — .

новее
резервное поле
object.public_send(method_name)
Project
User
без повторной проверки авторизации

Результат: неаутентифицированный злоумышленник, имеющий доступ к /api/graphql и знающий fullPath любого публичного проекта (или имя пользователя любого публичного профиля), может вызывать любой публичный метод без аргументов этого объекта. Это включает методы только для чтения, такие как touch, а также разрушительные, например destroy / delete, и изменяющие состояние, такие как deactivate / block / ban.

Шаблон из этого репозитория вызывает только touch (обновляет updated_at, возвращает true) — см. Безопасность ниже.

Затронутые версии

ЛинейкаЗатронутоИсправлено
18.2.x – 18.11.x>= 18.2, < 18.11.1118.11.11
19.0.x< 19.0.819.0.8
19.1.x< 19.1.619.1.6
19.2.x< 19.2.419.2.4

Только self-managed GitLab CE/EE — GitLab.com и GitLab Dedicated не были затронуты.

Безопасность

Этот шаблон намеренно «обезврежен» для сканирования парков серверов, на тестирование которых у вас есть разрешение:

  • Он вызывает только touch через резервное поле (метод ActiveRecord, который просто обновляет updated_at и возвращает true).
  • Он никогда не вызывает destroy, delete, deactivate, block или ban — все они достижимы через ту же ошибку и действительно разрушительны.
  • Обнаружение носит оппортунистический характер: он перечисляет один публичный проект через REST API и, если ни один не виден, переключается на проверку профиля пользователя root по умолчанию. Если ни то, ни другое недоступно, он просто сообщает «не обнаружено», а не гадает.

Не используйте GraphQL-запрос из этого шаблона для вызова изменяющих состояние методов против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения.

Как работает обнаружение

ШагЗапросНазначение
1GET /api/v4/projects?visibility=publicНайти публичный проект в качестве безвредной цели
2POST /api/graphql — touch @gl_introduced(version: "999.0.0") для этого проектаЗапустить резолвер резервного поля; уязвимый экземпляр возвращает "touch": true
3 (запасной)POST /api/graphql — тот же запрос к user(username: "root")Используется, только если в шаге 1 не найден ни один публичный проект

Исправленный экземпляр сразу отклоняет неизвестное поле ("... doesn't exist on type ..."), поэтому матчер шаблона требует положительный сигнал touch и отсутствие этого сообщения об отклонении.

Использование

root@kitploit:~
# single target
nuclei -t CVE-2026-19478.yaml -u https://gitlab.example.com

# validate the template itself
nuclei -t CVE-2026-19478.yaml -validate

# a list of targets, JSON output
nuclei -t CVE-2026-19478.yaml -l targets.txt -j -o results.json

Требуется nuclei v3 (в этом шаблоне используется блок протокола http: и jq-подобный извлекатель json, появившиеся в шаблонном движке v3; на nuclei v2.x он не загрузится).

Пример вывода

root@kitploit:~
[CVE-2026-19478] [http] [critical] https://gitlab.example.com/api/graphql

Устранение

Обновитесь до 18.11.11, 19.0.8, 19.1.6 или 19.2.4 (или более поздней версии). Полный бюллетень см. в примечаниях GitLab к выпуску патча 19.2.4.

Ссылки

  • Примечания GitLab к выпуску патча 19.2.4
  • The Hacker News — Критическая уязвимость GitLab GraphQL могла позволить неаутентифицированным злоумышленникам удалять публичные проекты
  • Rescana — технический разбор CVE-2026-19478
  • PoC (davkharrr/CVE-2026-19478-PoC)

Отказ от ответственности

Этот шаблон опубликован в целях защитной безопасности — для сканирования инфраструктуры, которой вы владеете или на тестирование которой у вас есть явное разрешение. Запуск его (или связанного PoC) против систем без авторизации незаконен в большинстве юрисдикций. Автор не несёт ответственности за неправомерное использование.

Лицензия

MIT

Скачать инструмент