glob-parent <5.1.2
Severity: high
glob-parent before 5.1.2 vulnerable to Regular Expression Denial of Service in enclosure regex - https://github.com/advisories/GHSA-ww39-953v-wcq6
fix available via `npm audit fix`
node_modules/watchpack-chokidar2/node_modules/glob-parent
chokidar 1.0.0-rc1 - 2.1.8
Depends on vulnerable versions of glob-parent
node_modules/watchpack-chokidar2/node_modules/chokidar
watchpack-chokidar2 *
Depends on vulnerable versions of chokidar
node_modules/watchpack-chokidar2
watchpack 1.7.2 - 1.7.5
Depends on vulnerable versions of watchpack-chokidar2
node_modules/watchpack
webpack 4.44.0 - 4.46.0
Depends on vulnerable versions of watchpack
node_modules/webpack
由於 GitHub 的機器人找出這個安全性問題,而且風險值很高,雖然不更新時,可正確產出結果,但是總是有個風險在。
當然直接升級 webpack v5.x 後,此安全問題可以解決,但是在跑專案時會出錯,以暫時不升版的狀況下,該如何更新版本而不出錯才是當前要解決的問題。
### 解決方法
在 package.json 加上以下 overrides 的覆蓋版本設定,再做 `npm update` 即可
```json
{
...
"overrides": {
"chokidar": "3.5.3",
"glob-parent": "6.0.2"
}
}
```
上述版本是有跳大的版號,所以需要注意是否有 break change,再執行專案看看是否能正常運行。
還好,沒有任何錯誤訊息,安全性更新完成!
最後更新完成的版本環境:
- typescript 5.0.2
- ts-loader 8.4.0
- webpack 4.46.0
- webpack-cli 4.10.0
p.s. 若使用 webpack v4.x 版本, ts-loader 的版本可升到 8.x (webpack v5.x 搭 ts-loader 9.x 版本)
### 參考連結
- [how to solve this npm glob-parent problem](https://stackoverflow.com/questions/68333071/how-to-solve-this-npm-glob-parent-problem)
2023/03/18
[npm] 解決 npm glob-parent 版本過舊的安全性問題
markdown
### 問題
最近在一個舊的專案採用 webpack 4.x 的版本,最近要修改檔案,要在能正常執行下,想要一併更新一下開發套件版本。
原本環境:
- typescript 3.9.5
- ts-loader 7.0.5
- webpack 4.43.0
- webpack-cli 4.9.1
執行 `npm audit fix` 之後,已修正不少套件相依版本,但仍有安全性相依版本的問題,即便依照指令再做一次 fix 的動作仍無法更新修正。
沒有留言:
張貼留言