В сервисе непрерывной интеграции Travis CI, предназначенном для тестирования и сборки проектов, разрабатываемых на GitHub и Bitbucket, выявлена проблема с безопасностью (CVE-2021-41077), позволяющая узнать содержимое конфиденциальных переменных окружения публичных репозиториев, использующих Travis CI. В том числе уязвимость позволяет узнать используемые в Travis CI ключи для формирования цифровых подписей, ключи доступа и токены для обращения к API.
Проблема присутствовала в Travis CI с 3 по 10 сентября. Примечательно, что информация об уязвимости была передана разработчикам 7 сентября, но в ответ была лишь получена отписка с рекомендацией использовать ротацию ключей. Не получив должной обратной связи исследователи связались с GitHub и предложили занести Travis в чёрный список. Проблема была устранена лишь 10 сентября после большого числа поступивших жалоб от разных проектов. После инцидента на сайте компании Travis CI был опубликован более чем странный отчёт о проблеме, в котором вместо информирования об исправлении уязвимости, содержалась лишь указанная вне контекста рекомендация циклично менять ключи доступа.
После возмущения сокрытием сведений, высказанным несколькими крупными проектами, в форуме поддержки Travis CI был опубликован более подробный отчёт, в котором предупреждалось, что владелец форка любого публичного репозитория через отправку pull-запроса мог инициировать процесс сборки и получить неавторизированный доступ ко всем переменным окружения исходного репозитория, выставляемым во время сборки на основе полей из файла ".travis.yml" или определяемым через web-интерфейс Travis CI.
В том числе передавались и непубличные переменные окружения, содержащие ключи и токены, используемые для создания цифровых подписей или доступа ко внешним хранилищам, API и сервисам во время сборки. Подобные переменные хранятся в зашифрованном виде и расшифровываются только во время сборки. Проблема касалась только публично доступных репозиториев у которых есть форки (приватные репозитории не подвержены атаке). Напомним, что весной похожая проблема с утечкой закрытых переменных окружения из-за добавления бэкдора в скрипт сервиса Codecov, запускаемого во время сборки в системах непрерывной интеграции, привела к утечке ключей многих компанией и проектов, в том числе атакующие получили доступ к PGP-ключу компании HashiCorp, используемому для верификации релизов.
Проблема присутствовала в Travis CI с 3 по 10 сентября. Примечательно, что информация об уязвимости была передана разработчикам 7 сентября, но в ответ была лишь получена отписка с рекомендацией использовать ротацию ключей. Не получив должной обратной связи исследователи связались с GitHub и предложили занести Travis в чёрный список. Проблема была устранена лишь 10 сентября после большого числа поступивших жалоб от разных проектов. После инцидента на сайте компании Travis CI был опубликован более чем странный отчёт о проблеме, в котором вместо информирования об исправлении уязвимости, содержалась лишь указанная вне контекста рекомендация циклично менять ключи доступа.
После возмущения сокрытием сведений, высказанным несколькими крупными проектами, в форуме поддержки Travis CI был опубликован более подробный отчёт, в котором предупреждалось, что владелец форка любого публичного репозитория через отправку pull-запроса мог инициировать процесс сборки и получить неавторизированный доступ ко всем переменным окружения исходного репозитория, выставляемым во время сборки на основе полей из файла ".travis.yml" или определяемым через web-интерфейс Travis CI.
В том числе передавались и непубличные переменные окружения, содержащие ключи и токены, используемые для создания цифровых подписей или доступа ко внешним хранилищам, API и сервисам во время сборки. Подобные переменные хранятся в зашифрованном виде и расшифровываются только во время сборки. Проблема касалась только публично доступных репозиториев у которых есть форки (приватные репозитории не подвержены атаке). Напомним, что весной похожая проблема с утечкой закрытых переменных окружения из-за добавления бэкдора в скрипт сервиса Codecov, запускаемого во время сборки в системах непрерывной интеграции, привела к утечке ключей многих компанией и проектов, в том числе атакующие получили доступ к PGP-ключу компании HashiCorp, используемому для верификации релизов.