fix(deps): update dependency glob to v10 [security]#382
fix(deps): update dependency glob to v10 [security]#382renovate[bot] wants to merge 1 commit intomainfrom
Conversation
📝 WalkthroughWalkthroughTwo Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes 🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
|
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/test/vscode-notebook-perf/package.json (1)
29-35: 🛠️ Refactor suggestion | 🟠 MajorType definitions may be stale.
globv10+ ships its own TypeScript definitions, so@types/globis no longer needed. Remove@types/globfrom devDependencies.Proposed fix
"devDependencies": { - "@types/glob": "^5.0.35", "@types/mocha": "^9.1.0",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/test/vscode-notebook-perf/package.json` around lines 29 - 35, Remove the now-unnecessary "@types/glob" devDependency from package.json (it is listed alongside other devDependencies like "@types/mocha", "@types/node", "glob" and "@vscode/test-cli"); delete the "@types/glob" entry, then update your lockfile by running your package manager install (npm/yarn/pnpm) so the dependency tree and lockfile are consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@package.json`:
- Line 2710: Update the import and call sites to the new named export: replace
the default import "import glob from 'glob'" with "import { globSync } from
'glob'" and replace all uses of "glob.sync(...)" with direct calls to
"globSync(...)" in the three affected modules (gulpfile.js where glob is used
around the task that reads files, build/webTestReporter.js around the reporter
file-globbing logic, and build/webpack/common.js in the config file-glob usage).
Ensure you only import the named symbol globSync and update every glob.sync
invocation in those files to globSync with identical arguments.
---
Outside diff comments:
In `@src/test/vscode-notebook-perf/package.json`:
- Around line 29-35: Remove the now-unnecessary "@types/glob" devDependency from
package.json (it is listed alongside other devDependencies like "@types/mocha",
"@types/node", "glob" and "@vscode/test-cli"); delete the "@types/glob" entry,
then update your lockfile by running your package manager install
(npm/yarn/pnpm) so the dependency tree and lockfile are consistent.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 0d2828a5-22fd-4510-a910-8f9254cfde78
⛔ Files ignored due to path filters (2)
package-lock.jsonis excluded by!**/package-lock.jsonsrc/test/vscode-notebook-perf/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (2)
package.jsonsrc/test/vscode-notebook-perf/package.json
db7e18e to
4360ae5
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@package.json`:
- Line 2710: Update the declared dependency range for glob to require the safe
minimum by changing the version string from "^10.0.0" to "^10.5.0" (the
dependency key "glob" in package.json), then regenerate the lockfile (run your
package manager install) so the lockfile pins a non-vulnerable 10.5.x+ release
and run CI/tests to verify nothing breaks.
In `@src/test/vscode-notebook-perf/package.json`:
- Line 35: Update the glob dependency version constraint in package.json from
"^10.0.0" to "^10.5.0" to exclude vulnerable 10.2.0–10.4.x releases; after
changing the "glob" entry, regenerate the lockfile (npm install / yarn install),
run the test suite and dependency audit (npm audit or yarn audit) to ensure no
regressions, and commit the updated lockfile alongside the package.json change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 8064bc41-af03-48ca-93dc-59a02d0fa548
⛔ Files ignored due to path filters (2)
package-lock.jsonis excluded by!**/package-lock.jsonsrc/test/vscode-notebook-perf/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (2)
package.jsonsrc/test/vscode-notebook-perf/package.json
| "format-util": "^1.0.5", | ||
| "fs-extra": "^4.0.3", | ||
| "glob": "^9.3.5", | ||
| "glob": "^10.0.0", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Declared glob ranges in changed manifests =="
rg -n '"glob"\s*:\s*"\^10\.[0-9]+\.[0-9]+"' package.json src/test/vscode-notebook-perf/package.json
echo
echo "== Resolved glob versions from lockfiles (if present) =="
for lock in package-lock.json npm-shrinkwrap.json pnpm-lock.yaml yarn.lock; do
if [ -f "$lock" ]; then
echo "--- $lock ---"
rg -n 'glob|10\.[0-9]+\.[0-9]+' "$lock" | head -n 120
fi
doneRepository: deepnote/vscode-deepnote
Length of output: 6897
🏁 Script executed:
#!/bin/bash
# Find the main glob dependency entry and its resolved version
rg -A 5 'node_modules/glob"\s*:' package-lock.json | head -20Repository: deepnote/vscode-deepnote
Length of output: 1274
🌐 Web query:
CVE-2025-64756 GHSA-5j98-mcp5-4vw2 glob security vulnerability
💡 Result:
CVE-2025-64756 (GHSA-5j98-mcp5-4vw2) is a high-severity command injection vulnerability in the CLI of the npm glob package, affecting versions >=10.2.0 <10.5.0 and >=11.0.0 <11.1.0. It allows arbitrary command execution when using the -c/--cmd option on files with malicious shell metacharacters in names, as filenames are passed to a shell with shell: true. The core library API (glob, globSync) is unaffected. Patched in 10.5.0 and 11.1.0. CVSS 3.1: 7.5 (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H). Published November 17, 2025.
Citations:
- 1: https://nvd.nist.gov/vuln/detail/CVE-2025-64756
- 2: GHSA-5j98-mcp5-4vw2
- 3: https://nvd.nist.gov/vuln/detail/cve-2025-64756
- 4: https://cvepremium.circl.lu/vuln/ghsa-5j98-mcp5-4vw2
- 5: https://osv.dev/vulnerability/GHSA-5j98-mcp5-4vw2
🏁 Script executed:
#!/bin/bash
# Find the root-level glob node_modules entry
rg -B 2 -A 10 '"node_modules/glob"' package-lock.json | grep -A 10 '"node_modules/glob":' | head -20Repository: deepnote/vscode-deepnote
Length of output: 850
Tighten glob minimum to prevent vulnerable range.
The declared range "^10.0.0" permits versions 10.2.0–10.4.x, which are vulnerable to CVE-2025-64756 (CLI command injection via --cmd flag). The lockfile currently resolves to 10.5.0 (safe), but the loose range could reintroduce vulnerability on lockfile regeneration. Update to "^10.5.0" to enforce the safe minimum.
Suggested diff
- "glob": "^10.0.0",
+ "glob": "^10.5.0",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "glob": "^10.0.0", | |
| "glob": "^10.5.0", |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@package.json` at line 2710, Update the declared dependency range for glob to
require the safe minimum by changing the version string from "^10.0.0" to
"^10.5.0" (the dependency key "glob" in package.json), then regenerate the
lockfile (run your package manager install) so the lockfile pins a
non-vulnerable 10.5.x+ release and run CI/tests to verify nothing breaks.
| "@vscode/test-cli": "^0.0.8", | ||
| "@vscode/test-electron": "^2.5.2", | ||
| "glob": "^7.1.2", | ||
| "glob": "^10.0.0", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Find the root package.json and other package.json files to understand the context
find . -name "package.json" -type f | head -20Repository: deepnote/vscode-deepnote
Length of output: 181
🏁 Script executed:
# Check the root package.json for glob dependency
cat package.json | grep -A 2 -B 2 '"glob"'Repository: deepnote/vscode-deepnote
Length of output: 218
🏁 Script executed:
# View the specific test package.json file mentioned
cat -n src/test/vscode-notebook-perf/package.json | grep -A 2 -B 2 "glob"Repository: deepnote/vscode-deepnote
Length of output: 423
🌐 Web query:
glob npm package security vulnerability version 10.0 10.2 10.4 10.5
💡 Result:
The npm package "glob" has a critical command injection vulnerability (CVE-2025-64756, GHSA-5j98-mcp5-4vw2) in its CLI tool when using the -c/--cmd option. This affects versions >=10.2.0 <10.5.0 (including 10.2.x, 10.4.x) and >=11.0.0 <11.1.0. Version 10.0.x is not affected as the vulnerable CLI feature was introduced in 10.2.0. Version 10.5.0 includes the backported fix. Vulnerability details: Matched filenames are passed to a shell with shell: true, allowing shell metacharacters in untrusted filenames (e.g., $(command)) to execute arbitrary code with user privileges. Only CLI usage is affected; the library API (glob, globSync) is safe. Fix: Upgrade to glob@10.5.0 or later (e.g., 11.1.0, 12.0.0+). New safe options: --cmd-arg/-g for positional args, --shell (deprecated, unsafe if paths untrusted). As of 2026-04-27, latest version is 13.0.6 (no known vulnerabilities).
Citations:
- 1: https://redirect.github.com/isaacs/node-glob/security/advisories/GHSA-5j98-mcp5-4vw2
- 2: https://vulert.com/vuln-db/glob-cli-command-injection-via-c-cmd-executes-matches-with-shell-true
- 3: https://snyk.io/vuln/SNYK-JS-GLOB-14040952
- 4: https://www.npmjs.com/package/glob
- 5: isaacs/node-glob@47473c0
- 6: https://redirect.github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0
🌐 Web query:
glob npm CVE vulnerability 10.5.0 patch release
💡 Result:
The npm glob package released version 10.5.0 as a patch for CVE-2025-64756, a critical command injection vulnerability in the glob CLI tool. The vulnerability affects the -c/--cmd option, where matched filenames are passed to a shell with shell: true, allowing arbitrary command execution via malicious filenames containing shell metacharacters. Affected versions are approximately >=10.2.0 <10.5.0 and >=11.0.0 <11.1.0 (minor variations in reports, e.g., some cite >=10.3.7). The issue is specific to CLI usage and does not affect the library API. Version 10.5.0 backports the fix from the main branch, adding safer options like --cmd-arg/-g and --shell (deprecated). Update via npm install glob@10.5.0 or higher.
Citations:
- 1: yesterday version 10.5.0 has vulnerabilities isaacs/node-glob#637
- 2: https://vulert.com/vuln-db/glob-cli-command-injection-via-c-cmd-executes-matches-with-shell-true
- 3: https://scout.docker.com/v/CVE-2025-64756?s=github&n=glob&t=npm&vr=>=10.2.0,<10.5.0
- 4: https://nvd.nist.gov/vuln/detail/CVE-2025-64756
- 5: https://redirect.github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0
- 6: https://security.snyk.io/package/npm/glob/10.5.0
- 7: https://security.snyk.io/package/npm/glob/10.4.5
Upgrade to ^10.5.0 to exclude glob CLI vulnerability CVE-2025-64756.
Versions 10.2.0–10.4.x have a critical command injection vulnerability in the -c/--cmd CLI option. The ^10.0.0 constraint allows these vulnerable versions if lockfile regeneration occurs. Update to ^10.5.0.
Suggested diff
- "glob": "^10.0.0",
+ "glob": "^10.5.0",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "glob": "^10.0.0", | |
| "glob": "^10.5.0", |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/test/vscode-notebook-perf/package.json` at line 35, Update the glob
dependency version constraint in package.json from "^10.0.0" to "^10.5.0" to
exclude vulnerable 10.2.0–10.4.x releases; after changing the "glob" entry,
regenerate the lockfile (npm install / yarn install), run the test suite and
dependency audit (npm audit or yarn audit) to ensure no regressions, and commit
the updated lockfile alongside the package.json change.
This PR contains the following updates:
^7.1.2→^10.0.0^9.3.5→^10.0.0glob CLI: Command injection via -c/--cmd executes matches with shell:true
CVE-2025-64756 / GHSA-5j98-mcp5-4vw2
More information
Details
Summary
The glob CLI contains a command injection vulnerability in its
-c/--cmdoption that allows arbitrary command execution when processing files with malicious names. Whenglob -c <command> <patterns>is used, matched filenames are passed to a shell withshell: true, enabling shell metacharacters in filenames to trigger command injection and achieve arbitrary code execution under the user or CI account privileges.Details
Root Cause:
The vulnerability exists in
src/bin.mts:277where the CLI collects glob matches and executes the supplied command usingforegroundChild()withshell: true:Technical Flow:
glob -c <command> <pattern>shell: trueAffected Component:
glob(),globSync(), streams/iterators) is not affectedAttack Surface:
$(), backticks,;,&,|, etc.glob -con untrusted contentPoC
Setup Malicious File:
Trigger Vulnerability:
Result:
$(touch injected_poc)in the filename is evaluated by the shellinjected_pocis created, proving command executionAdvanced Payload Examples:
Data Exfiltration:
Reverse Shell:
Environment Variable Harvesting:
Impact
Arbitrary Command Execution:
Real-World Attack Scenarios:
1. CI/CD Pipeline Compromise:
glob -cto process files (linting, testing, deployment)2. Developer Workstation Attack:
glob -cfor file processing3. Automated Processing Systems:
4. Supply Chain Poisoning:
Platform-Specific Risks:
Affected Products
src/bin.mts)-c/--cmdoption)Scope Limitation:
glob(),globSync(), async iterators) are safe-c/--cmdoption is vulnerableRemediation
glob@10.5.0,glob@11.1.0, or higher, as soon as possible.globCLI actions fail, then convert commands containing positional arguments, to use the--cmd-arg/-goption instead.--shellto maintainshell:truebehavior until glob v12, but take care to ensure that no untrusted contents can possibly be encountered in the file path results.Severity
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
isaacs/node-glob (glob)
v10.5.0Compare Source
v10.4.5Compare Source
v10.4.4Compare Source
v10.4.3Compare Source
v10.4.2Compare Source
v10.4.1Compare Source
v10.4.0Compare Source
v10.3.16Compare Source
v10.3.15Compare Source
v10.3.14Compare Source
v10.3.13Compare Source
v10.3.12Compare Source
v10.3.11Compare Source
v10.3.10Compare Source
v10.3.9Compare Source
v10.3.8Compare Source
v10.3.7Compare Source
v10.3.6Compare Source
v10.3.5Compare Source
v10.3.4Compare Source
v10.3.3Compare Source
v10.3.2Compare Source
v10.3.1Compare Source
v10.3.0Compare Source
v10.2.7Compare Source
v10.2.6Compare Source
v10.2.5Compare Source
v10.2.4Compare Source
v10.2.3Compare Source
v10.2.2Compare Source
v10.2.1Compare Source
v10.2.0Compare Source
v10.1.0Compare Source
v10.0.0Compare Source
v9.3.5Compare Source
v9.3.4Compare Source
v9.3.3Compare Source
nested extglob patterns.
v9.3.2Compare Source
v9.3.1Compare Source
v9.3.0Compare Source
v9.2.1Compare Source
v9.2.0Compare Source
v9.1.2Compare Source
v9.1.1Compare Source
v9.1.0Compare Source
v9.0.2Compare Source
v9.0.1Compare Source
v9.0.0Compare Source
v8.1.0Compare Source
v8.0.3Compare Source
v8.0.2Compare Source
v8.0.1Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.