Потребителите на Gitea се призовават незабавно да актуализират системата си, след като беше оповестена критична уязвимост, позволяваща на токени за достъп, ограничени само до публични хранилища, косвено да извършват запис в частни клонове на заявки за изтегляне (pull requests) и да задействат скрити процеси в Gitea Actions.

Проблемът се проследява под идентификатор CVE-2026-58443 и засяга версии на Gitea до v1.26.4 включително, като уязвимостта е отстранена във версия v1.27.0. Дефектът се съдържа в крайната точка на API за обновяване на заявки за изтегляне:

POST /api/v1/repos/{public-owner}/{public-repo}/pulls/{index}/update

Токен с права, ограничени само до публични хранилища (с обхват write:repository), не би трябвало да има възможност за достъп или промяна на частно хранилище.

Въпреки това, атакуващите могат да използват маршрута за публична заявка за изтегляне, за да внесат промени от публично основно хранилище към частен целеви клон. Това води до заобикаляне на оторизацията, тъй като Gitea валидира ограниченията на токена спрямо публичното основно хранилище, посочено в API маршрута.

Въпреки че по-късно приложението проверява достъпа до частното целево хранилище чрез стандартните права за достъп на потребителския профил, то не прилага отново активното ограничение на токена за „само публичен достъп“. По този начин токен, който би се провалил при опит за директен запис в частно хранилище, все пак може да модифицира частен клон чрез функцията за обновяване на заявка за изтегляне.

Според официалния бюлетин за сигурност от GitHub (GHSA-xxjv-752h-3vp2), уязвимостта е оценена като критична с CVSS оценка от 9.6 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H). Това означава, че тя може да бъде експлоатирана отдалечено с ниски привилегии и без необходимост от взаимодействие с потребителя, като засяга основно целостта и наличността на системата.

Изследователи по киберсигурност демонстрираха, че атакуващ може първо да създаде съдържание в публично базисно хранилище, след което да извика уязвимата API точка за обновяване на заявка за изтегляне, насочена към частен клон. Gitea ще слее или ребазира комитите от публичното хранилище в частния клон на сървърно ниво. Проблемът става още по-сериозен, когато в частното хранилище е активирана услугата Gitea Actions.

Успешният запис на сървъра може да задейства автоматизирани работни процеси (workflows), конфигурирани за събития от тип push в частното хранилище. В представената концептуална доказателствена атака (PoC), инжектираният код стартира съответстващ частен работен процес, създавайки ActionRun и свързана с него задача.

За извършване на атаката е необходим валиден токен за публичен достъп с права за запис в хранилището. Потребителският профил, свързан с този токен, също трябва да притежава стандартни права за запис в частния клон на заявката за изтегляне. Освен това е необходимо наличието на публично базово хранилище и съществуваща заявка за изтегляне, която позволява обновления от базовия клон към частния.

Това означава, че уязвимостта не осигурява анонимен достъп до частни хранилища. Тя обаче подкопава важна граница за сигурност при използването на токени. Организациите често издават токени само за публичен достъп с цел да ограничат последиците при случайно разкриване или злоупотреба при автоматизация. Тази уязвимост позволява на такъв ограничен токен да извърши запис в частно хранилище при определени условия.

Администраторите на Gitea трябва незабавно да преминат към версия v1.27.0. Докато се инсталират корекциите за сигурност, се препоръчва преглед на всички токени за публичен достъп с права за запис, ограничаване на възможностите за обновяване на заявки за изтегляне и одит на връзките между публични и частни разклонения (forks) и заявки за изтегляне.

Екипите трябва също така да инспектират логовете на Actions за неочаквани работни процеси, задействани от push събития в частни хранилища, като обърнат специално внимание на процеси, инициирани след активност по API за обновяване на заявки за изтегляне от публични базисни хранилища.

Уязвимостта е класифицирана като CWE-863 (Неправилна оторизация). За откриването и докладването на проблема е посочен изследователят ohxorud-dev, а бюлетинът е публикуван от bircni.