Skip to content

fix(deps): 升级 tauri-plugin-shell 至 2.3.5 修复 CRITICAL 漏洞 (GHSA-c9pr-q8gx-3mgp)#763

Merged
appergb merged 1 commit into
betafrom
fix/issue-668-plugin-shell-cve
Jul 4, 2026
Merged

fix(deps): 升级 tauri-plugin-shell 至 2.3.5 修复 CRITICAL 漏洞 (GHSA-c9pr-q8gx-3mgp)#763
appergb merged 1 commit into
betafrom
fix/issue-668-plugin-shell-cve

Conversation

@appergb

@appergb appergb commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

User description

背景 / Issue

修复 #668 —— 安全扫描(NVIDIA SkillSpector)报出 CRITICAL SC4 — @tauri-apps/plugin-shell==2.0.1 已知漏洞相依。

对应公告 GHSA-c9pr-q8gx-3mgpImproper Scope Validation in the open Endpoint of tauri-plugin-shellCRITICAL

  • 受影响范围:< 2.2.1(npm 包与 Rust crate 同一公告)
  • 首个修复版本:2.2.1,最新:2.3.5
  • 本项目 src/lib/ipc/utils.ts 正是通过该 open 端点打开外链,属受影响用法。

根因

两个 lockfile 实际解析到安全版 2.3.5,但清单声明的下限仍是漏洞版本:

文件 修改前 修改后
package.json "@tauri-apps/plugin-shell": "^2.0.1" "^2.3.5"
Cargo.toml tauri-plugin-shell = "2"(下限 2.0.0) tauri-plugin-shell = "2.3.5"
package-lock.json(spec 行) "^2.0.1" "^2.3.5"

供应链扫描读取的是这个声明下限(^2.0.1 的 min-satisfying = 2.0.1),因此命中 SC4。

改动

仅把两侧声明下限抬到最新安全版 2.3.5,使清单与已锁定版本一致、扫描不再命中。

  • 解析版本不变(两个 lockfile 早已是 2.3.5),无运行时行为变化。
  • 不涉及应用版本号,不触发五文件版本一致门禁。
  • 单一职责:仅动 plugin-shell 依赖声明,未改任何源码/其它依赖。

验证

  • npm ci --dry-run:package.json ↔ package-lock.json 已同步,退出码 0。
  • cargo update -p tauri-plugin-shell --dry-run:tauri-plugin-shell 稳定停在 2.3.5Cargo.lock 无需改动。
  • ✅ 改动面 = 3 文件 / +4 −3;Cargo.locknode_modules 解析条目均已是 2.3.5,未变。
  • 🔜 四平台完整编译交由 CI 验证。

Closes #668


PR Type

Bug fix


Description

  • 升级 @tauri-apps/plugin-shell 至 2.3.5 修复 CRITICAL 漏洞

  • 升级 tauri-plugin-shell crate 依赖至 2.3.5

  • 对齐清单声明版本与 lockfile 解析版本


Diagram Walkthrough

flowchart LR
  cmp["@tauri-apps/plugin-shell / tauri-plugin-shell"] --> old["^2.0.1 / \"2\""]
  old -- "CRITICAL GHSA-c9pr-q8gx-3mgp" --> vuln["< 2.2.1"]
  cmp --> new["^2.3.5 / \"2.3.5\""]
  new -- "安全版本" --> fixed[">= 2.2.1"]
Loading

File Walkthrough

Relevant files
Dependency update
package.json
更新 npm 插件依赖版本                                                                                       

openless-all/app/package.json

  • 将 @tauri-apps/plugin-shell 依赖声明从 ^2.0.1 更新为 ^2.3.5
+1/-1     
Security fix
Cargo.toml
更新 Rust crate 依赖版本                                                                             

openless-all/app/src-tauri/Cargo.toml

  • 将 tauri-plugin-shell 依赖从宽松版本 "2" 更新为精确安全版本 "2.3.5"
  • 添加注释说明修复的 CVE 编号
+2/-1     

@tauri-apps/plugin-shell (npm) 与 tauri-plugin-shell (crate) 的声明下限
——npm `^2.0.1`、crate `"2"`——都落在 GHSA-c9pr-q8gx-3mgp 影响范围
(`< 2.2.1`,CRITICAL:`open` 端点作用域校验绕过,可致 RCE)。本项目
src/lib/ipc/utils.ts 正是通过该 `open` 端点打开外链,属受影响用法。

两个 lockfile 实际已解析到 2.3.5,但清单声明的下限仍是漏洞版本,供应链
扫描(SkillSpector SC4)因此读取到 2.0.1 报警。此处仅把两侧声明下限抬到
最新安全版 2.3.5,使清单与锁定版本一致、扫描不再命中;解析版本不变,无
运行时行为变化。

Closes #668
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis ✅

668 - Fully compliant

Compliant requirements:

  • 升級 @tauri-apps/plugin-shell 至已修復安全漏洞的最新版本 (2.3.5)
  • 升級後重新編譯,確保安全掃描不再報出 SC4 漏洞 (已透過鎖定最低版本至 2.3.5 完成)
⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ No major issues detected

@appergb appergb merged commit 3ca6883 into beta Jul 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[tauri] 升級 @tauri-apps/plugin-shell 元件至安全版本以修復 CRITICAL 漏洞

1 participant