GHSA-jcpw-3g4p-9hmj
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Airflow log-view or Teradata DBQL access
-
ExploitLocate S3/Azure-to-Teradata operator run against private bucket
-
ExecutionRead inlined cloud storage credentials from log
-
ImpactReuse credentials to access bucket/container
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log data sanitization
|
| Exploitation Conditions | Requires a deployment running S3ToTeradataOperator or AzureBlobStorageToTeradataOperator against a private S3 bucket or Azure container with NO teradata_authorization_name (AUTHORIZATION object) configured - which is the default credential path for both operators. Exposure is realized only for a party with read access to one of two log sinks: Airflow task logs (needs log-view permission on the Dag; primary channel for S3ToTeradataOperator's runtime AWS credentials and STS token, which the secrets masker does not cover) or Teradata's DBQL query logs and monitoring views (affects both operators and is never masked, persisting for Teradata's log retention). Limiting factors: not remotely exploitable without existing log-read privileges, does not apply when an AUTHORIZATION object is used, and Azure's storage-account key is usually masked in the Airflow task log (leaving its Teradata-side exposure). |
| Impact | This is an information-disclosure weakness (credential exposure via logs, CWE-532/CWE-312 class) rated moderate by the Apache Airflow project. No CVSS vector, EPSS score, or SSVC data was supplied, and there is no CISA KEV listing and no public exploit - the issue was found by an automated tool (Claude Security Scans) and fixed by an Airflow maintainer, not surfaced through observed attacks. Exploitation is passive and requires pre-existing access: an Airflow user with log-view permission on the affected Dag can read runtime AWS credentials (including the unmasked STS session token from instance-profile/IRSA) that S3ToTeradataOperator inlines into task logs, or anyone with access to Teradata's DBQL query logs and monitoring views can read the inlined credentials for either operator. This is therefore a real but bounded insider/lateral-movement risk rather than a mass-exploitable network flaw: the value is high (working cloud storage credentials), but it is gated behind existing log-read privileges on either Airflow or Teradata and behind a specific operator/configuration combination. No signals are contradictory here - the absence of EPSS/KEV/POC is consistent with a quietly-fixed low-noise disclosure bug. Priority is low-to-medium: prioritize where these operators run against private buckets without an AUTHORIZATION object and where log-viewer or DBQL access is broadly granted. |
| Exploit ScenarioDerived | An analyst or contractor holding read-only log-view permission on a Dag opens the task log for an S3ToTeradataOperator run against a private bucket and finds live AWS access key, secret, and STS session token inlined in the CREATE MULTISET TABLE ... LOCATION statement, then uses them to access the S3 bucket directly. Alternatively, a Teradata database user with access to DBQL query logs harvests the same (or Azure storage-account) credentials, which Airflow's masker cannot redact. No public exploit code exists; the flaw was identified by an automated scanning tool and requires only routine log-read access, not a crafted payload. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 29, 2026
Credential disclosure in the Apache Airflow Teradata provider (apache-airflow-providers-teradata before 3.7.0) causes cloud storage secrets to be written into SQL text that is then logged and executed, leaking those secrets to two sinks outside Airflow's control. Deployments using S3ToTeradataOperator or AzureBlobStorageToTeradataOperator against a private bucket or container with no teradata_authorization_name configured - the default credential path for both operators - are affected; S3ToTeradataOperator's runtime AWS credentials and STS session token land in the Airflow task log, readable by any user with log-view permission on the Dag, while both operators write credentials into Teradata's DBQL query logs and live monitoring views, where Airflow masking never applies and the values persist for Teradata's log retention period. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, i.e. remote but requiring an already-privileged party with log-read access, and no public exploit identified at time of analysis; impact is information disclosure only, with no integrity or availability effect.
RemediationAI
Vendor-released patch: upgrade to apache-airflow-providers-teradata 3.7.0 or later, which keeps the credential-bearing statement out of the Airflow task log (see https://github.com/apache/airflow/pull/72176 and https://airflow.apache.org/); note that the upgrade alone does not remove credentials already written into Teradata's DBQL query logs and live monitoring views, so the Teradata-side exposure must be handled separately. Configure teradata_authorization_name on both operators so a Teradata AUTHORIZATION object resolves storage access natively and credentials are never inlined into the SQL - this closes both the Airflow-log and Teradata-log channels, at the cost of provisioning and maintaining the AUTHORIZATION object as a deployment prerequisite. Rotate every cloud storage credential previously used through the inline path, including the AWS access key/session token and Azure storage account key, since all of them may already be persisted in logs that Airflow cannot purge. As compensating controls while upgrading, restrict Airflow log-view permission on affected Dags to the minimum set of users (reduces who can read the leaked S3 values but does not touch the Teradata-side copy), and reduce Teradata DBQL/monitoring retention or restrict access to those views where operationally feasible (limits the exposure window but forfeits audit history). There is no vendor-released patch for versions prior to 3.7.0 other than upgrading or applying the authorization-object configuration described above.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an information-disclosure issue in the CWE-532 (insertion of sensitive information into log file) and CWE-312 (cleartext storage of sensitive information) class, rooted in unsafe string interpolation of credentials into SQL rather than parameterization or delegated authorization. Both Teradata transfer operators build a CREATE MULTISET TABLE ... LOCATION statement to point Teradata at external object storage; when the source bucket or container is private and no teradata_authorization_name is supplied, the operators fall back to inlining the storage credentials as plain string literals in that SQL text. S3ToTeradataOperator sources its values from s3_hook.get_credentials(), which under an EC2 instance profile or IRSA returns runtime AWS credentials that were never registered with Airflow's secrets masker - and the STS session token is runtime-generated, so it stays unmasked even when an AWS connection is explicitly configured. AzureBlobStorageToTeradataOperator instead pulls the storage account key from the Airflow connection, so the masker usually redacts the task-log copy while the Teradata-side exposure remains. The credential-bearing statement is logged and then submitted to Teradata, so the secrets are duplicated into Teradata's DBQL query logs and live monitoring views, a system Airflow cannot redact and where they persist for the logging retention window. Proper use of a Teradata AUTHORIZATION object keeps credentials out of the SQL altogether by having Teradata resolve authorization natively rather than by inlining secrets.
Know when Apache Airflow gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Reading exposed credentials requires an authenticated Airflow log-viewer or Teradata log user (PR:L) over the network UI/DB (AV:N); leaked cloud credentials give high confidentiality impact, with no integrity or availability effect.
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
2Description PRE-NVD
Executive ViewAI
Deployments of the Apache Airflow Teradata provider prior to version 3.7.0 can write cloud storage credentials - including AWS access keys, STS session tokens, and Azure Blob Storage secrets - into Airflow task logs and into Teradata's database query and monitoring logs, two locations where standard Airflow masking does not apply. Any team running S3-to-Teradata or Azure Blob-to-Teradata ingestion pipelines with the default credential path should assume those storage credentials are already exposed to parties holding log-read access, and the Teradata-side copies persist for the full log retention period. Leadership should treat this as an insider-risk and data-access issue rather than a purely technical defect, because containment requires credential rotation and log remediation in systems outside Airflow's control, not simply a version upgrade.
No vendor-released patch identified at time of analysis. Interim mitigations: set teradata_authorization_name on all S3ToTeradataOperator and AzureBlobStorageToTeradataOperator tasks so credentials are not embedded in SQL text; rotate all AWS access keys, STS session tokens, and Azure Blob Storage credentials used by those pipelines; restrict Airflow Dag-level log-view permissions to the minimum necessary; restrict access to Teradata DBQL query logs and live monitoring views and shorten their retention where feasible; replace long-lived storage keys with short-lived, least-privilege credentials; and purge or redact previously written Airflow task logs and Teradata query-log records containing the exposed values.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Apache Airflow
View allRemote code execution in Apache Airflow before 3.3.0 lets a DAG author embed a malicious trigger whose attacker-controll
Unsafe deserialization in Apache Airflow 3.3.0's Task SDK allows an authenticated DAG author to cause arbitrary module i
Unsafe deserialization in Apache Airflow 3.0.0 through 3.3.0 allows any DAG author to achieve arbitrary code execution i
Remote code execution in Apache Airflow 3.1.x allows authenticated DAG Authors to execute arbitrary code in the webserve
Command injection in Apache Airflow's BashOperator documentation example allows authenticated attackers to escalate priv
Unsafe XCom templating in Apache Airflow's documented example DAG (`example_xcom.py`) allowed an authenticated UI user w
CVE-2026-30911 is a security vulnerability (CVSS 8.1) that allows any authenticated task instance. High severity vulnera
Authorization bypass in Apache Airflow's Backfill API (all versions prior to 3.3.1) allows any authenticated user holdin
Information disclosure in Apache Airflow 3.0.0 through 3.1.x stems from incomplete secret masking and under-documented w
Apache Airflow 3.0.0 through 3.1.x exposes JWT authentication tokens in application logs, allowing any authenticated UI
CVE-2026-28779 is a security vulnerability (CVSS 7.5) that allows any application co-hosted under the same domain. High
Apache Airflow before 3.2.0 exposes SQL exception stack traces through API responses despite api/expose_stack_traces=fal
EUVD-2026-88695
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB