В Docker-образах платформы Gitea обнаружена критическая уязвимость CVE-2026-20896 с оценкой CVSS 9.8, позволяющая неаутентифицированному злоумышленнику получить доступ к любой учётной записи, включая административную, — без пароля и токена. Уязвимость затрагивает все версии Docker-образов Gitea до 1.26.2 включительно и устранена в версии 1.26.3. По данным компании Sysdig, спустя 13 дней после публичного раскрытия уже зафиксирована активность, связанная с разведкой уязвимых экземпляров, хотя подтверждённых случаев успешной эксплуатации пока нет. Администраторам Gitea, использующим Docker-развёртывание с обратным прокси, необходимо немедленно обновиться.
Техническая суть уязвимости
Корень проблемы — в конфигурационном файле app.ini, который является центральным файлом настроек Gitea, управляющим параметрами сервера, подключениями к базе данных и поведением безопасности. В Docker-образах Gitea этот шаблон жёстко задавал параметр REVERSE_PROXY_TRUSTED_PROXIES = *, что означало доверие к HTTP-заголовку X-WEBAUTH-USER от любого IP-адреса источника.
Документированное безопасное значение этого параметра — 127.0.0.0/8,::1/128, то есть доверие только к localhost. Однако Docker-образ игнорировал это значение по умолчанию, подставляя вместо него подстановочный символ *. Фактически проверка списка доверенных прокси становилась бессмысленной.
Механизм эксплуатации выглядит следующим образом:
- Администратор включает параметр
ENABLE_REVERSE_PROXY_AUTHENTICATION = true, чтобы разместить Gitea за аутентифицирующим обратным прокси - Параметр
REVERSE_PROXY_TRUSTED_PROXIESостаётся со значением по умолчанию (*) - Любой процесс, способный напрямую обратиться к HTTP-порту контейнера Gitea — минуя предполагаемый аутентифицирующий прокси — может отправить произвольный заголовок
X-WEBAUTH-USER - Сервер принимает значение заголовка как имя аутентифицированного пользователя без дополнительной проверки
Как указано в официальном бюллетене безопасности Gitea, очевидными целями становятся административные учётные записи с предсказуемыми именами: admin, gitea_admin и подобные. При включённой автоматической регистрации пользователей злоумышленник может создать учётную запись с именем администратора и получить полные привилегии.
Уязвимость была обнаружена и раскрыта исследователем безопасности Али Мустафой (Ali Mustafa). Публичный репозиторий исследователя содержит детали раскрытия, что указывает на доступность технической информации для воспроизведения атаки.
Затронутые версии и исправление
- Уязвимые версии: Docker-образы Gitea версий до 1.26.2 включительно
- Исправленная версия: 1.26.3 (подстановочный символ
*удалён, аутентификация через обратный прокси переведена в режим явного включения)
Важно подчеркнуть: уязвимость специфична именно для Docker-образов Gitea. Стандартная установка из бинарных файлов использует безопасное значение по умолчанию. Проблема возникла из-за расхождения между документированным поведением и фактической конфигурацией, поставляемой в контейнерном образе.
Наблюдаемая активность
По данным Sysdig, первая активность, связанная с этой уязвимостью, была зафиксирована через 13 дней после публичного раскрытия. Однако следует учитывать, что эта информация основана на единственном источнике и носит характер оперативной телеметрии.
Майкл Кларк, старший директор по исследованию угроз в Sysdig, охарактеризовал наблюдаемую активность как начальную разведку, не перешедшую в стадию эксплуатации. Был зафиксирован IP-адрес 159.26.98[.]241, принадлежащий сервису ProtonVPN. Использование VPN-сервиса не позволяет делать выводы об атрибуции — это может быть как целенаправленная разведка, так и автоматизированное сканирование.
Статус эксплуатации следует классифицировать как сканирование, а не как подтверждённую эксплуатацию в реальных условиях. По оценочным данным, в интернете доступно около 6 200 экземпляров Gitea, хотя эта цифра не подтверждена независимыми измерениями.
Оценка воздействия
Критичность уязвимости определяется несколькими факторами. Gitea широко используется командами разработки как самостоятельно размещаемая альтернатива GitHub и GitLab. Компрометация административного доступа к Gitea открывает путь к модификации исходного кода, внедрению вредоносных коммитов в цепочку поставок программного обеспечения, краже секретов и токенов из репозиториев, а также к латеральному перемещению внутри инфраструктуры организации.
Низкий порог входа для эксплуатации — достаточно отправить один HTTP-заголовок — в сочетании с оценкой CVSS 9.8 и наличием публичных технических деталей делает эту уязвимость приоритетной для немедленного устранения.
Рекомендации
- Немедленное обновление: обновите Docker-образ Gitea до версии 1.26.3 или выше
- Проверка конфигурации: убедитесь, что в файле
app.iniпараметрREVERSE_PROXY_TRUSTED_PROXIESустановлен в127.0.0.0/8,::1/128, а не в* - Аудит сетевого доступа: убедитесь, что HTTP-порт контейнера Gitea недоступен напрямую из интернета и принимает соединения только от доверенного обратного прокси
- Проверка журналов: проанализируйте логи на предмет запросов с заголовком
X-WEBAUTH-USERот IP-адресов, не принадлежащих вашему обратному прокси - Аудит учётных записей: проверьте наличие подозрительных учётных записей, особенно с административными привилегиями, созданных в период уязвимости
Организациям, использующим Docker-развёртывание Gitea с аутентификацией через обратный прокси, необходимо обновить образ до версии 1.26.3 и проверить значение REVERSE_PROXY_TRUSTED_PROXIES в конфигурации. Учитывая наличие публичных технических деталей, оценку CVSS 9.8 и зафиксированное сканирование, окно для безопасного обновления сужается — приоритет устранения должен быть максимальным.