`@npmcli/arborist`, библиотека, которая вычисляет деревья зависимостей и управляет иерархией папок `node_modules` для интерфейса командной …
`@npmcli/arborist`, библиотека, которая вычисляет деревья зависимостей и управляет иерархией папок `node_modules` для интерфейса командной строки npm, стремится гарантировать, что контракты зависимостей пакета будут выполнены, и извлечение содержимого пакета всегда будет выполняться в ожидаемую папку. Это, частично, достигается путем разрешения спецификаторов зависимостей, определенных в манифестах `package.json` для зависимостей с определенным именем, и вложения папок для разрешения конфликтующих зависимостей. Когда несколько зависимостей отличаются только регистром их имени, внутренняя структура данных Arborist видела их как отдельные элементы, которые могут сосуществовать на одном уровне в иерархии `node_modules`. Однако в файловых системах, нечувствительных к регистру (таких как macOS и Windows), это не так. В сочетании с зависимостью символической ссылки, такой как `file:/some/path`, это позволяло злоумышленнику создать ситуацию, в которой произвольное содержимое могло быть записано в любое место в файловой системе. Например, пакет `pwn-a` может определить зависимость в своем файле `package.json`, такую как `"foo": "file:/some/path"`. Другой пакет, `pwn-b`, может определить зависимость, такую как `FOO: "file:foo.tgz"`. В файловых системах, нечувствительных к регистру, если `pwn-a` был установлен, а затем `pwn-b` был установлен после него, содержимое `foo.tgz` будет записано в `/some/path`, и любое существующее содержимое `/some/path` будет удалено. Любой, кто использует npm v7.20.6 или более раннюю версию в файловой системе, нечувствительной к регистру, потенциально подвержен уязвимости. Это исправлено в @npmcli/arborist 2.8.2, который включен в npm v7.20.7 и выше.
Продукт пытается получить доступ к файлу по имени, однако не предотвращает надлежащим образом интерпретацию этого имени как ссылки или ярлыка, ведущего к непредусмотренному ресурсу.
https://cwe.mitre.org/data/definitions/59.html →Открыть в коллекции CWE →Продукт при открытии файла или каталога недостаточно учитывает случай, когда файл является символической ссылкой, указывающей на цель за пределами предусмотренной сферы контроля. Это может позволить злоумышленнику вынудить продукт работать с неавторизованными файлами.
https://cwe.mitre.org/data/definitions/61.html →Открыть в коллекции CWE →Атака данного типа эксплуатирует конфигурацию системы, которая позволяет злоумышленнику либо напрямую обращаться к исполняемому файлу, например через доступ к командному интерпретатору, либо, в наиболее тяжёлых случаях, загружать файл и затем выполнять его. Особенно уязвимы веб-серверы, FTP-серверы и промежуточное программное обеспечение, ориентированное на обмен сообщениями и имеющее множество точек интеграции, поскольку и программисты, и администраторы должны согласованно понимать интерфейсы и правильные привилегии для каждого интерфейса.
https://capec.mitre.org/data/definitions/17.html →Открыть в коллекции CAPEC →Данная атака эксплуатирует использование символических ссылок (Symlink) для записи в конфиденциальные файлы. Злоумышленник может создать символическую ссылку на целевой файл, к которому у него нет прямого доступа. Когда привилегированная программа пытается создать временный файл с тем же именем, что и символическая ссылка, она фактически записывает данные в целевой файл, на который указывает символическая ссылка злоумышленника. Если злоумышленник может поместить вредоносное содержимое во временный файл, он тем самым запишет его в конфиденциальный файл через символическую ссылку. Состояние гонки возникает потому, что система проверяет существование временного файла, а затем создаёт его. Злоумышленник, как правило, создаёт символическую ссылку в промежутке между проверкой и созданием временного файла.
https://capec.mitre.org/data/definitions/27.html →Открыть в коллекции CAPEC →Данная атака эксплуатирует доверие системы к файлам конфигурации и ресурсов. Когда исполняемый файл загружает ресурс (например, файл изображения или файл конфигурации), злоумышленник модифицирует файл таким образом, чтобы либо непосредственно выполнить вредоносный код, либо манипулировать целевым процессом (например, сервером приложений), заставляя его выполнять действия на основе вредоносных параметров конфигурации. По мере того как системы всё активнее интегрируют ресурсы из локальных и удалённых источников, вероятность осуществления данной атаки возрастает.
https://capec.mitre.org/data/definitions/35.html →Открыть в коллекции CAPEC →Злоумышленник манипулирует входными данными, которые целевое программное обеспечение передаёт в вызовы файловой системы операционной системы. Цель — получить доступ и, возможно, модифицировать области файловой системы, к которым целевое программное обеспечение не должно было предоставлять доступ.
https://capec.mitre.org/data/definitions/76.html →Открыть в коллекции CAPEC →Злоумышленник располагает символическую ссылку таким образом, чтобы целевой пользователь или приложение перешло по конечному адресу ссылки, полагая, что обращается к файлу с именем самой ссылки.
https://capec.mitre.org/data/definitions/132.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| npm | Отслеживается | |
| arborist | * | Отслеживается |
| graalvm | * | Отслеживается |
| sinec_infrastructure_network_services | * | Отслеживается |