Record summary

EIP currently links 1 repository PoC and 1 lab environment to CVE-2023-34233.

Description

The Snowflake Connector for Python provides an interface for developing Python applications that can connect to Snowflake and perform all standard operations. Versions prior to 3.0.2 are vulnerable to command injection via single sign-on(SSO) browser URL authentication. In order to exploit the potential for command injection, an attacker would need to be successful in (1) establishing a malicious resource and (2) redirecting users to utilize the resource. The attacker could set up a malicious, publicly accessible server which responds to the SSO URL with an attack payload. If the attacker then tricked a user into visiting the maliciously crafted connection URL, the user’s local machine would render the malicious payload, leading to a remote code execution. This attack scenario can be mitigated through URL whitelisting as well as common anti-phishing resources. Version 3.0.2 contains a patch for this issue.

Description source: CVE List

Exploitation context

Available material

Repository PoCs
1
Lab environments
1

CISA SSVC decision

ExploitationNone
AutomatableNo
Technical impactTotal

CISA Coordinator · SSVC 2.0.3 · Evaluated Jan 6, 2025 · Source: CVE List

Affected products and versions

2
ProductSourceVersion rangeStatus
CVE List< 3.0.2affected
GitHub AdvisoryBefore 3.0.2 · Fixed in 3.0.2affected

Proofs of concept

1

Repository PoCs

GitHubnayankadamm/CVE-2023-34233_Proof_OF_ConceptRepository PoCby nayankadammStars: 0Scanner10 files

17.7 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

The artifact is a Python script that tests for CVE-2023-34233, a command injection vulnerability in the Snowflake Connector for Python's SSO browser authentication flow. It programmatically attempts connections with malicious account payloads, intercepts the generated browser URL via mocking, and inspects the URL for dangerous characters and lack of encoding. It also checks for side effects (file creation) to detect command execution, but does not deliver a working exploit payload.

Backdoor review

No backdoor observed in reviewed code

The supplied evidence consists of a Dockerfile, README, Python PoC script, and requirements file for testing CVE-2023-34233. The PoC script uses standard Python libraries (snowflake.connector, unittest.mock, webbrowser) to test command injection in the browser authentication flow by injecting payloads into the account parameter and monitoring for command execution via file creation. No concealed executable behavior, persistence, credential exfiltration, or unrelated payloads are present. The script's behavior is consistent with a legitimate vulnerability proof-of-concept.

ClassificationScanner
Model confidence95%
AuthenticationRequired
LanguagesPython
Target softwareSnowflake Connector for Python
Attack typesCommand Injection
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The script's primary purpose is to test for the presence of CVE-2023-34233 by sending malicious inputs and observing the application's behavior (URL encoding, command execution side effects). It does not contain a payload that achieves remote code execution; it only reports whether the target appears vulnerable. This matches the definition of a scanner.

cve_2023_34233_poc.py:1-4cve_2023_34233_poc.py:52-67cve_2023_34233_poc.py:102-108

Requirements

  • Requires a valid Snowflake account and credentials configured in config.toml.README.md:8-9cve_2023_34233_poc.py:18-22
  • Requires the vulnerable Snowflake Connector for Python library (version < 3.0.2) to be installed.Dockerfile:17requirements.txt:3

Observed behavior

  • Loads Snowflake connection configuration from a local config.toml file.cve_2023_34233_poc.py:18-22
  • Iterates through a list of malicious account payloads containing shell metacharacters (;, &&, $()).cve_2023_34233_poc.py:35-40
  • Attempts a Snowflake connection with authenticator='externalbrowser' and the malicious account string, while mocking webbrowser.open to intercept the generated SSO URL.cve_2023_34233_poc.py:78-86
  • Inspects the captured browser URL for dangerous characters (;, &&, etc.) and checks for proper URL encoding; reports whether the URL appears vulnerable.cve_2023_34233_poc.py:52-67
  • Checks for a side-effect file on disk to determine if the injected command was executed by the system.cve_2023_34233_poc.py:102-108
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

File Creation Test
Payload withheldThe PoC tests command injection by checking if a file is created after injecting shell metacharacters into the account parameter.cve_2023_34233_poc.py:28cve_2023_34233_poc.py:36-39cve_2023_34233_poc.py:104-108
Network Connection
Payload withheldThe script attempts to connect to a Snowflake account using browser-based SSO authentication, which is the vulnerable component described in CVE-2023-34233.cve_2023_34233_poc.py:80-86
Dependency
Payload withheldA wheel file for Snowflake Connector for Python version 2.9.0 is included and installed. This version is prior to the fixed version 3.0.2 and is expected to be vulnerable.Dockerfile:17requirements.txt:3
Review boundaries

What the analysis did not establish

  • The evidence packet does not include the contents of the payload withheld file, which is referenced as the vulnerable library.
  • The evidence packet does not include the config.toml file, which is required to run the script.
  • The README.md references CVE-2025-24793 and a cve_2025_24793_poc.py file, but the actual PoC script provided is for CVE-2023-34233, indicating a possible mismatch or incomplete artifact coverage.
  • The binary wheel file payload withheld was flagged as metadata-only and not analyzed for embedded malicious code. The review is limited to the readable text files.
  • Six additional files in the repository were omitted from the evidence packet and were not reviewed.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

