CVE-2026-19594
Path Traversal and HTTP Parameter Pollution in Snowflake Python API (snowflake.core) Allow Confused-Deputy Privilege Escalation
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.1
Path Traversal and HTTP Parameter Pollution in Snowflake Python API (snowflake.core) Allow Confused-Deputy Privilege Escalation
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.
- Record
CVE-2026-19594- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - Weakness
- CWE-22, CWE-141
- Updated
- 2026-11-02
EUVDEUVD-2026-57071
8.1
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.
- Record
EUVD-2026-57071- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-qfpg-v669-8p3h
8.1
Insufficient input sanitization in Snowflake Python API (`snowflake.core`) versions prior to 1.13...
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.
- Record
GHSA-qfpg-v669-8p3h- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
8.1
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.
- Record
CVE-2026-19594- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - Weakness
- CWE-22, CWE-141
- Updated
- 2026-11-02
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-19594 is a high vulnerability (CVSS 8.1) in Snowflake Python Apis, published August 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.50%, the 42nd percentile. No source names a fixed version.