На прошлой неделе в бесплатном ПО GitLab, предназначенном для администрирования Git-репозиториев, была пропатчена критическая уязвимость. Ее эксплуатация влекла исполнение команд и позволяла без аутентификации получить доступ к важным программным файлам, токенам и другой закрытой информации.

Данную брешь обнаружил соучредитель HackerOne Йоберт Абма (Jobert Abma), он сообщил о ней в GitLab через ее программу Bug Bounty. Разработчик создал патч для CVE-2016-9086, который включил в сборку 8.13.3 системы, вышедшую 2 ноября.

Согласно GitLab, уязвимость CVE-2016-9086 относится к виду «обход каталога», она крылась в механизме импорта/экспорта и была вызвана неадекватностью проверки символьных ссылок в архивных tar-файлах пользователей. Как обнаружил Абма, возможность использования символьных ссылок вкупе с особенностями поведения JSON.parse и обработчика ошибок можно использовать для чтения содержимого файла, указанного ссылкой, в сообщении об ошибке импорта.

Таким же образом можно узнать секреты проекта GitLab Rails, токены, создаваемые шелл-кодом для идентификации пользователей, или удаленно запустить код на исполнение, согласно переписке Абмы и GitLab на HackerOne.

gitlab-import-error-message

Функция импорта/экспорта, введенная в GitLab 8.9, лишь недавно стала доступной всем пользователям версии 8.13. Патчи к CVE-2016-9086 выпущены для всех версий системы администрирования, с 8.9 по 8.13, причем как Community Edition, так и Enterprise Edition. Разработчик призывает всех пользователей незамедлительно произвести обновление.

Категории: Уязвимости