Safeguard
Vulnerability Analysis•

Airflow Providers: SSH Host Keys, Kafka, Snowflake and Teradata CVEs

Four Airflow provider advisories from 16 September to 15 October 2026 turn connection settings into code execution, token theft and credential leaks. Check which connections you run.

Safeguard Security Team
4 min read

Between 16 September and 15 October 2026, Apache Airflow published advisories for four provider packages that most data teams run: SSH and SFTP, Apache Kafka, Snowflake and Teradata. None of them is a classic internet-facing bug. They all hinge on what a connection record is allowed to do, and who can edit it.

If your Airflow has a small group of trusted admins, several of these are low risk. If connections are editable by many users, read on.

What's affected

CVEPackageAffectedFixed inNVD score
CVE-2026-94134providers-ssh, providers-sftpHooks that rely on the default host key settingssh 7.0.0, sftp 7.0.09.1
CVE-2026-94135providers-sftpDeferrable SFTP triggers and async hooksftp 7.0.04.3
CVE-2026-86792providers-apache-kafka1.15.0 before 2.0.0, event producer enabled2.0.08.8
CVE-2026-81930providers-snowflakeaccount and region not validated6.18.06.3
CVE-2026-81862providers-teradataS3 and Azure Blob to Teradata operators3.7.06.5

SSH and SFTP. Per the advisory, the SSH hook disables host key verification unless host_key is set or no_host_key_check is explicitly false. An attacker between the worker and the server can impersonate it and capture credentials or data. The deferrable SFTP paths had the same default, so sftp 7.0.0 fixes both CVEs.

Kafka. The provider turns dotted path strings in a connection's extra field into Python callables with import_string and no allowlist. When the Kafka event producer is enabled (dag_run_events_enabled or task_instance_events_enabled, both off by default), the client is built inside the scheduler. A user who can only edit connections then gets code execution in the control plane. The advisory says Google Managed Kafka is not affected, while plain brokers and Amazon MSK are.

Snowflake. An account value containing a slash, question mark or hash changes the host of the SQL API request. The request carries a bearer token minted from the connection's credentials. A user who can edit the connection but not read its secrets can get a valid token sent to a host they control.

Teradata. Without a teradata_authorization_name, the two transfer operators inline cloud storage credentials into the SQL statement. For S3, runtime credentials land in the Airflow task log. For both operators, they also land in Teradata's DBQL query logs.

How to check if you're exposed

List the provider versions and look at your connections:

pip list 2>/dev/null | grep -E "apache-airflow-providers-(ssh|sftp|apache-kafka|snowflake|teradata)"
airflow connections list | grep -Ei "ssh|sftp|kafka|snowflake|teradata"

For SSH and SFTP, open each connection and look for no_host_key_check in the extra field. If it is missing, you are on the default.

For Kafka, check whether the event producer is on:

grep -rnE "dag_run_events_enabled|task_instance_events_enabled" "$AIRFLOW_HOME/airflow.cfg"
env | grep -E "DAG_RUN_EVENTS_ENABLED|TASK_INSTANCE_EVENTS_ENABLED"

If neither setting is turned on anywhere, you are on the defaults, and the scheduler route in CVE-2026-86792 is closed. Also check who holds the permission to edit connections, because that is the attacker's only requirement.

For Teradata, search task logs for CREATE MULTISET TABLE statements that contain a key or token.

What to do now

  1. Upgrade the five packages to the fixed versions above. All are provider packages, so no Airflow core upgrade is needed for these.
  2. Set host_key on every SSH and SFTP connection, or set no_host_key_check to false, so you are not relying on the default even after the upgrade.
  3. Restrict who can edit connections. Treat that permission as equivalent to code execution until Kafka and Snowflake are patched.
  4. For Teradata, create an AUTHORIZATION object and set teradata_authorization_name. The advisory says upgrading does not remove credentials already written to Teradata query logs, so rotate any credentials used through the inline path.
  5. Clear or restrict old task logs from the Teradata operators.

Why it matters

Airflow's security model gives connection editors less power than DAG authors. The Kafka bug breaks that boundary: connection settings crossed into the scheduler process. The Snowflake bug does the same for secrets, since write-only access to a connection should not let someone obtain its token.

The SSH case is a reminder that insecure defaults outlive their authors. Host key checking off by default means every pipeline that never set it was open to a machine in the middle.

Quick check

Your scheduler has both Kafka event settings off. Does CVE-2026-86792 give code execution in the scheduler?

Not through this route. The advisory ties scheduler execution to the event producer settings being enabled. Upgrade anyway, and keep connection edit rights narrow.

Sources

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.