Closed crebollobr closed 2 years ago
O build acima foi feito com:
git clone https://github.com/AddressForAll/site-v2.git
npm install (problema ) npm audit Mensagem acima
npm run build
Precisamos fazer algum procedimento em relação a essas mensagens de segurança?
Os 6 warnings são referentes a versão das dependências utilizadas pelo Create-React-App, estamos usando a versão mais atual => 5.0.0, então, num primeiro momento, mesmo que essas dependências estejam depreciadas não necessariamente os warnings são de fato uma vulnerabilidade.
Dependências com Warnings
npm WARN deprecated source-map-resolve@0.6.0: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
added 1426 packages, and audited 1427 packages in 29s
169 packages are looking for funding
run `npm fund` for details
6 moderate severity vulnerabilities
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
Um desenvolvedor do projeto Create-React-App do Facebook detalha o porque dos warnings da versão atual do CRA (Create React App) não são uma vulnerabilidade:
https://github.com/facebook/create-react-app/issues/11174
Mas e essa vulnerabilidade? Embora alguns warnings não sejam de fato vulnerabilidades, é importante analisar se a seguinte dependência nth-check impacta no projeto.
# npm audit report
nth-check <2.0.1
Severity: moderate
Inefficient Regular Expression Complexity in nth-check - https://github.com/advisories/GHSA-rp65-9cf3-cjxr
fix available via `npm audit fix --force`
Will install react-scripts@2.1.3, which is a breaking change
node_modules/svgo/node_modules/nth-check
css-select <=3.1.0
Depends on vulnerable versions of nth-check
node_modules/svgo/node_modules/css-select
svgo 1.0.0 - 1.3.2
Depends on vulnerable versions of css-select
node_modules/svgo
@svgr/plugin-svgo <=5.5.0
Depends on vulnerable versions of svgo
node_modules/@svgr/plugin-svgo
@svgr/webpack 4.0.0 - 5.5.0
Depends on vulnerable versions of @svgr/plugin-svgo
node_modules/@svgr/webpack
react-scripts >=2.1.4
Depends on vulnerable versions of @svgr/webpack
node_modules/react-scripts
6 moderate severity vulnerabilities
To address all issues (including breaking changes), run:
npm audit fix --force
O nth-check (https://www.npmjs.com/package/nth-check/v/1.0.2#about) é uma dependência que torna eficiente a leitura de expressões regulares para pseudo-classes nth-child() do CSS, neste npm audit mostra que nth-check é uma dependência com Complexidade Ineficiente para se fazer o parser de um ReGex (Expressão Regular, vide: https://pt.wikipedia.org/wiki/Express%C3%A3o_regular) de fato existe um tipo de ataque DoS (Denial of Service -> https://pt.wikipedia.org/wiki/Ataque_de_nega%C3%A7%C3%A3o_de_servi%C3%A7o) que usa ReGex para explorar um custo de tempo exponencial que um sistema analisador de regex pode levar para ler a expressão fornecida pelo usuário, chama-se: ReDoS (Regex Denial of Service) -> https://pt.wikipedia.org/wiki/ReDoS. Porém, na aplicação atual, não há um analisador de regex do lado do usuário, e não há entrada para esse tipo de ataque, tal dependência é, na verdade, utilizada pelo CSS-Select e este por sua vez é utilizado pela dependência SVGO que no final é usado por um carregador de svg que usa o Webpack -> https://en.wikipedia.org/wiki/Webpack, ou seja, só é utilizado no lado do servidor para carregar os recursos svg para os componentes que irão compor o site.
Minha conclusão quanto a essa suposta "vulnerabilidade" na aplicação é que para uma aplicação estática e sem analisadores de regex do lado do cliente esse Warning não deve ser um problema para o projeto, além de que essa dependência é usada do lado do servidor como parte dos processos do @svgr/webpack -> https://www.npmjs.com/package/@svgr/webpack que é um svg-loader-webpack (carregador de svgs que serão empacotados pelo webpack).