wongjoke
wongjoke
  • 发布:2026-10-27 15:20
  • 更新:2026-10-27 16:31
  • 阅读:71

【报Bug】代码安全扫描漏洞

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 5.33

浏览器平台: Chrome

浏览器版本: 154.0.8037.98

项目创建方式: CLI

CLI版本号: 5.0.8

示例代码:

Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
×
说明
Versions of the package tough-cookie before 4.1.3 is vulnerable to Prototype Pollution due to improper handling of Cookies when using CookieJar in rejectPublicSuffixes=false mode. This issue arises from the manner in which the objects are initialized.

状态: DETECTED

严重性: 严重

工具:依赖扫描

扫描器:Gemnasium

位置
文件:package-lock.json

标识
Gemnasium-d118b621-5e35-4aa7-895e-dcee6984cb08
CVE-2023-26136

pbkdf2 silently disregards Uint8Array input, returning static keys
×
说明
On historic but declared as supported Node.js versions (0.12-2.x), pbkdf2 silently disregards Uint8Array input

This only affects Node.js <3.0.0, but pbkdf2 claims to:

Support Node.js >= 0.12 (and there seems to be ongoing effort in this repo to maintain that)
Support Uint8Array input (input is typechecked against Uint8Array, and the error message includes e.g. "Password must be a string, a Buffer, a typed array or a DataView"
状态: DETECTED

严重性: 严重

工具:依赖扫描

扫描器:Gemnasium

位置
文件:package-lock.json

标识
Gemnasium-fb79f77f-f2bf-4892-beb5-56f792c1c363
CVE-2025-6547
GHSA-v62p-rq8g-8h59
....

操作步骤:

代码安全扫描漏洞

预期结果:

无安全漏洞

实际结果:

有安全漏洞

bug描述:

项目中@dcloudio/*下依赖了其他组件,比如tough-cookie、pbkdf2 、request等等,这些组件有安全漏洞问题。这些该怎么解决,直接升级那些依赖吗?

2026-10-27 15:20 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

收到你的 bug 反馈,以官方人员视角对这个反馈做如下评审与分析:

一、反馈内容完整性评审

反馈的核心问题清晰,扫描报告的关键信息(CVE 编号、严重性、扫描工具 Gemnasium、漏洞位置 package-lock.json)提供得比较完整,属于依赖安全扫描类问题,方向明确。但以下几点建议补充:

  1. 复现步骤过于简单:目前仅写了“代码安全扫描漏洞”,官方人员无法据此复现你的扫描场景。建议补充:
    • 使用的扫描工具或平台(Gemnasium 是 GitLab 的依赖扫描器,还是公司内部安全平台、npm audit 等);
    • 项目创建方式:是 HBuilderX 可视化创建的项目,还是 CLI 创建的项目(从存在 package-lock.json 看疑似 CLI 项目,请确认并附 CLI 版本号);
    • package.json 中 @dcloudio/* 依赖的具体版本号。
  2. 代码示例:目前提供的是扫描报告片段,缺少项目依赖的实际版本信息,建议补充 package-lock.json 中 tough-cookie、pbkdf2、request 的实际版本号,便于核对漏洞版本与扫描结果是否一致。
  3. 分类信息不完整:缺少 Vue 版本(Vue2/Vue3)、目标平台等信息。

二、问题是否成立

这个问题成立,属于 @dcloudio/* 包的传递依赖(依赖的依赖)被扫描出已知漏洞,不是误报。社区已有同类案例的官方处理记录,可参考:

【报Bug】@dcloudio/uni-mp-weixin 依赖 "file-type": "^9.0.0"、"jpeg-js": "^0.3.4"这两个依赖被扫描存在漏洞

该案例中官方确认跟进处理此类依赖漏洞问题,并给出了处理思路:

  1. 官方会跟进处理 @dcloudio/* 包的依赖升级,从根源上消除有漏洞的依赖版本;
  2. 临时方案:可以在 npm 中添加 resolutions 补充高版本依赖,强制将有漏洞的传递依赖覆盖为已修复版本;
  3. 精简依赖方案:如果项目仅面向特定平台(如仅 web 端开发),可以删减 package.json 中多余的依赖及命令,减少被引入的依赖面,从而减少扫描出的漏洞(案例中附有精简后的 package.json 结构示例,注意依赖版本需按你实际所需调整)。

三、关于“直接升级那些依赖吗”

tough-cookie、pbkdf2、request 并不是你在 package.json 中直接声明的依赖,而是 @dcloudio/ 包的传递依赖,版本由 @dcloudio/ 包内部的依赖声明决定,直接在自己的 package.json 里升级这些包通常不会生效。推荐做法:

  • 通过 resolutions(yarn)或 overrides(npm 8+)字段强制覆盖版本,以 npm 为例:
{  
  "overrides": {  
    "tough-cookie": "^4.1.3"  
  }  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

  • 你贴出的扫描报告也给出了修复版本线:tough-cookie 需 4.1.3 及以上修复原型污染漏洞(CVE-2023-26136),pbkdf2 对应 CVE-2025-6547,可按扫描报告给出的安全版本逐项覆盖;
  • 覆盖后删除 node_modules 与 package-lock.json 重新安装,再完整构建并回归验证各端功能是否正常。

四、补充说明

  • 依赖扫描工具会把所有可检出的风险都列出来,其中部分依赖多处于编译工具链中,是否构成实际运行时风险,需要结合这些包是否进入最终产物、是否在运行时被调用等业务情况评估;高危项建议尽快按上述方式覆盖修复。
  • 官方会持续跟进 @dcloudio/* 依赖链的升级更新,建议关注版本更新说明,及时升级 HBuilderX 及 CLI 项目中的 @dcloudio 依赖版本。

另外说明:我无法识别附件内容,如需补充信息请直接以文字形式描述。

内容为 AI 生成,仅供参考
wongjoke

wongjoke (作者)

扫描工具使用的是gitlab的依赖扫描以及SAST

要回复问题请先登录或注册