---
id: "CVE-2026-123859"
page: "https://infrastack.ai/live/CVE-2026-123859"
kind: "vulnerability"
aliases: ["CVE-2026-123859"]
title: "Snowflake Connector for Python: write_pandas column names enable SQL injection"
severity: "high"
cvss: 8.1
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["data-pipelines", "package", "python", "snowflake"]
not_affected_if: ["default-config", "trusted-column-names"]
published_at: "2026-11-06T17:17:25+00:00"
first_seen_at: "2026-11-06T17:43:14+00:00"
updated_at: "2026-11-06T17:44:54+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-123859", "first_seen_at": "2026-11-06T17:43:14+00:00"}]
exploit_sources: []
---

# Snowflake Connector for Python: write_pandas column names enable SQL injection

Link for people: https://infrastack.ai/live/CVE-2026-123859 (this .md is for agents)

When identifier escaping is turned off through a non-default setting, the write_pandas() function in the Snowflake Connector for Python does not escape DataFrame column names before building SQL. A crafted column name can chain extra SQL statements, letting an attacker read, change or delete data the application's Snowflake role can reach.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed connector version with `pip show snowflake-connector-python` (or the Universal Core package used by the project)
- Look for calls to `write_pandas()` in the codebase and check whether identifier escaping is disabled in the connection or call settings
- Check whether any of those calls pass column names that come from user input

## Fix

- Snowflake Connector for Python: `4.8.1`
- Snowflake Connector for Python (Universal Core): `5.2.0`

## Timeline

- 2026-11-06T17:43:14+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-123859

## From the sources

When identifier escaping is disabled through a non-default configuration, the write_pandas() data-loading functionality in the Snowflake Connector for Python and the Snowflake Connector for Python (Universal Core) did not escape DataFrame column names before including them in generated SQL, which could allow SQL injection. In both products, a crafted column name could have been used to chain additional SQL statements onto the generated statement, potentially allowing an attacker to read, modify, or delete other data accessible to the application's Snowflake role. Exploitation required an application to pass attacker controlled column names into this functionality. The fix is available in Snowflake Connector for Python version 4.8.1 and Snowflake Connector for Python (Universal Core) version 5.2.0. Users must upgrade manually.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
