В менеджере пакетов PHP Composer обнаружены две уязвимости высокой степени опасности, которые могут привести к выполнению произвольных команд в системе.
Проблемы связаны с обработкой конфигураций Perforce: системы контроля версий, поддерживаемой Composer. Обе уязвимости относятся к классу command injection.
Первая уязвимость (CVE-2026-40176, оценка 7.8) возникает из-за некорректной проверки входных данных. Злоумышленник может внедрить команды через специально сформированный composer.json, указав репозиторий Perforce с вредоносной конфигурацией. В результате команды выполняются с правами пользователя, запускающего Composer.
Вторая уязвимость (CVE-2026-40261, оценка 8.8) связана с недостаточным экранированием данных. Атакующий может использовать специально сформированную ссылку на исходный код с shell-метасимволами и добиться выполнения произвольных команд.
В обоих случаях выполнение вредоносных команд возможно даже если Perforce не установлен в системе. Уязвимости затрагивают версии Composer:
от 2.3 до 2.9.5 включительно
от 2.0 до 2.2.26 включительно
Исправления выпущены в версиях 2.9.6 и 2.2.27 соответственно. Если немедленное обновление невозможно, рекомендуется проверять содержимое composer.json перед запуском Composer и убедиться, что параметры, связанные с Perforce, содержат корректные значения. Также следует использовать только доверенные репозитории и запускать Composer в проектах из проверенных источников. Дополнительно советуется избегать установки зависимостей через параметр --prefer-dist или настройку preferred-install: dist.
Разработчики Composer сообщили, что просканировали Packagist и не обнаружили признаков эксплуатации этих уязвимостей через публикацию вредоносных пакетов. В качестве меры предосторожности публикация метаданных Perforce была временно отключена на Packagist.
Источник: HN