Dockerfile
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-26Snowflake Python Connector vulnerable to Command Injection
EIP currently links 1 repository PoC and 1 lab environment to CVE-2023-34233.
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.
| Product | Source | Version range | Status |
|---|---|---|---|
snowflake-connector-pythonBrowse snowflakedb / snowflake-connector-python | CVE List | < 3.0.2 | affected |
snowflake-connector-pythonBrowse PyPI / snowflake-connector-python | GitHub Advisory | Before 3.0.2 · Fixed in 3.0.2 | affected |
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.
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.
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-108README.md:8-9cve_2023_34233_poc.py:18-22Dockerfile:17requirements.txt:3cve_2023_34233_poc.py:18-22cve_2023_34233_poc.py:35-40cve_2023_34233_poc.py:78-86cve_2023_34233_poc.py:52-67cve_2023_34233_poc.py:102-108cve_2023_34233_poc.py:28cve_2023_34233_poc.py:36-39cve_2023_34233_poc.py:104-108cve_2023_34233_poc.py:80-86Dockerfile:17requirements.txt:3This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
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-93The 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-5Defines 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-26Connects 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-93Lists Python packages required for the environment, including a local wheel for snowflake-connector-python and libraries like pandas, toml, and cryptography.
requirements.txt:1-8A 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-140A 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-34A 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-28A 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-28Insufficient 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-140README.md:27-55Dockerfile:12Dockerfile:14README.md:7README.md:27-55README.md:57-59README.md:61-63Dockerfile:24-25The 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-93This 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.