Docker lab environments

1
GitHub

Repository root

nayankadamm/CVE-2023-34233_Proof_OF_ConceptCreated
Vuln labCVE-2023-34233Dockerfile

1 Dockerfile

Analysisdeepseek-v4-pro:cloud ·

Environment assessment

A Docker-based environment for testing a Snowflake Connector Python vulnerability. It builds a container from python:3.9-slim-bullseye, installs a specific wheel and dependencies, and runs a PoC script that attempts SQL injection via the write_pandas function.

Dockerfile:1-26cve_2025_24793_poc.py:1-93

Lab assessment

Vulnerability lab

The Dockerfile builds and runs a script named cve_2025_24793_poc.py, which explicitly tests SQL injection payloads against a Snowflake connector. The README describes it as a PoC for CVE-2025-24793. This is a vulnerability reproduction environment.

Dockerfile:24-25cve_2025_24793_poc.py:1-93README.md:1-5
Lab shapeDockerfile
ServicesUnknown
Compose manifests0
Dockerfiles1
Evidence & reasoningComponents · CVE assessment · exercise context · review boundaries
Components

Services and files described by the evidence

Dockerfile

container build specification

Defines the container image based on python:3.9-slim-bullseye, installs system packages, copies application files including a wheel and PoC script, installs Python dependencies, and sets the default command to run the PoC.

Dockerfile:1-26

cve_2025_24793_poc.py

vulnerability proof-of-concept script

Connects to Snowflake using credentials from config.toml, creates test tables, and attempts SQL injection via malicious table and database names passed to write_pandas. It also checks for the presence of a vulnerable 'stage_location' parameter.

cve_2025_24793_poc.py:1-93

requirements.txt

dependency manifest

Lists Python packages required for the environment, including a local wheel for snowflake-connector-python and libraries like pandas, toml, and cryptography.

requirements.txt:1-8

cve_2023_34233_poc.py

supplementary test script

A separate script that tests for command injection in the browser-based authentication flow of the Snowflake connector. It is not referenced by the Dockerfile or the main PoC, and appears to be an additional, unrelated test.

cve_2023_34233_poc.py:1-140

snowflake_app.py

basic connectivity test

A simple script that connects to Snowflake and prints the version. It is not used in the Docker build or run commands.

snowflake_app.py:1-34

build-patched.sh

build helper script

A shell script that builds a Docker image tagged 'snowflake-patched' using the current wheel file. It is not invoked by the Dockerfile.

build-patched.sh:1-28

build-unpatched.sh

build helper script

A shell script that builds a Docker image tagged 'snowflake-unpatched' using the current wheel file. It is not invoked by the Dockerfile.

build-unpatched.sh:1-28
CVE assessment

How the supplied evidence relates each vulnerability

CVE-2023-34233

Insufficient evidence

The unit_cve_ids contains only CVE-2023-34233, but the Dockerfile and main PoC script are explicitly for CVE-2025-24793. The CVE-2023-34233 script exists in the repository but is not part of the built or run environment. The evidence does not show how this CVE is exercised within the described lab.

Dockerfile:24-25cve_2025_24793_poc.py:1-93cve_2023_34233_poc.py:1-140
Exercise context

Requirements and sequence described by the evidence

Prerequisites

  • A Snowflake account with appropriate permissions and a config.toml file containing valid credentials must be created and placed in the build context.README.md:27-55Dockerfile:12
  • The snowflake_connector_python-2.9.0-py3-none-any.whl file must be present in the build context.Dockerfile:14
  • Docker must be installed to build and run the container.README.md:7

Evidence-described exercise path

  1. Create a config.toml with Snowflake credentials.README.md:27-55
  2. Build the Docker image using 'docker build -t <container_name> .'README.md:57-59
  3. Run the container with 'docker run --rm <container_name>'. The PoC script executes automatically, connecting to Snowflake and attempting SQL injection.README.md:61-63Dockerfile:24-25
Safety-review evidence

Behaviors behind the stored safety assessment

No harmful behavior observed

The visible behavior is limited to connecting to a user-supplied Snowflake instance and executing SQL statements within that target. There is no evidence of host escape, external connections beyond the intended Snowflake target, persistence, credential theft, or destructive actions outside the lab's own test tables. The Dockerfile does not use privileged mode or mount sensitive host paths.

Dockerfile:1-26cve_2025_24793_poc.py:1-93
Review boundaries

What the analysis did not establish

  • The unit_cve_ids contains CVE-2023-34233, but the Dockerfile and main PoC are for CVE-2025-24793. The CVE-2023-34233 script is present but not integrated into the lab environment.
  • The config.toml file is not included in the evidence; its contents are unknown.
  • The snowflake_connector_python-2.9.0-py3-none-any.whl binary is not inspected.
  • The evidence does not include a docker-compose.yml or any orchestration manifest.
Model interpretation

This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.

References

6