CVE-2026-19594
Full vulnerability record from the local CVENow database.
Description
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.
View original CVE JSON
{
"id": "CVE-2026-19594",
"sourceIdentifier": "412d305a-227d-44f9-a262-a31ba44f2aea",
"published": "2026-08-12T06:21:57.223",
"lastModified": "2026-10-23T20:10:00.160",
"vulnStatus": "Awaiting Analysis",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
},
{
"lang": "es",
"value": "La sanitización insuficiente de entradas en las versiones de la API de Python de Snowflake (’snowflake.core’) anteriores a la 1.13.0 permitió la escalada de privilegios de delegado confuso a través de dos debilidades relacionadas: salto de ruta (CWE-22) mediante segmentos de ruta de identificador ’..’ sin codificar, y contaminación de parámetros HTTP (CWE-141) mediante caracteres ’&’/’#’/’=’ sin codificar en los valores de la cadena de consulta. Un atacante con acceso a una aplicación descendente construida sobre snowflake.core podría explotar el salto de ruta al proporcionar ’..’ como nombre de objeto, haciendo que ’snowflake.core’ emita solicitudes REST contra un recurso padre o explotar la contaminación de parámetros inyectando ’&’/’#’/’=’ en un campo de nombre de formato libre para anular las restricciones en operaciones de intercambio, clonación o renombramiento - todas ejecutadas bajo la sesión privilegiada de la aplicación. La explotación exitosa requiere que el atacante controle una cadena de identificador o nombre de objeto en una aplicación construida sobre snowflake.core que la pasa a ’snowflake.core’ bajo una sesión de Snowflake con privilegios más altos (por ejemplo, un procedimiento almacenado EXECUTE AS OWNER, una aplicación Streamlit o una aplicación nativa). La solución está disponible en la versión 1.13.0 de la API de Python de Snowflake, que también aborda varios hallazgos de seguridad adicionales. Los usuarios deben actualizar manualmente."
}
],
"affected": [
{
"source": "412d305a-227d-44f9-a262-a31ba44f2aea",
"affectedData": [
{
"vendor": "Snowflake",
"product": "Snowflake Python APIs",
"defaultStatus": "unaffected",
"versions": [
{
"version": "0",
"lessThan": "1.13.0",
"versionType": "python",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "412d305a-227d-44f9-a262-a31ba44f2aea",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "NONE",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 2.8,
"impactScore": 5.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-08-12T12:33:49.665759Z",
"id": "CVE-2026-19594",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "412d305a-227d-44f9-a262-a31ba44f2aea",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-22"
},
{
"lang": "en",
"value": "CWE-141"
}
]
}
],
"references": [
{
"url": "https://pypi.org/project/snowflake.core/1.13.0/",
"source": "412d305a-227d-44f9-a262-a31ba44f2aea"
}
]
}