Gitea устранила масштабную цепочку уязвимостей проверки прав в версии 1.26.2

Gitea

Разработчики платформы для совместной разработки программного обеспечения Gitea выпустили внеочередное обновление 1.26.2, которое закрывает сразу восемь подтверждённых уязвимостей. Этот релиз представляет особый интерес не только количеством исправлений, но и характером обнаруженных проблем: большинство из них связано с некорректной проверкой прав доступа при выполнении ключевых операций. В результате атакующий мог получить несанкционированный доступ к репозиториям, артефактам сборки или системным данным.

Детали уязвимостей

Обновление затронуло практически все критические компоненты Gitea. Самая серьёзная уязвимость, получившая идентификатор CVE-2026-27783, была обнаружена исследователем под псевдонимом hoangperry. Проблема заключалась в том, что система неверно трактовала права на чтение. Злоумышленник мог получить доступ к репозиториям, на просмотр которых у него не было разрешения. Инженер lunny, отвечающий за исправление, изменил логику проверки прав во время выполнения запроса.

Другая уязвимость, CVE-2026-25714, оказалась не менее опасной. Исследователь Medoedus выяснил, что фильтрация публичных токенов в API-запросах (программных интерфейсах приложения) работала некорректно. Система не всегда проверяла, что токен действительно предоставляет доступ только к публичным данным. Это позволяло атакующему использовать чужой токен для просмотра приватной информации. Исправление унифицировало логику фильтрации, сделав её единообразной для API и для проверки доступа к репозиториям.

Особого внимания заслуживает группа уязвимостей, связанных с протоколом OAuth (протоколом авторизации, позволяющим делегировать доступ сторонним приложениям). Сразу два отчёта - CVE-2026-20706 и CVE-2026-28699 - указывали на то, что система пропускала проверку области действия токена. Иными словами, приложение, получившее доступ к учётной записи с ограниченными правами, могло выполнять операции, выходящие за рамки выданного разрешения. Кроме того, разработчики усилили проверку PKCE (механизма защиты от перехвата авторизационного кода) и защиты от повторного использования токенов обновления.

Уязвимость CVE-2026-27771 касалась системы управления пакетами программного обеспечения. Исследователь NoScope обнаружил, что метки, предназначенные для приватных и внутренних пакетов, не работали должным образом. Более того, проверка прав доступа к исходному коду пакетов Composer (менеджера зависимостей для языка PHP) была неполной. В результате пакеты, помеченные как приватные, могли быть видны пользователям, не имеющим на это права.

Отдельный блок исправлений относится к работе с git-репозиториями (распределённой системой управления версиями) и LFS-объектами (Large File Storage - системой хранения больших файлов). Уязвимость CVE-2026-28744, обнаруженная ohxorud-dev, показывала, что протокол Smart HTTP неправильно обрабатывал область действия запроса. Злоумышленник мог отправить специально оформленный HTTP-запрос и получить доступ к данным, которые должен был видеть только владелец репозитория. Исправление затронуло момент непосредственного выполнения запроса, а не только начальную проверку подлинности.

В том же ключе была исправлена уязвимость, связанная с записью в вики-страницы и LFS-токенами. Ранее система проверяла права на выполнение таких операций при создании сессии, а не в момент самого действия. Это оставляло окно для атаки, если права пользователя изменялись после начала сессии. Теперь проверка проводится для каждого конкретного запроса.

Стоит отметить, что команда Gitea также обновила сторонние зависимости. Версия библиотеки go-git/go-git была повышена до 5.19.0 - это необходимо для устранения известных уязвимостей в самой библиотеке. Кроме того, обновлён компонент визуализации диаграмм Mermaid до версии 11.15.0, которая закрывает проблемы безопасности. Разработчики также добавили E2E-тест (сквозной тест, проверяющий работу системы целиком) для предотвращения регрессий в будущем.

К каким последствиям могли привести эти уязвимости? В первую очередь к утечке исходного кода приватных репозиториев. Для коммерческих организаций, использующих Gitea для внутренней разработки, это означало бы раскрытие интеллектуальной собственности. Во вторую очередь - к компрометации пайплайнов непрерывной интеграции. Уязвимость в проверке прав на артефакты сборки могла позволить злоумышленнику подменить бинарные файлы, внедрив вредоносный код. Эксплойты (программы, реализующие атаку) для этих уязвимостей относительно просты в реализации, что делает применение патча критически важным.

Разработчики Gitea рекомендуют всем пользователям немедленно обновить свои инсталляции до версии 1.26.2. Процесс обновления стандартен: достаточно заменить бинарные файлы или образы контейнеров и перезапустить службы. Отдельной миграции базы данных не требуется. Важно отметить, что все перечисленные уязвимости были обнаружены внешними исследователями безопасности, что говорит о зрелости процесса приёма отчётов о проблемах в проекте. Авторы поблагодарили hoangperry, Medoedus, geoo115, NoScope, ohxorud-dev, Wesley Colquitt из ByteShyftStudios LLC и Arvin Shivram из Brutecat Security за ответственное раскрытие информации.

Ссылки

Комментарии: 0