这是 nextjs 官方开源的修复工具,无需担心! 具体地址: https://github.com/vercel-labs/fix-react2shell-next
使用方面,一条命令就行了 npx fix-react2shell-next --fix
我大概讲下这次漏洞的修复原理,其实就是把 next.js 版本和 React RSC Packages 的版本升级到对应的 Patched 版本就可以。
运行上面的命令之后,我们可以看到在我们项目包管理里,nextjs 版本升级到对应版本了,但是里面 react 还是有漏洞的版本,所以挺多人会有这个疑惑:这个工具是不是不行?是不是还得手动改下 react 的版本?
下面这个 issues 里就有人担心: https://github.com/vercel-labs/fix-react2shell-next/issues/13
实际上 github 里讲清楚了: Recursively scans all package.json files (handles monorepos) Checks for vulnerable versions of:
nextjs 会将 react-server 的服务端的这些包(也就是上面的 react-server 的 3 个包)打包到 nextjs 里,而升级了的 nextjs 里包含的 react-server 是 Patched 的版本,也就是修复了这个 bug 的版本。
至于我们项目的包管理里的 react 是前端的框架,没有这个漏洞。
我们也可以在全局代码里搜索react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack这三个包确认下,在我们自己的代码里应该找不到这三个包。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.