T05 · Unauthorized Access and Privilege Escalation
- Location
skill.yaml:15- Finding
Unauthenticated Snowflake Query Execution Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Snowflake query skill is purpose-aligned, but it exposes high-impact database access with weak access control and incomplete safety enforcement.
Install only in a tightly controlled environment with a dedicated least-privilege Snowflake role, private network binding, authentication in front of the endpoint, audited dependency pins, robust SQL parsing or query templates, non-bypassable row and response-size limits, and sanitized error handling.
skill.yaml:15Unauthenticated Snowflake Query Execution Endpoint
app/validator.py:19Bypassable Row Limit Enables Excessive Data Retrieval and Memory Exhaustion
app/validator.py:4Lexical SQL Blacklist Does Not Reliably Enforce Read-Only Queries
app/main.py:19Raw Database and Internal Exception Details Exposed to Clients
requirements.txt:1Unpinned Third-Party Dependencies Create Supply-Chain and Reproducibility Risk
Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.
This code file performs a network operation by opening a Snowflake connection and sending the provided SQL to a remote service. There is no confirmation prompt, logging, comment, or docstring in this file warning that user-supplied queries and related data will be transmitted externally.
The dependency list uses an unpinned version for fastapi, which makes builds non-reproducible and can silently introduce vulnerable or breaking releases over time. In a security-sensitive skill, this increases supply-chain risk because the deployed package version cannot be verified or audited reliably.
fastapi
uvicorn
snowflake-connector-python
python-dotenv
FastAPI has known advisories, and because no version is pinned, there is no way to determine from this manifest whether a vulnerable release would be installed. The danger is not a confirmed vulnerable version in the file itself, but the inability to verify exposure and prevent accidental installation of an affected release.
The dependency list uses an unpinned version for uvicorn, allowing different environments to install different releases. This weakens reproducibility and may expose the application to known vulnerabilities or behavioral changes introduced upstream.
fastapi
uvicorn
snowflake-connector-python
python-dotenv
pydantic
Uvicorn has known security advisories, and the unpinned requirement means the deployed version may vary across environments. This makes vulnerability status unverifiable and can allow affected versions with issues such as log injection or response-splitting to be introduced unnoticed.
The dependency list uses an unpinned version for snowflake-connector-python, a high-impact package because it interfaces with a database and often handles credentials and sensitive data. Leaving it unpinned increases the risk of unexpectedly deploying a vulnerable or incompatible release affecting confidentiality or integrity.
fastapi
uvicorn
snowflake-connector-python
python-dotenv
pydantic
Snowflake's Python connector has numerous advisories, and the absence of version pinning means the application could resolve to a vulnerable release without visibility. Because this package handles database connectivity and potentially sensitive credentials/data flows, uncertainty here is more dangerous than for a purely auxiliary package.
The dependency list uses an unpinned version for python-dotenv, which can lead to inconsistent installs and accidental adoption of insecure releases. Because this package can influence environment-variable handling, version drift may affect secret-loading behavior in unexpected ways.
fastapi
uvicorn
snowflake-connector-python
python-dotenv
pydantic
python-dotenv has known advisories, and without a pinned version the manifest does not establish whether the installed release is safe. This is risky because packages that read or modify environment files can affect secret handling and local file integrity if vulnerable versions are used.
The dependency list uses an unpinned version for pydantic, making installs non-deterministic and complicating assurance that a safe version is deployed. Since pydantic is often central to request parsing and validation, upstream changes can also introduce subtle security or reliability issues.
uvicorn
snowflake-connector-python
python-dotenv
pydantic
Pydantic has known advisories, and the unpinned requirement prevents verification that a non-affected release will be installed. Since pydantic commonly processes untrusted input, unresolved version ambiguity can translate into avoidable exposure to parser or validation-related flaws.
No suspicious patterns detected.