Skip to content

chore(security): remediate OSV findings - #538

Merged
vuanhphung merged 5 commits into
mainfrom
ai/security-scan-remediation
Oct 6, 2026
Merged

vuanhphung merged 5 commits into
mainfrom
ai/security-scan-remediation

Conversation

@peco-engineer-bot

@peco-engineer-bot peco-engineer-bot Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Automated remediation for findings from the weekly OSS driver security scan.

Updates:

  • brace-expansion lock entries (1.1.18, 2.1.4) -> patched releases
  • ip-address lock entries (10.3.1) -> patched releases
  • basic-ftp override ^5.3.1 -> ^6.2.1 to clear GHSA-c475-qrg2-pj4r. get-uri (through 8.0.1) caps basic-ftp at ^5.3.1, so this is forced the same way as the existing ip-address override. The Client API get-uri uses is unchanged in 6.x; the 6.0 major only defaults allowSeparateTransferHost to false. SECURITY-OVERRIDES.md is updated.
  • resolved URLs for the bumped entries point at registry.npmjs.org (the automated bump had resolved them from an internal mirror)

Suppressed in osv-scanner.toml (expires 2026-12-06 for re-review; the advisory is new, so an upstream fix may land soon):

  • braces (GHSA-vfj7-8cjw-p6xm): no fixed release exists (3.0.3 is latest). Dev-only via mocha and globby; not in the shipped dist/.

Also fixes the ignoreUntil example in osv-scanner.toml: OSV-Scanner fails to load a quoted date string, so it must be a bare TOML date.

The repository's Security Scan check is the authoritative validation.

Source: https://github.com/databricks/databricks-driver-test/actions/runs/37187456062

Signed-off-by: peco-engineer-bot[bot] <287056288+peco-engineer-bot[bot]@users.noreply.github.com>
@peco-engineer-bot peco-engineer-bot Bot added skip-coverage Skip the coverage fan-out for this PR (no tracking issue opened in databricks-driver-test) ai-assisted labels Oct 4, 2026
@vuanhphung
vuanhphung marked this pull request as ready for review October 5, 2026 16:10

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: 1 High

Lockfile-only security bump of brace-expansion (→1.1.21/2.1.7) and ip-address (→10.7.2); the version/integrity updates themselves look correct. One high concern: the six updated entries now resolve from the private databricks.jfrog.io Artifactory mirror while the rest of the committed lockfile uses the public registry.npmjs.org, which will break npm ci for external consumers and public CI.

Comment thread package-lock.json Outdated
The remediation bumps resolved from the internal Artifactory mirror; point them at registry.npmjs.org like the rest of the lockfile.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No issues identified by the review bot.

braces has no fixed release and is dev-only. The basic-ftp fix (6.2.1) is outside get-uri's ^5.3.1 range, and its vulnerable path needs a pac+ftp:// proxy, which ProxyOptions doesn't allow. Both expire 2027-04-05 for re-review.

Also fix the ignoreUntil example: OSV-Scanner rejects a quoted date string.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No issues identified by the review bot.

…HSA-c475-qrg2-pj4r

get-uri caps basic-ftp at ^5.3.1, but an override clears the advisory the same way the existing ip-address override does. The Client API get-uri uses is unchanged in 6.x.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: 1 Low

Looks good — a clean OSV remediation PR (lockfile bumps, overrides change, OSV suppression, doc updates). The package.json override / lock resolved+integrity / rewritten get-uri requires are mutually consistent, and the OSV-Scanner bare-date fix is correct (a quoted string fails to unmarshal into a time value). One low note on the basic-ftp major-version bump's documented behavior change.

Comment thread package.json
},
"overrides": {
"basic-ftp": "^5.3.1",
"basic-ftp": "^6.2.1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Low — This override forces basic-ftp across a major version boundary (5.x → 6.x), past get-uri's declared ^5.3.1 cap. As the SECURITY-OVERRIDES.md note acknowledges, 6.0 changes the default of allowSeparateTransferHost to false, so FTP data connections where the PASV/EPSV reply names a different host than the control connection are now rejected. For this connector that path is only reachable via an ftp:// proxy URI through proxy-agent, so the blast radius is small and the change is intentional — flagging only so the behavioral shift is visible to reviewers/consumers who may rely on FTP-proxy transfers. No change requested.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is basic-ftp used for in the codebase? is the vulnerable path touched by our code?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. basic-ftp isn't a direct dependency — it's pulled in transitively through proxy-agent → pac-proxy-agent → get-uri → basic-ftp (see SECURITY-OVERRIDES.md). The only consumer of proxy-agent in our code is HttpConnection.createProxyAgent (lib/connection/connections/HttpConnection.ts:81), which builds the proxy URL from ProxyOptions.protocol. That field is typed to 'http' | 'https' | 'socks' | 'socks4' | 'socks4a' | 'socks5' | 'socks5h' (lib/connection/contracts/IConnectionOptions.ts) — ftp is not an allowed value, so we never hand proxy-agent an ftp:// proxy URI. get-uri's FTP branch (the only code that touches basic-ftp) is reached only via an FTP-scheme proxy, so in practice our code path never exercises basic-ftp at all. The override exists purely to clear the OSV finding on the transitive dependency; the allowSeparateTransferHost behavioral change in 6.x has no reachable effect here. No change needed.

Comment thread osv-scanner.toml Outdated

[[IgnoredVulns]]
id = "GHSA-vfj7-8cjw-p6xm"
ignoreUntil = 2027-04-05

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this was reported only 3 days ago, we might have a fix soon, so we could have a shorter ignoreUntil deadline.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change this to 2 months from now

Comment thread package.json
},
"overrides": {
"basic-ftp": "^5.3.1",
"basic-ftp": "^6.2.1",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

notice another vulnerability fixed in 6.2.2: GHSA-5rfr-xx34-2xxv

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6.2.2 may not be available in our internal proxy for another week or so, I think we can update to that later

GHSA-vfj7-8cjw-p6xm is newly published, so an upstream fix may land soon; re-review sooner than the usual ~6 months.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: Vu Anh Phung <vu.phung@databricks.com>

@peco-review-bot peco-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No issues identified by the review bot.

@vuanhphung
vuanhphung added this pull request to the merge queue Oct 6, 2026
Merged via the queue into main with commit 0f9a6d7 Oct 6, 2026
29 checks passed

This branch was successfully deployed

1 active deployment
azure-prod — fe68767b Deployed Oct 6, 2026 by vuanhphung via e2e-test (20) #1640
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-assisted skip-coverage Skip the coverage fan-out for this PR (no tracking issue opened in databricks-driver-test)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants