HIGH 8.8

CVE-2026-15067: Critical SQL and DDL Injection in Snowflake Terraform Provider <2.18.0

Snowflake Terraform Provider versions before 2.18.0 contain two critical injection flaws. An attacker who can modify workspace variables in a Terraform pipeline could execute arbitrary SQL commands under the provider's Snowflake session privileges, potentially stealing sensitive data or creating persistent access credentials. A second vulnerability allows attackers to inject DDL commands into user creation statements, enabling account creation with attacker-controlled passwords that bypass your configured security policies. Both require initial access to your Terraform workflow or pipeline configuration.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.8 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-89
Affected products
0 configuration(s)
Published / Modified
2026-07-08 / 2026-07-09

NVD description (verbatim)

Snowflake Terraform Provider versions prior to 2.18.0 contain several security vulnerabilities, including SQL injection via an unsanitized data source input could result in arbitrary SQL execution under the provider's privileged Snowflake session, potentially enabling sensitive data exfiltration and minting of long-lived access credentials. Exploitation requires the ability for an attacker to influence a workspace variable in a pipeline where this data source was enabled. Improper neutralization of identifier content in user resource inputs could allow DDL injection into user management statements, potentially causing accounts to be created with attacker-controlled credentials and without the security controls configured by the operator. The fix is available in Snowflake Terraform Provider version 2.18.0. Users must manually upgrade.

1 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-15067 encompasses SQL injection (CWE-89) in data source input handling and improper DDL neutralization in user resource inputs within the Snowflake Terraform Provider. The SQL injection arises from unsanitized data source parameters, allowing arbitrary query execution within the provider's authenticated Snowflake session context. The DDL injection occurs in user management statements due to insufficient identifier sanitization, enabling attackers to craft malicious user creation directives that persist with attacker-controlled credentials. Both vulnerabilities require authenticated access to influence Terraform workspace variables or pipeline inputs, limiting direct remote exploitation but raising insider threat and supply chain concerns.

Business impact

Exploitation enables lateral movement within Snowflake, unauthorized data access, and creation of backdoor accounts that persist after the initial compromise is discovered. An attacker could extract customer data, PII, or proprietary analytics without detection. The ability to create rogue admin-equivalent accounts means remediation requires comprehensive account audits and potential credential rotation across your data platform. If Terraform is used in multi-tenant or CI/CD contexts, a single compromised pipeline could affect multiple deployments simultaneously.

Affected systems

All organizations running Snowflake Terraform Provider versions prior to 2.18.0 are affected. This includes both direct Terraform users and those consuming this provider indirectly through Terraform modules or remote state backends. Environments where non-admin personnel can modify Terraform workspace variables or pipeline definitions carry elevated risk, as do CI/CD systems where untrusted code or dependencies can influence provider configuration.

Exploitability

Exploitation is not trivial—an attacker must first gain the ability to modify workspace variables or influence data source inputs within your Terraform pipeline. This typically requires compromised credentials, supply chain injection (via a malicious Terraform module or dependency), or insider access. Once that foothold exists, the injection attacks are straightforward to execute and difficult to detect in real-time. CVSS 8.8 (HIGH) reflects the high impact (data exfiltration, account takeover) balanced against the requirement for authenticated or pipeline-level access.

Remediation

Upgrade the Snowflake Terraform Provider to version 2.18.0 or later immediately. This is a manual process; the upgrade does not occur automatically. After upgrading, audit your Snowflake instance for any unexpected user accounts or access patterns that may indicate prior exploitation. Rotate service account credentials used by Terraform to access Snowflake, and review Terraform workspace variable history and pipeline logs for evidence of injection attempts. Implement strict access controls on who can modify workspace variables and pipeline definitions.

Patch guidance

Download and deploy Snowflake Terraform Provider version 2.18.0 or later from the official Terraform Registry or GitHub releases. Verify the release notes confirm the security fixes for SQL injection and DDL injection. Test the upgrade in a non-production environment first to ensure compatibility with your existing Terraform configurations. Update any CI/CD pipelines, Docker images, or Terraform modules that pin or reference the provider to the new version. Document the upgrade date and affected infrastructure for audit purposes.

Detection guidance

Monitor Snowflake audit logs for unusual SQL statements or user creation events, particularly those containing suspicious string concatenation or escaped quotes. In Terraform state files and logs, look for data source inputs that contain SQL keywords or special characters. Review workspace variable change history for modifications by unexpected users or service accounts. Search CI/CD logs for failed or suspicious Terraform plan/apply operations that reference user or data source resources. Set up alerts on Snowflake for rapid creation of new users or privilege grants, as these may indicate exploitation.

Why prioritize this

HIGH priority: SQL and DDL injection in your infrastructure-as-code tool can compromise your entire data platform. The persistence of injected user accounts makes post-compromise remediation expensive and time-consuming. While exploitation requires some form of access to Terraform, the consequences—full data platform compromise—justify immediate patching before expanding Terraform access or deploying new infrastructure dependent on this provider.

Risk score, explained

CVSS 8.8 reflects high confidentiality, integrity, and availability impact (C:H, I:H, A:H) achievable with low attack complexity (AC:L) and low privilege requirements (PR:L), but requiring network access (AV:N) and no user interaction (UI:N). The score appropriately captures the severity of SQL and DDL injection in a privileged cloud context, though real-world risk depends heavily on your controls around Terraform variable modification and pipeline security.

Frequently asked questions

Do we need to rotate all Snowflake service accounts if we were running a vulnerable version?

Yes, as a precaution. If an attacker exploited this vulnerability, they could have extracted or cached credentials from the provider's session. Rotation removes long-lived tokens an attacker may have harvested. Check Snowflake's login history for any unexpected access before and after rotation.

If we only use Snowflake Terraform Provider in read-only mode, are we still vulnerable?

Partially. The SQL injection vulnerability still allows attackers to extract data even in read-only pipelines. However, they cannot directly create user accounts via DDL injection if your Terraform configurations don't include user resource definitions. Upgrade anyway—the SQL injection alone is a data exfiltration risk.

How do we know if this vulnerability was exploited in our environment?

Review Snowflake's audit logs and login history for unexpected queries, user creation events, or access from unfamiliar IP addresses or service accounts. Check Terraform plan and apply logs for suspicious data source inputs or variables. If logs have been deleted or tampered with, assume potential exposure and conduct a full security audit of your Snowflake instance.

Can we mitigate this without upgrading?

Temporary mitigation includes strict role-based access control on Terraform workspace variables, disabling Terraform provider API token persistence, and restricting who can approve Terraform plans. However, these do not eliminate the underlying vulnerability. Upgrade as soon as possible—this is not a substitute for patching.

This analysis is based on CVE-2026-15067 as published and available source data as of the analysis date. CVSS scores and severity assessments are industry-standard but context-dependent; your actual organizational risk may differ based on exposure, controls, and threat landscape. Always verify patch applicability and compatibility with your specific Terraform version, Snowflake configuration, and dependent modules before deploying. For official guidance, consult the Snowflake Terraform Provider release notes and Snowflake security advisories. This content is for informational purposes and does not constitute formal security advice or a substitute for professional assessment. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).