Вышла новая версия Composer 2.7

Дата публикации: 2024-02-08
Просмотры: 158

Вышла очередная минорная версия Composer 2.7.
Новая версия включает различные исправления и закрывает известную уязвимость.
Пожалуйста, обновитесь как можно скорее!!!

Вышла новая версия Composer 2.7

Новые возможности Composer 2.7

В Composer 2.7 есть две примечательные новые функции:

  • Добавили новый --minimal-changes (-m) флаг в composer update, require и remove. Эту опцию можно комбинировать --with-dependencies или --with-all-dependencies выполнять частичное обновление только перечисленных пакетов и их зависимостей, при этом выполняя изменения версий или дополнительные установки/удаления их зависимостей только тогда, когда это абсолютно необходимо для обновления перечисленных пакетов до их последних устанавливаемых версий, а не обновления. все они до последних возможных версий.
  • Добавили новую --sort-by-age (-A) опцию в composer outdated и composer show. Эта опция позволяет сортировать и отображать даты выпуска пакетов, причем первым возвращается самый устаревший пакет.

Причина исправленной уязвимости

В рамках установки зависимостей Composer создает файлы в каталоге vendor/composer/. Сюда входит файл install.php, который содержит определение массива PHP всех установленных пакетов и их версий, а также файл InstalledVersions.php, который обеспечивает программный доступ к этой информации. Этот API известен как API среды выполнения Composer, который предназначен для того, чтобы код проекта мог проверять список установленных пакетов в проекте во время выполнения приложения. Это полезно, например, для систем плагинов для динамического перечисления установленных совместимых плагинов и получения некоторых метаданных об установленных пакетах, например пути их установки.

Поскольку плагинам и сценариям Composer также может потребоваться доступ к этой информации, Composer будет загружать и выполнять те же два файла из каталога поставщика во время выполнения, чтобы сделать их доступными для плагинов или кода пользовательского сценария. Плагины и скрипты можно отключить с помощью опций --no-plugins --no-scripts. Их рекомендуется отключить, если вы запускаете какие-либо команды Composer в проектах, которым не доверяете выполнение кода на вашем компьютере.

Когда вы запускаете команды композитора в проекте, не отключая плагины или сценарии, вы должны быть уверены, что можете доверять содержимому каталога поставщика. Если вы не можете этого сделать, вам нужно либо запустить его с помощью --no-plugins --no-scripts, либо удалить каталог поставщика, чтобы можно было восстановить его. Настоятельно не рекомендуется передавать каталоги поставщиков в системы контроля версий. Если вам необходимо более тщательно контролировать содержимое ваших зависимостей, вам следует вместо этого использовать частный репозиторий Composer.

Проблема 1: Неправильное отключение загрузки сгенерированных файлов

Одной из обнаруженных проблем было неправильное отключение загрузки файлов при отключении плагинов и скриптов. Таким образом, два файла по-прежнему загружались даже при запуске такой команды, как composer self-update. Это проблематично, в частности, в системах, где пользователям был предоставлен доступ sudo специально только для запуска composer self-update. Это означает, что эти пользователи могут заставить Composer выполнить произвольный код от имени пользователя root, написав в эти два файла, тем самым повысив свои привилегии. Теперь эта проблема решена.

Обычно вам следует избегать запуска Composer от имени пользователя root. Если вам необходимо предоставить sudo доступ к самостоятельному обновлению, обратите внимание на то, чтобы разрешить это только явно, composer self-update без дополнительных аргументов, чтобы предотвратить переход на более ранние уязвимые версии непривилегированными пользователями.

Проблема 2: Загрузка произвольного кода из сгенерированных мест файлов.

Для дополнительной защиты от потенциальных атак теперь проверяется, что загруженные файлы содержат содержимое, созданное Composer, и не содержат другого произвольного кода.


Ссылка на источник: https://blog.packagist.com/composer-2-7-and-cve-2024-24821/

Поделиться статьей:

Комментарии (1):

Авторизуйтесь, для того, чтобы оставить комментарий. Войти на сайт
avatar
Григорий Стерин
2024-02-23 01:35
Срочно обновитесь!!!
Подписка на новости
Узнавайте о новых статьях первыми.
Профиль