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🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 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
| "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
# Find usages of deprecated glob.sync() pattern
echo "=== Checking for glob.sync() usage ==="
rg -n 'glob\.sync\s*\(' --type js --type ts
echo ""
echo "=== Checking glob import patterns ==="
rg -n "import.*glob.*from\s+['\"]glob['\"]" --type js --type ts
echo ""
echo "=== Checking for globSync named import ==="
rg -n "import.*\{.*globSync.*\}.*from\s+['\"]glob['\"]" --type js --type tsRepository: deepnote/vscode-deepnote
Length of output: 1262
Security update requires API migration before merging.
CVE-2025-64756 fix is good, but glob v10 replaces glob.sync() with globSync() named export. Three files need updates:
gulpfile.js:69build/webTestReporter.js:153build/webpack/common.js:25
Each needs: change import glob from 'glob' to import { globSync } from 'glob' and glob.sync() calls to globSync().
🤖 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 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.
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.Severity
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:HRelease 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.
Summary by CodeRabbit
globdependency to version 10.0.0 across project packages.