GHSA-qqj6-54q6-cxv6: Medium severity go/github.com/snowflakedb/gosnowflake/v2 vulnerability
Insertion of sensitive information into log files in the Snowflake Python, Go, JDBC, Node.js, PHP PDO, and ODBC drivers allowed authentication tokens, query-result encryption keys, pre-signed cloud-storage URLs, and SAML assertions to be written to diagnostic logs in circumstances where the available log redaction did not cover all affected log paths and data types. An attacker with read access to the log destination, whether the local filesystem, a log aggregation service, or a CI/CD artifact store, could obtain credentials and decryption keys that, if still valid at the time of access, could be used to authenticate to the corresponding Snowflake account or cloud-storage object. Successful exploitation requires read access to the log destination, and impact is bounded by credential lifetime and object scope. The fix is available in Snowflake Connector for Python v4.7.3, Snowflake Go Driver v2.2.0, Snowflake JDBC Driver v4.3.4 (including the snowflake-jdbc-fips and snowflake-jdbc-thin), Snowflake Node.js Driver v3.3.0, Snowflake PHP PDO Driver v4.2.0, and Snowflake ODBC Driver v3.20.0. Users must manually upgrade and should securely delete previously generated diagnostic logs containing sensitive information where retention is not required.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/snowflakedb/gosnowflake/v2to a version that resolves this vulnerability.Fixed in 2.2.0 - Upgrade
Upgrade
maven/net.snowflake:snowflake-jdbc-fipsto a version that resolves this vulnerability.Fixed in 4.3.4 - Upgrade
Upgrade
maven/net.snowflake:snowflake-jdbc-thinto a version that resolves this vulnerability.Fixed in 4.3.4 - Upgrade
Upgrade
maven/net.snowflake:snowflake-jdbcto a version that resolves this vulnerability.Fixed in 4.3.4 - Upgrade
Upgrade
pip/snowflake-connector-pythonto a version that resolves this vulnerability.Fixed in 4.7.3 - Upgrade
Upgrade
npm/snowflake-sdkto a version that resolves this vulnerability.Fixed in 3.3.0 - Upgrade
Upgrade
Snowflake Connector for Pythonto a version that resolves this vulnerability.Fixed in 4.7.3 - Upgrade
Upgrade
Snowflake Go Driverto a version that resolves this vulnerability.Fixed in 2.2.0 - Upgrade
Upgrade
Snowflake JDBC Driverto a version that resolves this vulnerability.Fixed in 4.3.4 - Upgrade
Upgrade
Snowflake Node.js Driverto a version that resolves this vulnerability.Fixed in 3.3.0 - Upgrade
Upgrade
Snowflake PHP PDO Driverto a version that resolves this vulnerability.Fixed in 4.2.0 - Upgrade
Upgrade
Snowflake ODBC Driverto a version that resolves this vulnerability.Fixed in 3.20.0 - Operational
Securely delete previously generated diagnostic logs containing sensitive information where retention is not required.
Event History
Frequently Asked Questions
Who could exploit this issue?
An attacker needs read access to the diagnostic log destination. That can include the local filesystem, a log aggregation service, or a CI/CD artifact store where driver logs are retained.
What could be exposed through affected logs?
Diagnostic logs may contain authentication tokens, query-result encryption keys, pre-signed cloud-storage URLs, and SAML assertions. These values may permit authentication to the related Snowflake account or access to the corresponding cloud-storage object while they remain valid.
Which versions contain the fix?
Fixed versions are Snowflake Connector for Python 4.7.3, Snowflake Go Driver 2.2.0, Snowflake JDBC Driver 4.3.4 including the FIPS and thin variants, Snowflake Node.js Driver 3.3.0, Snowflake PHP PDO Driver 4.2.0, and Snowflake ODBC Driver 3.20.0. Users must manually upgrade.
What should be done in addition to upgrading?
Securely delete previously generated diagnostic logs that may contain sensitive values. Review and restrict access to all log destinations, including centralized logging and CI/CD artifact storage.