CVE-2026-13744
Executive Summary
CVE-2026-13744 is a critical SQL injection vulnerability in Snowflake CLI versions prior to 3.19. The flaw arises from improper neutralization of attacker-controlled content, allowing an attacker to inject and execute arbitrary SQL commands within the context of the victim’s Snowflake session. Exploitation requires the victim to process malicious repository content, project configuration, manifest data, or specification input through a vulnerable command path. The impact is limited by the privileges assigned to the victim’s session, but successful exploitation can lead to unauthorized data access, modification, or deletion. The vendor has released a fix in version 3.19, and users must manually upgrade.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects the Snowflake CLI, a tool used for interacting with Snowflake data warehouses. It is not a package manager vulnerability (e.g., NPM, PyPI, Go, Ruby), but it does pose a supply chain risk if users download and execute malicious configuration files or repository content. Organizations should ensure that all Snowflake CLI installations are updated to version 3.19 or later and that users are trained to avoid processing untrusted content.
CVSS Breakdown & Threat Level
- CVSS Score: 8.3 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Attack Vector (AV): Network – The attacker can deliver malicious content over the network.
- Attack Complexity (AC): Low – No special conditions are required for exploitation.
- Privileges Required (PR): None – The attacker does not need prior authentication.
- User Interaction (UI): Required – The victim must process the malicious content.
- Scope (S): Unchanged – The vulnerability does not affect other components.
- Confidentiality (C): High – Full data exposure possible.
- Integrity (I): High – Data can be modified or deleted.
- Availability (A): High – Service disruption possible.
Deep Dive & Mechanics
The vulnerability exists in Snowflake CLI’s handling of user-supplied content. When processing repository content, project configuration, manifest data, or specification input, the CLI fails to properly sanitize or parameterize SQL queries. An attacker can craft a malicious payload that, when processed by the CLI, results in the execution of arbitrary SQL statements.
The injection occurs because the CLI concatenates user-controlled strings directly into SQL queries without proper escaping or prepared statements. This allows an attacker to break out of the intended query context and execute arbitrary commands.
For example, if the CLI processes a configuration file that includes a field like database_name, an attacker could supply a value such as my_database; DROP TABLE sensitive_data; --. If this value is used in a SQL query without sanitization, the resulting query might become:
SELECT * FROM my_database; DROP TABLE sensitive_data; -- ...
This would execute the attacker’s malicious SQL in the context of the victim’s Snowflake session.
Vulnerable vs. Patched Code
Vulnerable Code (prior to 3.19):
# Vulnerable: Direct string concatenation
query = f"SELECT * FROM {user_input}"
cursor.execute(query)
Patched Code (version 3.19):
# Patched: Parameterized query
query = "SELECT * FROM %s"
cursor.execute(query, (user_input,))
The patched version uses parameterized queries, which prevent SQL injection by separating SQL logic from data.
Exploitation & Lab Setup
Red Team (Exploitation)
- Setup: Deploy a vulnerable Snowflake CLI version (e.g., 3.18) in a controlled environment.
- Craft Payload: Create a malicious configuration file (e.g.,
config.yml) with an injected SQL payload:database: "my_db; SELECT * FROM sensitive_data; --" - Deliver Payload: Host the file on a repository or send it to the victim via email.
- Trigger: The victim runs a vulnerable command (e.g.,
snowflake deploy --config config.yml). - Exploit: The CLI processes the malicious input, executing the injected SQL.
Blue Team (Detection & Prevention)
- Monitor: Log all Snowflake CLI executions and SQL queries.
- Detect: Look for unusual SQL patterns, such as multiple statements in a single query or unexpected DDL/DML commands.
- Prevent: Enforce the use of parameterized queries in all CLI interactions. Use web application firewalls (WAF) to inspect incoming configuration files for SQL injection patterns.
- Respond: If exploitation is detected, revoke the affected session’s privileges and investigate the scope of data access.
Indicators of Compromise (IOCs)
- Network: Unusual SQL queries containing multiple statements or semicolons.
- File: Configuration files with suspicious SQL syntax (e.g.,
; DROP,; SELECT). - Process: Snowflake CLI processes executing unexpected SQL commands.
- Log: Snowflake audit logs showing queries with injected content.
Detection Engineering
YARA Rule
rule CVE_2026_13744_Snowflake_CLI_SQLi {
meta:
description = "Detects malicious configuration files targeting CVE-2026-13744"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2026-13744"
strings:
$sql_inject = /[\"']\s*;\s*(SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|EXEC|UNION|OR|AND)/i
condition:
$sql_inject
}
Sigma Rule
title: Snowflake CLI SQL Injection Attempt
id: 8f4a3b2c-1d5e-4f6a-8b7c-9d0e1f2a3b4c
status: experimental
description: Detects SQL injection attempts in Snowflake CLI configuration files
author: Valters IT
date: 2025-04-10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\snowflake.exe'
CommandLine|contains: 'config'
filter:
CommandLine|contains:
- ';'
- '--'
- '/*'
condition: selection and filter
falsepositives:
- Legitimate use of semicolons in configuration
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-13744 Snowflake CLI SQL Injection Attempt"; flow:to_server,established; content:"snowflake"; nocase; content:"config"; nocase; pcre:"/[\"']\s*;\s*(SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|EXEC|UNION|OR|AND)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Upgrade Snowflake CLI to version 3.19 or later.
- Workaround: If upgrade is not possible, avoid processing untrusted configuration files or repository content.
- Long-term: Implement input validation and parameterized queries in all CLI components. Conduct regular security audits of CLI code.
- Monitoring: Enable detailed logging of all SQL queries executed by Snowflake CLI and review for anomalies.
Valters IT