pnpm — менеджер пакетов. До версии 10.28.2, когда pnpm обрабатывает поле `directory.bin` пакета, он использует `path.join()` без проверки того, что результат остается в корне пакета. Вредоносный пакет npm может указать `"directory": {"bin": "../../../../tmp"}` для выхода из каталога пакета, в результате чего pnpm будет использовать chmod 755 файлов в произвольных местах.
Эта проблема затрагивает только Unix/Linux/macOS. Windows не затрагивается (fixBin поддерживается EXECUTABLE_SHEBANG_SUPPORTED). Версия 10.28.2 содержит патч.
Показать оригинальное описание (EN)
pnpm is a package manager. Prior to version 10.28.2, when pnpm processes a package's `directories.bin` field, it uses `path.join()` without validating the result stays within the package root. A malicious npm package can specify `"directories": {"bin": "../../../../tmp"}` to escape the package directory, causing pnpm to chmod 755 files at arbitrary locations. This issue only affects Unix/Linux/macOS. Windows is not affected (`fixBin` gated by `EXECUTABLE_SHEBANG_SUPPORTED`). Version 10.28.2 contains a patch.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pnpm Pnpm
cpe:2.3:a:pnpm:pnpm:*:*:*:*:*:node.js:*:*
|
— |
10.28.2
|