GitLab выдаёт пользователям персональный почтовый адрес для создания задач. Адрес содержит постоянный токен с префиксом glimt-, который платформа использует для аутентификации. Получивший такой адрес может создавать задачи и запросы на слияние от имени владельца.
Токен встроен в адрес для каждого проекта, но работает шире. При переходе между проектами меняются только части адреса, относящиеся к конкретному проекту, тогда как сам токен остаётся одинаковым. Его полномочия распространяются на все проекты, к которым имеет доступ учётная запись.
Для смены кода вместо создания задачи достаточно заменить в адресе суффикс issue на merge-request. GitLab принимает в письме файлы .patch и применяет изменения к ветке, название которой указано в теме. Если владелец токена вправе отправлять коммиты в эту ветку, GitLab добавит изменения от его имени.
В тесте специалисты Aikido Security указали в теме письма main, приложили файл .patch и успешно добавили коммит в основную ветку частного проекта. Если изменения затрагивают .gitlab-ci.yml, можно таким же способом запустить CI/CD-код и попытаться получить доступ к переменным и секретам.
Почтовая отправка обходит сетевые ограничения, которые администраторы устанавливают на IP-адреса. В тестовом проекте разрешили доступ только с одного чужого IP: веб-интерфейс и git clone перестали работать, но письмо GitLab принял. В документации платформы указано, что входящая почта не подпадает под IP-фильтры.
Возможности атаки зависят от роли владельца адреса. Гость может почти ничего не сделать с кодом, а Maintainer получит доступ к защищённым веткам и чувствительным данным CI/CD. Для атаки на другой проект нужно знать его путь и идентификатор.
В открытой документации и README проектов Aikido нашла около дюжины действующих адресов. Часть разработчики публиковали специально как контакты для сообщений об ошибках. Перед публикацией исследования команда предупредила владельцев. О реальных атаках через такой механизм не известно.
О проблеме сообщили через HackerOne в мае 2026 года, но закрыли как предусмотренное поведение. После отдельного обращения в июне GitLab скорректировала интерфейс и документацию: убрала утверждение о невозможности доступа к другим данным и описала исключение для IP-фильтра. Сам механизм остался прежним.
Находка касается всех аккаунтов GitLab.com и самостоятельно развёрнутых инсталляций с включённой входящей почтой. Если адрес попал наружу, рекомендуется сбросить incoming email token и искать такие адреса в репозиториях как обычные секреты.
