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

Node.js应用Trivy扫描触发http-cache-semantics的CVE-2022-25881问题求助

解决Trivy扫描报http-cache-semantics CVE-2022-25881漏洞的问题

问题分析

你遇到的情况是Trivy检测到http-cache-semantics存在CVE-2022-25881漏洞,但项目package.json里没有直接声明该依赖——这说明它是间接依赖(被你配置的某个依赖所引入),或者是Node基础镜像中自带的依赖。

排查与修复步骤

1. 定位依赖来源

首先运行以下命令,找出哪个依赖间接引入了http-cache-semantics:

npm ls http-cache-semantics

执行后会输出完整的依赖树,明确显示该包的引入路径。

2. 针对性修复

根据依赖来源,选择对应的修复方案:

方案一:强制升级间接依赖(推荐)

如果该包是项目依赖的间接引入项,可以通过npm overrides强制将其升级到安全版本(CVE-2022-25881的修复版本为>=4.1.1)。在你的package.json中添加以下配置:

"dependencies": {
  "body-parser": "^1.20.1",
  "express": "^4.18.2",
  "mongodb": "^5.0.1",
  "passport": "^0.6.0",
  "passport-azure-ad": "^4.3.4"
},
"overrides": {
  "http-cache-semantics": "^4.1.1"
}

然后重新执行npm install,生成新的package-lock.json后重新构建镜像。

方案二:升级Node基础镜像

如果漏洞来自Node基础镜像(node:16.19-bullseye-slim)自带的依赖,可以将镜像升级到同系列的更高版本,比如:

FROM node:16.20-bullseye-slim
RUN mkdir -p /.npm
VOLUME /tmp
WORKDIR /app
COPY . /app/
CMD ["npm", "start", "--loglevel=verbose"]

新版本镜像通常会修复已知的依赖漏洞。

方案三:手动修复镜像内的全局依赖

如果漏洞来自镜像的全局npm依赖,可以在Dockerfile中手动升级该包:

FROM node:16.19-bullseye-slim
RUN mkdir -p /.npm && npm install -g http-cache-semantics@4.1.1
VOLUME /tmp
WORKDIR /app
COPY . /app/
CMD ["npm", "start", "--loglevel=verbose"]

3. 验证修复

完成修复后,重新运行Trivy扫描,确认http-cache-semantics的CVE-2022-25881漏洞已被消除。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:50:22