pnpm — менеджер пакетов. До версии 10.28.1 уязвимость обхода пути в двоичном сборщике pnpm позволяла вредоносным пакетам записывать файлы за пределы предполагаемого каталога для извлечения. Уязвимость имеет два вектора атаки: (1) вредоносные записи ZIP, содержащие `../` или абсолютные пути, которые выходят из корня извлечения с помощью `extractAllTo` AdmZip, и (2) поле `BinaryResolution.prefix` объединяется в путь извлечения без проверки, что позволяет созданному префиксу типа `../../evil` перенаправлять извлеченные файлы за пределы `targetDir`.
Эта проблема затрагивает всех пользователей pnpm, которые устанавливают пакеты с двоичными ресурсами, пользователей, которые настраивают собственные двоичные расположения Node.js, и конвейеров CI/CD, которые автоматически устанавливают двоичные зависимости. Это может привести к перезаписи файлов конфигурации, сценариев или других конфиденциальных файлов, что приведет к RCE. Версия 10.28.1 содержит патч.
Показать оригинальное описание (EN)
pnpm is a package manager. Prior to version 10.28.1, a path traversal vulnerability in pnpm's binary fetcher allows malicious packages to write files outside the intended extraction directory. The vulnerability has two attack vectors: (1) Malicious ZIP entries containing `../` or absolute paths that escape the extraction root via AdmZip's `extractAllTo`, and (2) The `BinaryResolution.prefix` field is concatenated into the extraction path without validation, allowing a crafted prefix like `../../evil` to redirect extracted files outside `targetDir`. The issue impacts all pnpm users who install packages with binary assets, users who configure custom Node.js binary locations and CI/CD pipelines that auto-install binary dependencies. It can lead to overwriting config files, scripts, or other sensitive files leading to RCE. Version 10.28.1 contains a patch.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pnpm Pnpm
cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:node.js:*:*
|
— |
10.28.1
|