GHSA-qf38-jq28-3ccq
Severity by source
Sources disagree (Medium–Critical)AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Network vector because the attack originates from a remote SFTP server; AC:H because attacker must control or compromise that server; S:C because file writes escape the intended destination scope; C:N as no data exfiltration is described.
vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.
CVSS VectorCISA-ADP
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Lifecycle Timeline
2Description PRE-NVD
Articles & Coverage 1
AnalysisAI
Path traversal in Apache Airflow SFTP provider (apache-airflow-providers-sftp before 5.8.1) allows a malicious or compromised remote SFTP server to write files outside the configured local destination directory on the Airflow worker host. The root cause is that SFTPHook.retrieve_directory does not sanitize server-supplied directory-entry names before constructing local file paths, enabling traversal sequences to escape the intended destination. No exploit code has been publicly identified at time of analysis, but the attack requires no Airflow credentials - any deployment that downloads directories from an untrusted SFTP server is in scope.
Technical ContextAI
The vulnerability resides in the SFTPHook.retrieve_directory method (also exposed via SFTPOperator with operation=get) within the apache-airflow-providers-sftp package. When Airflow retrieves a remote directory, it iterates over filenames returned by the SFTP server and constructs local destination paths by joining the configured base directory with the server-supplied entry names. Without stripping path traversal sequences such as '../' or absolute path prefixes from server-controlled filenames, an attacker-controlled server can dictate write locations anywhere on the host filesystem. The root cause class is path traversal (CWE-22), with the trust boundary violation being that the code treats server-supplied filenames as safe relative identifiers when they can contain directory separators. No CPE string was provided in the source data, but the affected package is the PyPI package apache-airflow-providers-sftp, versions prior to 5.8.1.
RemediationAI
Upgrade the apache-airflow-providers-sftp package to version 5.8.1 or later; this is the vendor-confirmed fix version stated in the oss-security advisory (https://seclists.org/oss-sec/2026/q2/941). The upstream fix is tracked in GitHub pull request #67985 (https://github.com/apache/airflow/pull/67985). If immediate upgrade is not feasible, a targeted compensating control is to avoid using SFTPOperator with operation=get against any SFTP server not under full organizational control - restrict DAGs to single-file transfers (operation=get on individual files) rather than directory downloads, as the path traversal is specific to the directory retrieval code path. Alternatively, restrict SFTP server endpoints to a known-good allowlist at the network layer and ensure the SFTP servers themselves are hardened against compromise. Note that the workarounds involve workflow redesign and do not patch the underlying sanitization flaw; upgrade to 5.8.1 is the definitive fix.
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37520