Fix brace-expansion DoS CVE-2026-13149 via overrides - #466
Conversation
- Pin brace-expansion@1 -> 1.1.16 and @2 -> 2.1.2 via package.json overrides, clearing GHSA-3jxr-9vmj-r5cp (CVE-2026-13149, exponential-time expansion DoS). brace-expansion is a dev-only transitive dep (via minimatch under eslint/mocha/nyc), not bundled in the shipped dist/. - The sibling GHSA-mh99-v99m-4gvg (CVE-2026-14257, OOM DoS) has no published fix (fixed=5.0.8 is not on npm; latest is 2.1.2) and is left UNSUPPRESSED so the scan keeps surfacing it until a fix is published. osv-scanner.toml carries a documentation-only note explaining this. Verified: OSV-Scanner shows CVE-2026-13149 cleared; e2e suite passes (106 passing, 0 failing). Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
There was a problem hiding this comment.
Verdict: 1 High
The override pins (brace-expansion@1 -> 1.1.16, @2 -> 2.1.2), osv-scanner note, and CHANGELOG entry are correct and well-documented. One HIGH issue: the regenerated lockfile resolves the new brace-expansion tarballs against an internal npm-proxy.dev.databricks.com host instead of public npm, which will break npm ci for external contributors.
| "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", | ||
| "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", | ||
| "version": "1.1.16", | ||
| "resolved": "https://npm-proxy.dev.databricks.com/brace-expansion/-/brace-expansion-1.1.16.tgz", |
There was a problem hiding this comment.
🟠 High — The 4 brace-expansion entries added/updated by this PR resolve to an internal Databricks host (https://npm-proxy.dev.databricks.com/...), while every other entry in package-lock.json resolves to the public https://registry.npmjs.org. This is a widely-consumed open-source connector; external contributors and public CI running npm ci will attempt to fetch these tarballs from npm-proxy.dev.databricks.com, which is not resolvable outside the Databricks network — breaking clean installs for anyone outside the internal network.
The lockfile was almost certainly regenerated against an internal proxy registry. Re-run the install with the public registry (e.g. npm install --registry=https://registry.npmjs.org) so the resolved URLs point at public npm, then commit. The integrity hashes should be identical since the tarball contents are the same.
Affected lines: 1864 (1.1.16), 4790 (2.1.2), 8113 (1.1.16), 10208 (2.1.2).
What & why
Resolves the two
brace-expansionDoS findings surfaced by OSV-Scanner.brace-expansionis a dev-only transitive dependency (pulled in viaminimatchundereslint/eslint-plugin-*/mocha/nyc— all devDependencies) and is not bundled in the shippeddist/(see.npmignore), so exposure is limited to the local lint/test toolchain.Fixed
brace-expansion@1 -> 1.1.16and@2 -> 2.1.2viapackage.jsonoverrides. Confirmed cleared by a rescan.Left unsuppressed (no fix available)
5.0.8is not on npm (latest across all lines is2.1.2;npm view brace-expansion@5.0.8→ 404), and its affected range is<= 5.0.7, i.e. every published version. It is intentionally left unsuppressed so the scan keeps surfacing it and it gets remediated as soon as a fix is published.osv-scanner.tomlcarries a documentation-only note explaining this (no[[IgnoredVulns]]entry).Verification
This pull request and its description were written by Isaac.