Repository navigation
fix: replace globby with tinyglobby to drop braces (CVE-2026-93687) @W-24615276@ - #949
Merged
k80bowman merged 1 commit intoOct 22, 2026
Conversation
k80bowman
approved these changes
Oct 22, 2026
k80bowman
left a comment
Contributor
There was a problem hiding this comment.
Looks good! I ran CI tests on a separate branch and they all passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Replaces
globby@11withtinyglobbyinzipDir(src/utils/packageUtils.ts) andPackageProfileApi.findAllProfiles(src/package/packageProfileApi.ts).globby→fast-glob→micromatch→braces@3.0.3is flagged by an open CVE, CVE-2026-93687 / GHSA-vfj7-8cjw-p6xm. The CVE is disputed upstream (micromatch/braces#70) and no patched release exists, so we can't wait for a fix. Dropping the dependency clears it for@salesforce/cli.tinyglobbyusesfdir+picomatch(nobraces) and is already in the sf CLI dependency tree through@oclif/plugin-plugins.Notes on keeping behavior the same:
zipDir:glob('**/*', { cwd: dir, expandDirectories: false })returns the same cwd-relative file list. Directories, empty directories and dotfiles are handled the same way.findAllProfiles:ignoreagainst paths relative tocwd. With the defaultcwd, an absolute package dir outsideprocess.cwd()(or a symlinked path such as/tmp→/private/tmpon macOS) produces../paths, and**/<excluded>/**stops matching. Using the filesystem root ascwdwithabsolute: truekeeps globby's behavior of matchingignoreagainst the full path.Profilemembers in the generated manifest. The existing testshould include profiles from all package directories when scopeProfiles is falsecovers this.@types/picomatchis added as a devDependency becausefdir's typings importpicomatch(same approach asoclif/core).Testing
yarn test(compile, lint, unit tests, link-check) passes: 288 passing.globbycalls and the compiled new functions side by side on a fixture project:zipDir: same file set (including nested files, an empty dir, a dotfile, a dotdir and a symlink).findAllProfiles: covered several package dir layouts (including nested package dirs),/tmpand/private/tmpproject paths, severalprocess.cwd()values and fiveexcludedDirectoriesinputs. Results are identical per package directory, in the same package directory order. Order between sibling subfolders inside one package directory can differ, since both libraries return those in filesystem walk order.yarn why bracesshowsbracesonly via dev dependencies (@salesforce/dev-scripts→mocha/wireit).What issues does this PR fix or reference?
bracesfrom@salesforce/cliruntime deps, alongside fix: replace fast-glob with tinyglobby to drop braces (CVE-2026-93687) @W-24615276@ salesforcecli/plugin-sobject#1069. A follow-up PR will go to forcedotcom/salesforcedx-apex (@salesforce/apex-node).