Snowflake Python APIs: privilege escalation
High8.1CVE-2026-19594 · Published Aug 12, 2026 · updated Sep 8, 2026
Insufficient input sanitization in Snowflake Python API (`snowflake.core`) versions prior to 1.13.0 allowed confused-deputy privilege escalation through two related weaknesses: path traversal (CWE-22) via unencoded `..` identifier path segments, and HTTP parameter pollution (CWE-141) via unencoded `&`/`#`/`=` characters in query string values. An attacker with access to a downstream application built on snowflake.core could exploit the path traversal by supplying `..` as an object name, causing `snowflake.core` to issue REST requests against a parent resource or exploit the parameter pollution by injecting `&`/`#`/`=` into a free-form name field to override constraints on swap, clone, or rename operations — all executed under the application's privileged session. Successful exploitation requires the attacker to control an identifier or object-name string in an application built on snowflake.core that passes it to `snowflake.core` under a higher-privileged Snowflake session (e.g., an EXECUTE AS OWNER stored procedure, Streamlit app, or Native App). The fix is available in Snowflake Python API version 1.13.0, which also addresses several additional security findings. Users must manua...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| Snowflake Python APIs Product | < 1.13.0 | 1.13.0 |
Details and references
Insufficient input sanitization in Snowflake Python API (`snowflake.core`) versions prior to 1.13.0 allowed confused-deputy privilege escalation through two related weaknesses: path traversal (CWE-22) via unencoded `..` identifier path segments, and HTTP parameter pollution (CWE-141) via unencoded `&`/`#`/`=` characters in query string values. An attacker with access to a downstream application built on snowflake.core could exploit the path traversal by supplying `..` as an object name, causing `snowflake.core` to issue REST requests against a parent resource or exploit the parameter pollution by injecting `&`/`#`/`=` into a free-form name field to override constraints on swap, clone, or rename operations — all executed under the application's privileged session. Successful exploitation requires the attacker to control an identifier or object-name string in an application built on snowflake.core that passes it to `snowflake.core` under a higher-privileged Snowflake session (e.g., an EXECUTE AS OWNER stored procedure, Streamlit app, or Native App). The fix is available in Snowflake Python API version 1.13.0, which also addresses several additional security findings. Users must manually upgrade.
More Snowflake advisories
All Snowflake| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Sep 10 | Improper OCSP response validation in Snowflake drivers | High7.4 | 3.3.0+3 more |
| Sep 10 | Snowflake JDBC Driver auto-configuration account validation permits credential redirection | Medium5.3 | 4.3.4+2 more |
| Jul 24 | Snowflake ODBC Driver: remote code execution | High8.8 | Snowflake libsnowflakeclient 2.9.2+2 more |
| Jul 16 | Snowflake Connector for Python: improper TLS hostname check | Critical9.2 | 3.18.1+1 more |
| Jul 14 | Snowflake SQLAlchemy: SQL injection | High8.3 | 1.11.0 |
| Jul 14 | Snowflake Spark Connector: SQL injection | Critical9.2 | 3.2.1 |