Back to skill

Security audit

SnowflakeDataEngineer

Security checks for vulnerabilities and agentic risk

Overview

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.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
Findings (5)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
skill.yaml:15
Finding

Unauthenticated Snowflake Query Execution Endpoint

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
app/validator.py:19
Finding

Bypassable Row Limit Enables Excessive Data Retrieval and Memory Exhaustion

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
app/validator.py:4
Finding

Lexical SQL Blacklist Does Not Reliably Enforce Read-Only Queries

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
app/main.py:19
Finding

Raw Database and Internal Exception Details Exposed to Clients

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Create Supply-Chain and Reproducibility Risk

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (12)

Possible Typosquatting: 'uvicorn' resembles popular package 'gunicorn'

High
Category
Supply Chain
Confidence
70% confidence
Finding

Package name closely resembles a popular package, suggesting possible typosquatting. Attackers publish malicious packages with similar names to trick developers into installing them.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
98% confidence
Finding

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.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
fastapi
uvicorn
snowflake-connector-python
python-dotenv

Unverifiable Dependency: fastapi has 3 known advisory(ies) (CVE-2021-32677 (Cross-Site Request Forgery (CSRF) in FastAPI); CVE-2021-32677 (FastAPI is a web framework for building APIs with Python 3.6+ based on standard ); CVE-2024-24762 (FastAPI is a web framework for building APIs with Python 3.8+ based on standard )), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
95% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
98% confidence
Finding

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.

Content

Scanner excerpt · requirements.txt (reported line 2)May include surrounding context.

text
fastapi
uvicorn
snowflake-connector-python
python-dotenv
pydantic

Unverifiable Dependency: uvicorn has 4 known advisory(ies) (CVE-2020-7694 (Log injection in uvicorn); CVE-2020-7695 (HTTP response splitting in uvicorn); CVE-2020-7694 (This affects all versions of package uvicorn. The request logger provided by the) +1 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
95% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
99% confidence
Finding

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.

Content

Scanner excerpt · requirements.txt (reported line 3)May include surrounding context.

text
fastapi
uvicorn
snowflake-connector-python
python-dotenv
pydantic

Unverifiable Dependency: snowflake-connector-python has 14 known advisory(ies) (CVE-2025-24793 (snowflake-connector-python vulnerable to SQL Injection in write_pandas); CVE-2022-42965 (snowflake-connector-python is vulnerable to Regular Expression Denial of Service); CVE-2026-15925 (Snowflake Connector for Python improperly verifies TLS hostnames) +11 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
98% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

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.

Content

Scanner excerpt · requirements.txt (reported line 4)May include surrounding context.

text
fastapi
uvicorn
snowflake-connector-python
python-dotenv
pydantic

Unverifiable Dependency: python-dotenv has 2 known advisory(ies) (CVE-2026-28684 (python-dotenv: Symlink following in set_key allows arbitrary file overwrite via ); CVE-2026-28684 (python-dotenv reads key-value pairs from a .env file and can set them as environ)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
93% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

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.

Content

Scanner excerpt · requirements.txt (reported line 5)May include surrounding context.

text
uvicorn
snowflake-connector-python
python-dotenv
pydantic

Unverifiable Dependency: pydantic has 4 known advisory(ies) (CVE-2021-29510 (Use of "infinity" as an input to datetime and date fields causes infinite loop i); CVE-2024-3772 (Pydantic regular expression denial of service); CVE-2021-29510 (Pydantic is a data validation and settings management using Python type hinting.) +1 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
94% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.