CVE-2026-94134 Overview
The Apache Airflow SSH provider hook disables SSH host-key verification by default. Unless the host_key parameter is configured or no_host_key_check is explicitly set to false, the hook accepts any server key. This behavior affects SSH and SFTP connections that rely on the default configuration.
An attacker positioned between an Airflow worker and the target SSH or SFTP server can impersonate the server. The attacker can then capture credentials or data transmitted by a task. The flaw is tracked under [CWE-322: Key Exchange without Entity Authentication].
Critical Impact
A machine-in-the-middle attacker can impersonate SSH/SFTP servers and intercept task credentials or sensitive data in transit.
Affected Products
- apache-airflow-providers-ssh versions prior to 7.0.0
- apache-airflow-providers-sftp versions prior to 7.0.0
- Deferrable SFTP code paths (also covered by CVE-2026-94135)
Discovery Timeline
- 2026-10-15 - CVE-2026-94134 published to NVD
- 2026-10-16 - Last updated in NVD database
Technical Details for CVE-2026-94134
Vulnerability Analysis
The Apache Airflow SSH provider hook ships with insecure default behavior for SSH host-key verification. When a user creates an SSH or SFTP connection without specifying host_key and does not explicitly set no_host_key_check to false, the hook accepts any server key presented during the SSH handshake.
This effectively disables the identity binding between the client and the expected server. The result is that TLS-equivalent server authentication for the SSH transport layer is absent. Any task that invokes the SSH or SFTP hooks under default settings is exposed to server impersonation.
The deferrable SFTP execution paths share the same unsafe default and are addressed under CVE-2026-94135. Both issues are remediated by apache-airflow-providers-sftp 7.0.0.
Root Cause
The root cause is an insecure default configuration in the SSH hook initialization logic. The hook defaults no_host_key_check to true, suppressing Paramiko's host-key validation unless a known key is supplied. This design priority favored ease of setup over cryptographic server authentication.
Attack Vector
An attacker must achieve a machine-in-the-middle position on the network path between the Airflow worker and the destination SSH or SFTP server. Common positions include compromised routers, ARP spoofing on a shared segment, or DNS hijacking. Once positioned, the attacker presents an attacker-controlled SSH host key.
Because the hook accepts any key, the worker completes the handshake with the attacker's endpoint. Credentials passed into the session (SSH passwords, SFTP uploads, command output, task payloads) are then captured in plaintext from the attacker's perspective. See the upstream fix in the Apache Airflow Pull Request #73419 and the Apache Mailing List Thread.
Detection Methods for CVE-2026-94134
Indicators of Compromise
- Unexpected SSH host-key fingerprints recorded by Airflow worker logs or Paramiko debug output.
- SSH or SFTP sessions terminating at IP addresses that do not match the configured destination hostname's authoritative DNS records.
- Task logs showing successful connections to hosts whose keys were never previously trusted or pinned.
Detection Strategies
- Audit all Airflow SSH and SFTP connections for the presence of a configured host_key value or an explicit no_host_key_check=false setting.
- Inventory installed provider versions across workers using pip show apache-airflow-providers-ssh and pip show apache-airflow-providers-sftp.
- Review DAG source code for direct instantiation of SSHHook or SFTPHook with default parameters.
Monitoring Recommendations
- Capture outbound SSH/SFTP flows from Airflow workers and alert on connections to destinations outside the approved allowlist.
- Enable Paramiko transport-layer logging to record negotiated host keys for every session.
- Correlate task-level connection metadata with network-layer destination IPs to identify redirection attempts.
How to Mitigate CVE-2026-94134
Immediate Actions Required
- Upgrade apache-airflow-providers-ssh to version 7.0.0 or later on all Airflow workers and schedulers.
- Upgrade apache-airflow-providers-sftp to version 7.0.0 or later to remediate both this issue and CVE-2026-94135.
- Rotate any credentials, API keys, or secrets that were transmitted through SSH or SFTP tasks before patching, as prior sessions cannot be assumed confidential.
Patch Information
The fix is included in apache-airflow-providers-ssh 7.0.0 and apache-airflow-providers-sftp 7.0.0. The upstream code change is published in Apache Airflow Pull Request #73419. Review the Apache announcement thread for release notes and migration guidance.
Workarounds
- On every affected SSH/SFTP connection, explicitly configure the host_key parameter with the known server public key.
- Alternatively, set no_host_key_check=false in the connection's extra field to enforce Paramiko's default host-key validation.
- Restrict Airflow worker egress to known SSH/SFTP destinations via firewall rules to reduce machine-in-the-middle opportunity.
# Upgrade affected providers to patched versions
pip install --upgrade "apache-airflow-providers-ssh>=7.0.0"
pip install --upgrade "apache-airflow-providers-sftp>=7.0.0"
# Example Airflow connection extra enforcing host-key validation
# Set in the Airflow UI or via CLI for each SSH/SFTP connection
# {
# "no_host_key_check": false,
# "host_key": "ssh-ed25519 AAAAC3Nza..."
# }
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

