AI analysis
The Apache Airflow Teradata provider's compute-cluster example Dag treated every Dag Param as unconstrained free text and templated those values into compute-cluster operators that interpolate them into Teradata DDL. A user allowed to trigger the Dag, a lower-trust role that does not need its own Teradata credentials, could inject SQL fragments that run as the task's connection and could point the task at any other connection in the deployment because the connection id was also a free-text Param. Only deployments that run this example Dag, or a Dag copied from it, are affected; the provider's operator code is unchanged. Users should upgrade to apache-airflow-providers-teradata 3.7.0 or later, which constrains Params to validated identifiers and a closed set and removes connection selection and free-form option strings from trigger-time input. No public proof-of-concept is known and the issue is not listed in CISA KEV.
What to do: Upgrade apache-airflow-providers-teradata to 3.7.0 or later. Upgrading does not fix a Dag already copied from the example, so apply the same constraints there: validated identifiers, a closed value set, and no trigger-time connection selection or free-form option strings. Until then, do not let lower-trust users trigger that Dag.
Affected
| Apache Airflow Teradata provider (apache-airflow-providers-teradata) compute-cluster example Dag | versions before 3.7.0, only when the example Dag or a copy of it is deployed |
Estimated exposure
nicheNo basis for an estimate.
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Description
The Apache Airflow Teradata provider's compute-cluster example Dag declared every one of its Dag Params as unconstrained free text and templated them straight into the compute-cluster operators, which interpolate those values into Teradata DDL. A user who is permitted to trigger that Dag - a lower-trust role than the Dag author, and one that needs no Teradata credentials of its own - could therefore supply SQL fragments that execute under the connection the task runs as, and could additionally redirect the task at any other connection defined in the deployment, because the connection id was itself a free-text Param. Only deployments that run this example Dag, or a Dag copied from it, are affected; the provider's operator code is unchanged. Users of apache-airflow-providers-teradata are recommended to upgrade to version 3.7.0 or later, whose example constrains the Params to validated identifiers and a closed value set and removes connection selection and free-form option strings from trigger-time input. Upgrading does not change a Dag already copied from the example; users who copied it should apply the same constraints to their copy.