pnpm — менеджер пакетов. До версий 10.34.2 и 11.5.3 pnpm может сохранять метаданные начальной загрузки менеджера пакетов в первом документе YAML pnpm-lock.yaml. До патча прямое выполнение pnpm доверяло уже разрешенной записи packageManagerDependities, если зафиксированный файл блокировки env содержал совпадающие версии pnpm и @pnpm/exe.
Таким образом, вредоносный репозиторий может фиксировать записи и снимки пакетов файла блокировки менеджера пакетов, которые обходят новое разрешение менеджера пакетов, а затем заставлять pnpm устанавливать и выполнять байты, выбранные этим зафиксированным состоянием файла блокировки во время автоматического переключения версий. Эта уязвимость исправлена в версиях 10.34.2 и 11.5.3.
Показать оригинальное описание (EN)
pnpm is a package manager. Prior to 10.34.2 and 11.5.3, pnpm can persist package-manager bootstrap metadata in the first YAML document of pnpm-lock.yaml. Before the patch, direct pnpm execution trusted an already resolved packageManagerDependencies entry when the committed env lockfile contained matching pnpm and @pnpm/exe versions. A malicious repository could therefore commit package-manager lockfile package records and snapshots that bypassed fresh package-manager resolution, then cause pnpm to install and execute bytes selected by that committed lockfile state during automatic version switching. This vulnerability is fixed in 10.34.2 and 11.5.3.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pnpm Pnpm
cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:node.js:*:*
|
— |
10.34.2
|
|
Pnpm Pnpm
cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:node.js:*:*
|
11.0.0
|
11.5.3
|