Executive brief
Snowflake's Python API library contains two input validation flaws that allow attackers to bypass access controls on cloud database operations. An attacker who can supply data to an application built on this library can manipulate API requests to access resources outside their permission level or modify operations (such as cloning or renaming databases) in unintended ways. This risk is especially acute when the library is used in high-privilege contexts like stored procedures or Streamlit applications.
Technical details
The vulnerability consists of two related weaknesses in Snowflake Python API (`snowflake.core`) versions before 1.13.0: path traversal (CWE-22) via unencoded `..` segments in identifier paths, and HTTP parameter pollution (CWE-141) via unencoded special characters (`&`, `#`, `=`) in query string values. An attacker with control over object names or identifiers passed to the library can craft requests to traverse to parent resources or inject parameters that override operation constraints (e.g., on swap, clone, or rename operations). Exploitation requires the application to run under a higher-privileged Snowflake session, such as EXECUTE AS OWNER in a stored procedure, Streamlit app, or Native App. The fix is available in version 1.13.0 and requires manual upgrade.
Affected products
- Snowflake Python API prior to 1.13.0
Timeline
- 2026-08-12: disclosed