-
Notifications
You must be signed in to change notification settings - Fork 4
fix(deps): update dependency glob to v10 [security] #210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
📝 WalkthroughWalkthroughThe glob dependency is upgraded in two package.json files: in the root package.json from ^9.3.5 to ^10.0.0, and in src/test/vscode-notebook-perf/package.json from ^7.1.2 to ^10.0.0. No functional code changes are present. Pre-merge checks✅ Passed checks (3 passed)
Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
Comment |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ 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.json(1 hunks)src/test/vscode-notebook-perf/package.json(1 hunks)
🔇 Additional comments (1)
package.json (1)
2504-2504: Confirm glob library API usage only; manual verification recommended.Script search found no obvious glob CLI invocation with
-c/--cmdflags in the codebase. However, absence of matches doesn't guarantee safety—indirect or dynamic invocation patterns may not appear in simple searches. Review the codebase manually to confirm:
- glob is invoked via
glob()orglobSync()API calls only- No child_process calls (spawn/exec/execFile) invoke the glob CLI binary
- No build or runtime scripts pass user-controlled data to glob CLI with
-cor--cmdoptionsIf all three checks pass, the upgrade to glob@^11.0.0 is safe.
package.json
Outdated
| "format-util": "^1.0.5", | ||
| "fs-extra": "^4.0.3", | ||
| "glob": "^9.3.5", | ||
| "glob": "^11.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pin glob to ≥11.1.0 to ensure vulnerability fix is installed.
The caret range ^11.0.0 allows npm to install glob@11.0.0, which may still contain the vulnerability. Per the PR objectives, the fix is in glob@11.1.0+. Update to ^11.1.0 or use >=11.1.0 <12.0.0 to guarantee the patched version.
- "glob": "^11.0.0",
+ "glob": "^11.1.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": "^11.0.0", | |
| "glob": "^11.1.0", |
🤖 Prompt for AI Agents
In package.json around line 2504, the dependency "glob" is pinned as "^11.0.0"
which allows installing vulnerable 11.0.0; change the version spec to "^11.1.0"
(or ">=11.1.0 <12.0.0") to ensure the patched release is used, then update your
lockfile (run npm install or yarn install) and commit the updated lockfile so CI
installs the fixed version.
| "@vscode/test-cli": "^0.0.8", | ||
| "@vscode/test-electron": "^2.3.9", | ||
| "glob": "^7.1.2", | ||
| "glob": "^11.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Update to glob@^11.1.0 and verify test compatibility with breaking changes.
Same issue as root package.json: the caret range allows glob@11.0.0 (potentially vulnerable). Additionally, upgrading from v7 to v11 carries breaking changes risk. Confirm that test scripts and patterns remain compatible with the major version jump.
- "glob": "^11.0.0",
+ "glob": "^11.1.0",Verify test compatibility after upgrade:
🏁 Script executed:
#!/bin/bash
# Run performance tests to confirm glob patterns work as expected
npm run test --workspace=src/test/vscode-notebook-perfLength of output: 201
---
🏁 Script executed:
```shell
#!/bin/bash
# Check test package.json content
cat src/test/vscode-notebook-perf/package.json | grep -A 5 -B 5 '"glob"'
Length of output: 305
🏁 Script executed:
#!/bin/bash
# Search for glob usage in test directory
rg -n 'glob' src/test/vscode-notebook-perf/ --type json --type js --type tsLength of output: 3211
🌐 Web query:
glob npm package v11.0.0 security vulnerabilities
💡 Result:
Yes — glob v11.0.0 is within a range of affected versions for a high‑severity command‑injection vulnerability (CVE‑2025‑64756). The CLI's -c/--cmd option passed matched filenames to a shell (shell: true), allowing arbitrary commands when filenames contain shell metacharacters. The issue affects versions 10.3.7 through 11.0.3 and was patched in 11.1.0; remediate by upgrading to >=11.1.0 or avoiding the -c/--cmd CLI usage with untrusted filenames. [1][2]
Sources:
[1] NVD entry for CVE‑2025‑64756. [2] CVE/technical summaries and advisory (details, affected versions, patch).
🌐 Web query:
glob v7 to v11 breaking changes migration
💡 Result:
Do you mean the Node "glob" package (isaacs/node-glob) and want a concise list of breaking changes and migration steps from v7 → v11? If yes, I’ll fetch the changelog and give a short, version-by-version migration checklist.
Update glob@^11.0.0 to glob@^11.1.0 to patch CVE-2025-64756.
glob v11.0.0 contains a high-severity command-injection vulnerability (CVE-2025-64756) affecting versions 10.3.7 through 11.0.3, fixed in 11.1.0. The package-lock.json is already locked to v11.1.0 (tests compatible), but package.json must be updated to prevent fresh installs from pulling the vulnerable version.
- "glob": "^11.0.0",
+ "glob": "^11.1.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": "^11.0.0", | |
| "glob": "^11.1.0", |
🤖 Prompt for AI Agents
In src/test/vscode-notebook-perf/package.json around line 35, the dependency
"glob": "^11.0.0" must be bumped to "glob": "^11.1.0" to avoid CVE-2025-64756;
update that version string in package.json, run npm install (or npm ci/npm
update as appropriate) to regenerate and verify package-lock.json stays at
v11.1.0, run tests to confirm compatibility, and commit the updated package.json
and lockfile.
38841e5 to
dcd63c8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
src/test/vscode-notebook-perf/package.json (1)
35-35: Pin glob to ^10.5.0 or ^11.1.0 to ensure vulnerability is patched.Same issue as root
package.json: the caret range^10.0.0allows npm to install vulnerable versions (10.3.7 through 10.4.x). Update to^10.5.0or^11.1.0per the PR security advisory.- "glob": "^10.0.0", + "glob": "^10.5.0",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ 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.json(1 hunks)src/test/vscode-notebook-perf/package.json(1 hunks)
| "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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pin glob to ^10.5.0 or ^11.1.0 to ensure vulnerability is patched.
The caret range ^10.0.0 permits installation of versions 10.3.7 through 10.4.x, which contain CVE-2025-64756. Per the PR objectives, the fix is available in glob@10.5.0 (v10 branch) or glob@11.1.0+ (v11 branch). Update the version constraint to guarantee the patched version is installed.
- "glob": "^10.0.0",
+ "glob": "^10.5.0",Or use ^11.1.0 if you prefer the latest stable release with full v11 enhancements.
📝 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
In package.json around line 2504, the "glob" dependency is pinned to "^10.0.0"
which allows vulnerable 10.3.7–10.4.x versions; update the version constraint to
a patched release by changing it to either "^10.5.0" (v10 branch) or "^11.1.0"
(v11 branch) and then regenerate the lockfile (npm/yarn/pnpm install) to ensure
the patched version is recorded.
This PR contains the following updates:
^7.1.2->^10.0.0^9.3.5->^10.0.0GitHub Vulnerability Alerts
CVE-2025-64756
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.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: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 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.