Jun*_*ite 11 dependencies npm reactjs immer.js npm-vulnerabilities
以下是针对以下漏洞的修复:
Critical Prototype Pollution in immer
Package immer
Patched in >=9.0.6
Dependency of react-scripts
Path react-scripts > react-dev-utils > immer
More info https://github.com/advisories/GHSA-33f9-j839-rf8h
Run Code Online (Sandbox Code Playgroud)
使固定:
安装 immer 的修补版本,在本例中9.0.6,使用以下命令:
npm install --save immer@9.0.6
Run Code Online (Sandbox Code Playgroud)
使用 更新 package.json 文件npm update。
重要提示:如果此时漏洞仍然存在,则仅当您知道这不会破坏您的代码或扰乱项目的先前版本或其他包的依赖项时,您才可以执行以下操作。我是唯一从事我的项目的人,因此此修复适用于我的场景。
在您的package-lock.json文件中,找到过时的软件包,在我的例子中:
"immer": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz",
"integrity": "sha512-aqXhGP7//Gui2+UrHtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaH9RZ1j1xlIYqaaaipBoqcqeibkc17PNvF=="
},
Run Code Online (Sandbox Code Playgroud)
并直接删除它。
对于所有包/依赖项来说,此修复似乎不太可持续,但谁知道呢?如果有更好的方法,请让社区知道。
您的修复应该足以修补该关键漏洞,尽管您已经发现它往往很脆弱且易于撤消。
如果可能,请更新到react-scripts@^5.0.0或更高版本。它已经通过 react-dev-utils 过渡升级到 immer@^9.0.7。
如果出于某种原因(例如删除了polyfills或其他原因)你无法升级react-scripts,我建议在查看immer的重大更改后:
package.json,然后npm install: "resolutions": {
"immer": "9.0.12"
},
"scripts": {
"preinstall": "npx npm-force-resolutions"
},
Run Code Online (Sandbox Code Playgroud)
package.json,然后yarn install: "resolutions": {
"immer": "9.0.12"
},
Run Code Online (Sandbox Code Playgroud)
当然,如果其他人将来发现 immer 中的另一个漏洞,您需要在更高版本中重复此操作。
PS 很抱歉回答我确定是重复的问题,尽管现在没有明显的链接可以跳出来。
| 归档时间: |
|
| 查看次数: |
7601 次 |
| 最近记录: |