You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Next.js项目中micromatch的ReDoS正则拒绝服务漏洞

修复Next.js项目中micromatch的ReDoS中度漏洞

我是JS开发新手,网站基于Next.js框架,我的package.json依赖如下:

"dependencies": {
    "@azure/communication-email": "1.0.0",
    "@azure/identity": "4.4.1",
    "@next/third-parties": "14.2.6",
    "@tailwindcss/line-clamp": "0.4.4",
    "@types/lodash": "4.17.7",
    "@types/node": "20.4.2",
    "@types/react": "18.3.4",
    "@types/react-dom": "18.3.0",
    "autoprefixer": "10.4.20",
    "date-fns": "3.6.0",
    "disposable-email-domains": "1.0.62",
    "dom-parser": "1.1.5",
    "dotenv": "16.4.5",
    "html-react-parser": "4.2.6",
    "lodash": "4.17.21",
    "next": "14.2.13",
    "postcss": "8.4.41",
    "react": "18.3.1",
    "react-datepicker": "7.3.0",
    "react-dom": "18.3.1",
    "sharp": "0.33.5",
    "tailwindcss": "3.4.10",
    "typescript": "5.5.4",
    "valibot": "0.38.0"
  },

运行yarn audit命令时,检测到12个与micromatch中Regular Expression Denial of Service (ReDoS)相关的中度漏洞,但直接依赖中无micromatch,以下是修复步骤:

步骤1:定位micromatch的依赖来源

首先运行命令找出哪个间接依赖引入了有漏洞的micromatch:

yarn why micromatch

这个命令会输出完整的依赖链,明确micromatch是被哪个包间接引用的。

步骤2:尝试更新父依赖包

如果找到的父包是你直接依赖中的某个工具库(比如tailwindcss、postcss),优先更新该父包到最新稳定版——多数情况下,新版本会自动替换掉存在漏洞的子依赖:

yarn upgrade <父包名>@latest

比如你可以尝试更新tailwindcss和postcss:

yarn upgrade tailwindcss@latest postcss@latest

步骤3:强制锁定micromatch的安全版本

如果更新父包无法解决问题,或者父包暂时没有修复版本,可以在package.json中添加resolutions字段,强制所有间接依赖使用已修复ReDoS漏洞的micromatch版本(建议选择4.0.8及以上版本):

"resolutions": {
  "micromatch": "4.0.8"
}

添加后重新安装依赖:

yarn install

步骤4:验证修复结果

运行以下命令确认漏洞已修复:

yarn audit

也可以检查当前安装的micromatch版本是否正确:

yarn list micromatch

内容的提问来源于stack exchange,提问作者Bashabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:11:10