GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||
GeezerVison is showing github.com — Fix #462: verify Thrift TLS server certificate by default [PECOBLR-3837][SEC-20280] by msrathore-db · Pull Request #463 · databricks/databricks-sql-nodejs Conversation
Contributor
SummaryFixes #462. The Thrift HTTPS agent hardcoded This PR makes the Thrift path secure-by-default (matching Node's Changes
Behavior
Testing
CompatibilitySecure-by-default is a behavior change: environments relying on the old permissive default (self-signed/internal certs) must set This pull request and its description were written by Isaac.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. The Thrift HTTPS agent hardcoded `rejectUnauthorized: false`, disabling server-certificate verification entirely. Any self-signed, expired, or wrong-hostname certificate was accepted, exposing bearer-token traffic to man-in-the-middle attacks, and supplying a CA had no effect. Make the Thrift path secure-by-default (matching Node's https default, the JDBC/ODBC drivers, and the SEA backend) and add SEA-parity public options on ConnectionOptions: - checkServerCertificate (default true) -> agent rejectUnauthorized - customCaCert -> additive to the system trust store (appended to tls.rootCertificates, so public warehouses keep validating) - clientCert / clientKey -> client certificate + key for mutual TLS Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <[email protected]>
msrathore-db
force-pushed
the
fix/issue-462-thrift-tls-verification
branch
from
126467b to
055fc81
Compare
sreekanth-db
approved these changes
msrathore-db
had a problem deploying
to
azure-prod
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verdict: 1 Medium · 1 Low Solid, correctly-scoped security fix — flipping the Thrift HTTPS agent to verify server certs by default is the right call, the additive-CA approach avoids breaking public warehouses, and the unit coverage (default-on, opt-out mapping, additive CA, mTLS mapping) is good. Two edge-case notes:
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsUh oh!
There was an error while loading. Please reload this page. Uh oh!
There was an error while loading. Please reload this page. …tls-verification Signed-off-by: Madhavendra Rathore <[email protected]> Bump as far as the registry allows and suppress the rest: - brace-expansion 1.1.15 -> 1.1.16, 2.1.1 -> 2.1.3, clearing GHSA-3jxr-9vmj-r5cp (the finding that was blocking this PR). - ip-address 10.2.0 -> 10.3.1, clearing GHSA-mwp4-54f8-5fhr (7.7), GHSA-22jq-vg5j-6vgg and GHSA-4xrf-jv44-h6hh. This one is a production dependency (via socks). - Suppress GHSA-mh99-v99m-4gvg and GHSA-rgw5-rvv9-x895, two newer brace-expansion DoS advisories with no published fix: they name 1.1.17/1.1.18/2.1.4 as fixed, but npm's latest releases are 1.1.16 and 2.1.3. Both are dev-only (eslint/glob/test-exclude -> minimatch; `npm ls --omit=dev` is empty), so they don't reach the shipped dist/. Time-boxed to 2027-02-05 to force a re-review. Both package.json and the existing overrides were left untouched -- the declared ranges already permitted the patched versions. Verified locally with osv-scanner v2.3.8 (the version CI pins): "No issues found". npm ci, lint, and the unit suite (1262 passing) are green. Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <[email protected]>
msrathore-db
force-pushed
the
fix/issue-462-thrift-tls-verification
branch
from
5446896 to
b28ee14
Compare
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verdict: 1 Medium · 1 Low Solid, well-motivated security fix: flipping the Thrift HTTPS agent to verify-by-default is correct, the additive
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsUh oh!
There was an error while loading. Please reload this page. Uh oh!
There was an error while loading. Please reload this page. Addresses: - #3715674893 at lib/DBSQLClient.ts:205 - #3715674899 at lib/DBSQLClient.ts:207 - #3715713253 at lib/contracts/IDBSQLClient.ts:94 - #3715713261 at lib/DBSQLClient.ts:207 Signed-off-by: peco-engineer-bot[bot] <peco-engineer-bot[bot]@users.noreply.github.com> There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verdict: 1 Low Solid, well-tested secure-by-default TLS fix — the hardcoded
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsUh oh!
There was an error while loading. Please reload this page. Addresses: - #3715785609 at lib/DBSQLClient.ts:240 Signed-off-by: peco-engineer-bot[bot] <peco-engineer-bot[bot]@users.noreply.github.com> There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verdict: 1 Low Solid, well-tested security fix — Thrift TLS now verifies the server cert by default and the secure default correctly propagates to the proxy agent and CloudFetch downloads (both reuse
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsUh oh!
There was an error while loading. Please reload this page. Addresses: - #3715840256 at lib/DBSQLClient.ts:241 Signed-off-by: peco-engineer-bot[bot] <peco-engineer-bot[bot]@users.noreply.github.com> There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verdict: 1 Low Solid, well-tested security fix — server-cert verification now defaults on across both the direct HTTPS agent and the proxy's inner agent, and I confirmed no other
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsUh oh!
There was an error while loading. Please reload this page. Addresses: - #3715934115 at lib/DBSQLClient.ts:259 Signed-off-by: peco-engineer-bot[bot] <peco-engineer-bot[bot]@users.noreply.github.com> There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ✅ No issues identified by the review bot.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsUh oh!
There was an error while loading. Please reload this page.
msrathore-db
added a commit
that referenced
this pull request
Removes the two [[IgnoredVulns]] entries added in #463, restoring osv-scanner.toml to having no suppressions. The real dependency bumps from that PR are deliberately kept: brace-expansion 1.1.16 / 2.1.3 and ip-address 10.3.1 (the latter a production dependency via socks) all stay in package-lock.json. Why revert: [[IgnoredVulns]] entries are CVE-id global in OSV-Scanner v2.3.8 -- they silence the advisory across every package it is reported against, not just brace-expansion. That is broader than the problem being solved, and the entries landed inside a security PR without a security reviewer explicitly signing off on them. Backing them out so the decision can be made on its own merits. Consequence, intentional: the Security Scan gate fails again on three dev-only brace-expansion findings (GHSA-mh99-v99m-4gvg, GHSA-rgw5-rvv9-x895). There is no published fix -- the advisories name 1.1.17/1.1.18/2.1.4 but npm's latest releases are 1.1.16 and 2.1.3. These are dev-only: brace-expansion reaches us solely via the eslint/glob/test-exclude toolchains through minimatch, `npm ls brace-expansion --omit=dev` is empty, and both lockfile entries are marked "dev": true, so they are not reachable from the published dist/. Impact is DoS on adversarial brace patterns, which would require untrusted input to our own lint/test globs. Note the gate was already failing on main before #463 for these same dependencies, so this restores the prior state rather than causing a new regression. Signed-off-by: Madhavendra Rathore <[email protected]>
This was referenced
This branch was previously deployed1 inactive deployment
azure-prod
—
884c76f1
Deployed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ReviewersUh oh!
There was an error while loading. Please reload this page. AssigneesNo one assignedLabels
engineer-bot
ProjectsMilestoneNo milestoneDevelopmentSuccessfully merging this pull request may close these issues. Thrift backend hardcodes rejectUnauthorized: false — no way to enable TLS certificate verificationUh oh!
There was an error while loading. Please reload this page. 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. | ||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |