
Разработчики Packagist, крупнейшего репозитория в экосистеме PHP, устранили критическую уязвимость, которая затрагивала официальный сайт проекта. Эта брешь вполне могла позволить злоумышленнику получить контроль над сервисом.
О недостатке безопасности сообщил исследователь Макс Юстич. По его словам, поле ввода «Submit Package», используемое на главной странице для отправки новых пакетов PHP, позволяло атакующему запустить вредоносную команду в формате «$(MALICIOUS_COMMANDS)».
Основная причина этой проблема крылась в том, что сервис ожидал в этом поле URL-адрес, который бы вел на сервера Git, Perforce, Subversion или Mercurial. Таким образом, Packagist неправильно обрабатывал вводимые символы при проверке этого условного URL.
Это позволяло любому злоумышленнику дважды запустить вредоносную команду — первый раз, когда проверялся репозиторий Perforce, второй раз – когда проверялся репозиторий Subversion. Далее уже все зависело от уровня навыков атакующего, к примеру, он мог легко захватить базовый сервер Packagist.
Юстич уведомил в блоге, что в настоящее время уязвимость устранена.
Packagist является самым крупным хостом для хранения пакетов PHP. В июле 2018 года было зарегистрировано более 435 миллионов пакетов.
На данный момент сама команда Packagist никак не прокомментировала наличие бреши и выпуск патча для нее.