Исследователи безопасности из SonarSource
уязвимости в цепочках поставок PHP-репозиториев Packagist. Они утверждают, что злоумышленник может долго пользоваться брешами и закрепляться в системе, а также использовать бэкдор при каждом обновлении пакета.
Packagist использует диспетчер пакетов PHP Composer для определения и загрузки программных зависимостей, которые разработчики включают в свои проекты. Уязвимость внедрения команд получила индекс
и оценку по шкале опасности 8,8 из 10. Другая похожая ошибка Composer с индексом
была обнаружена ещё в апреле 2021 года и предполагает выполнение произвольного кода. Она также получила оценку по шкале опасности 8,8 из 10.
Уязвимость выглядит так: киберпреступник, контролирующий репозитории Git или Mercurial, потенциально может использовать специально созданные имена веток для выполнения команд на машине, где выполняется обновление Composer. Далее запросы на обновление пакета могут быть перехвачены для распространения вредоносных зависимостей, что можно сделать с помощью выполнения произвольных команд на внутреннем сервере, где запущен официальный экземпляр Packagist.
Данная брешь бэкэнд-сервисов даёт злоумышленнику возможность загружать программные зависимости с бэкдором всякий раз с новой установкой или обновлением пакета Composer.
По утверждению исследователей, на данный момент нет доказательств использования уязвимости. Однако исправления уже есть: они были добавлены в версии Composer 1.10.26, 2.2.12 и 2.3.5 после того, как SonarSource известил Packagist в апреле 2022 года.
Демонстрация уязвимости CVE-2022-24828: