Вийшов Composer 2.10. У новій версії з’явилася вбудована фільтрація шкідливого ПЗ, система налаштування політик залежностей та низка безпекових оновлень для PHP-проєктів.
Про реліз оголосили Stephan Vock та Nils Adermann у блозі Packagist. Ключове нововведення — політика боротьби зі шкідливим ПЗ, яка блокує встановлення небезпечних версій пакетів через Packagist.org.
Composer 2.10 запроваджує механізм Malware Policy для швидкого вилучення шкідливого коду. Це стосується версій, опублікованих хакерами після зламу легітимних пакетів, або недобросовісними розробниками. Помічені версії вилучаються з пулу доступних, тому їх неможливо встановити через
composer update,composer requireабоcomposer create-project. Важливо, що перевірка працює і під часcomposer install: якщо пакет визнали шкідливим уже після створенняcomposer.lock, наступна інсталяція завершиться помилкою. Це запобігає прихованому потраплянню загроз у CI-процеси або на продакшн. Крім того, такі версії виявляєcomposer audit, який за замовчуванням сигналізує про помилку при знаходженні malware.Composer і раніше блокував версії з відомими вразливостями під час оновлень. Тепер захист розширено на шкідливе ПЗ, зокрема на релізи, випущені зловмисниками після захоплення контролю над репозиторієм.
Інші помітні зміни в Composer 2.10:
- Новий об'єкт
config.policyдля керування безпековими звітами, застарілими (abandoned) пакетами та шкідливим ПЗ. - Відмова від автоматичного переходу на
source(source fallback), якщо завантаженняdistне вдалося (додано тимчасову опціюsource-fallback). - Підтримка символів підстановки (wildcards) для команди
composer update --with, наприклад:composer update --with "acme/*:^2.0". - Нова опція
--requireдля командиcomposer create-project. - Покращення автозавантаження плагінів та оптимізація пам'яті в dependency resolver.
У ченджлозі зазначено дві зміни, що впливають на зворотну сумісність: вимкнено автоматичний source fallback, а коди виходу composer audit тепер стандартні: 0 — успіх, 1 — виявлено загрози.
Оновити Composer можна стандартною командою:
composer self-update
Детальніше про реліз, приклади конфігурацій та безпековий контекст читайте у офіційному анонсі. Також розробникам пакетів радять ознайомитися з дописом про безпеку ланцюжка постачання у Composer та Packagist.