Уязвимость в glob-parent: angular-devkit, angular-compiler, eslint — компрометирует ли она сборку prod?

avatar
Boppity Bop
1 июля 2021 в 21:26
2671
1
1

У меня есть уязвимость, о которой сообщил аудит npm в пакете glob-parent.

Когда я запускаю npm ls glob-parent, я получаю следующее:

+-- @angular-devkit/build-angular@12.1.0
| +-- copy-webpack-plugin@9.0.0
| | +-- fast-glob@3.2.6
| | | `-- glob-parent@5.1.2
| | `-- glob-parent@6.0.0 deduped
| `-- webpack-dev-server@3.11.2
|   `-- chokidar@2.1.8
|     `-- glob-parent@3.1.0
+-- @angular/compiler-cli@12.1.1
| `-- chokidar@3.5.2
|   `-- glob-parent@5.1.2
+-- eslint@7.29.0
| `-- glob-parent@5.1.2
`-- glob-parent@6.0.0

Я прочитал это, так как этот glob-parent используется в

@angular-devkit/build-angular
@angular/compiler-cli
eslint

Я правильно понимаю?

Если да, то мой вопрос - используются ли эти пакеты в рабочей среде (я имею в виду devkit, компилятор, lint - не похоже, что они необходимы после сборки приложения)?

Или проще - будет ли уязвимость glob-parent подвергать риску мою производственную систему?

Версии:

Angular CLI: 12.1.0
Node: 14.17.0
Package Manager: npm 7.14.0
OS: win32 x64

Angular: 12.1.0
... animations, cli, common, compiler, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1201.0
@angular-devkit/build-angular   12.1.0
@angular-devkit/core            12.1.0
@angular-devkit/schematics      12.1.0
@angular/compiler-cli           12.1.1
@angular/language-service       12.1.1
@schematics/angular             12.1.0
rxjs                            6.6.7
typescript                      4.2.4
Источник

Ответы (1)

avatar
Danny
3 июля 2021 в 14:03
1

Это хороший вопрос. Хотя ваше использование не совпадает с чьим-то другим, и нет определенного способа, которым кто-то другой может ответить вам на этот вопрос, они могут рискнуть предположить:

Если вы посмотрите на каждый пакет, вы увидите, используете ли вы его в рабочей среде таким образом, что злоумышленник может раскрыть уязвимость:

@angular-devkit/build-angular -> copy-webpack-plugin -> fast-glob
@angular/compiler-cli -> chokidar
eslint

Я думаю, что eslint подходит только для вашей среды разработки.

Я бы также подумал, что build-angular, который используется angular-cli, предназначен для вашей среды разработки.

Также выглядит так, что compiler-cli является внутренним Angular.

Кроме того -- они находятся в вашем dependencies или devDependencies? Прочитайте эту статью, чтобы узнать об использовании этих разделов, но краткое изложение, вероятно, покажется вам и большинству пользователей верным:

если вы не уверены, что каждая зависимость находится в нужном месте, может быть целесообразно одинаково обрабатывать все оповещения системы безопасности об уязвимостях в зависимостях, независимо от того, связаны ли они с зависимостью или devDependency.

Поэтому, если у вас есть уязвимость, рассматривайте ее как производственную уязвимость, если только вы не уверены, что она связана исключительно с вашим процессом разработки.

Boppity Bop
3 июля 2021 в 16:53
0

вот в чем дело - все вышеперечисленное возникает из стандартного углового проекта asp.net core. Я не добавлял никаких пакетов сам. они находятся в dev и необязательных зависимостях .. так что вы сделали хорошее замечание. однако почему они тогда используются в прод-билде.. :puzzled:

Jack
25 октября 2021 в 00:11
1

@BoppityBop Я создал github.com/angular/angular-cli/issues/22007, потому что тоже озадачен.