Исследователи безопасности нашли уязвимости в цепочках поставок PHP-репозиториев Packagist

Исследователи безопасности из SonarSource
Please, Log in or Register to view URLs content!
уязвимости в цепочках поставок PHP-репозиториев Packagist. Они утверждают, что злоумышленник может долго пользоваться брешами и закрепляться в системе, а также использовать бэкдор при каждом обновлении пакета.



Packagist использует диспетчер пакетов PHP Composer для определения и загрузки программных зависимостей, которые разработчики включают в свои проекты. Уязвимость внедрения команд получила индекс
Please, Log in or Register to view URLs content!
и оценку по шкале опасности 8,8 из 10. Другая похожая ошибка Composer с индексом
Please, Log in or Register to view URLs content!
была обнаружена ещё в апреле 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: