Executive brief
Snowflake SQLAlchemy is a Python library that allows applications to interact with Snowflake databases using the SQLAlchemy ORM. Versions prior to 1.11.0 contain multiple security flaws that allow attackers to inject SQL commands, exfiltrate data, and read arbitrary files from the server. An attacker with low privileges or network access can exploit these vulnerabilities through user-controlled input in merge operations, table creation queries, or connection parameters, potentially exposing sensitive database contents or configuration files.
Technical details
Snowflake SQLAlchemy versions ≥1.1.6 and <1.11.0 contain three distinct SQL injection and file disclosure vulnerabilities. First, improper handling of user-supplied column identifiers in MERGE operations allows SQL injection via attacker-controlled keys in request field names, enabling data exfiltration or modification within the MERGE scope. Second, improper literal rendering of bound parameters in Snowflake-specific CREATE TABLE queries allows SQL injection when user-controlled strings are passed through the query-building API, enabling arbitrary data exfiltration within the connection role's permissions. Third, improper forwarding of connection configuration parameters (CWE-73) enables path traversal attacks where an attacker can cause the library to read and transmit arbitrary local files to attacker-controlled endpoints in environments accepting user-controlled connection parameters. The attack vector is network-based, requires low privileges, no user interaction, and affects confidentiality (data/file disclosure) and integrity (data modification). Patches are available in version 1.11.0; manual upgrade is required.
Affected products
- Snowflake snowflake-sqlalchemy >=1.1.6, <1.11.0
Timeline
- 2026-07-14: disclosed: Published to GitHub Advisory Database and NVD
- 2026-07-14: patched: Fix available in version 1.11.0
References
- https://github.com/snowflakedb/snowflake-sqlalchemy/releases
- https://github.com/snowflakedb/snowflake-sqlalchemy/pull/707
- https://github.com/snowflakedb/snowflake-sqlalchemy/pull/708
- https://github.com/snowflakedb/snowflake-sqlalchemy/pull/710
- https://github.com/snowflakedb/snowflake-sqlalchemy/commit/2c33792c91449e746a2c7ef24c25f0ede0a4a875