p PatchFirst

CVE-2026-81914

CVE-2026-81914 · Apache Airflow Google provider: Google Drive query injection via unescaped file and folder names

This page contains facts from public vulnerability sources. Check the original advisory before updating.

Apache Airflow's Google provider built Google Drive search expressions by interpolating file and folder names directly into single-quoted string literals, without escaping the quote character that delimits them. A name containing an apostrophe therefore terminated the literal early and appended clauses of the attacker's choosing to the query. The names are frequently not written by the Dag author. In a wildcard `gcs_to_gdrive` transfer they come from the source bucket listing, so anyone able to create objects in that bucket controls them — typically an external data producer or an ingest-only service account, a different trust principal from the Dag author. An injected clause can broaden the match and so steer which file or folder the hook resolves: an upload can be directed into a folder the attacker named, and, because downloads select the most recently modified match, a download can return a file they placed rather than the one the Dag asked for. Affects deployments passing externally-sourced names to the Google Drive hook, including wildcard `gcs_to_gdrive` transfers from buckets writable by less-trusted principals. Users are advised to upgrade to `apache-airflow-providers-google` `22.6.0` or later, which escapes quote and backslash characters in every value interpolated into a Drive query.

CVSS 4.3 · Medium · EPSS 0.5% · Fix available

Published
Updated

Stack: python

Affected products and versions

  • apache airflow google provider

    Versions
    • ≥ 0, < 22.6.0: Affected (semver)

    Update to 22.6.0

  • apache-airflow-providers-google PyPI

    Versions
    • 1.0.0
    • 1.0.0b1
    • 1.0.0b2
    • 1.0.0rc1
    • 10.0.0
    • 10.0.0rc1
    • 10.1.0
    • 10.1.0rc1
    • 10.1.0rc2
    • 10.1.1
    • 10.1.1rc1
    • 10.10.0
    • 10.10.0rc1
    • 10.10.1
    • 10.10.1rc1
    • 10.11.0
    • 10.11.0rc1
    • 10.11.1
    • 10.11.1rc1
    • 10.12.0
    • 10.12.0rc1
    • 10.13.0
    • 10.13.0rc1
    • 10.13.0rc2
    • 10.13.0rc3
    • 10.13.1
    • 10.13.1rc1
    • 10.14.0
    • 10.14.0rc1
    • 10.14.0rc2
    • 10.15.0
    • 10.15.0rc1
    • 10.16.0
    • 10.16.0rc1
    • 10.17.0
    • 10.17.0rc1
    • 10.18.0
    • 10.18.0rc1
    • 10.18.0rc2
    • 10.19.0
    • 10.19.0rc1
    • 10.2.0
    • 10.2.0rc1
    • 10.20.0
    • 10.20.0rc1
    • 10.21.0
    • 10.21.0rc1
    • 10.21.1
    • 10.21.1rc1
    • 10.21.1rc2
    • 10.22.0
    • 10.22.0rc1
    • 10.23.0
    • 10.23.0rc1
    • 10.24.0
    • 10.24.0rc1
    • 10.25.0
    • 10.25.0rc1
    • 10.26.0
    • 10.26.0rc1
    • 10.3.0
    • 10.3.0rc1
    • 10.3.0rc2
    • 10.4.0
    • 10.4.0rc1
    • 10.5.0
    • 10.5.0rc1
    • 10.6.0
    • 10.6.0rc1
    • 10.6.0rc2
    • 10.6.0rc3
    • 10.7.0
    • 10.7.0rc1
    • 10.8.0
    • 10.8.0rc1
    • 10.9.0
    • 10.9.0rc1
    • 11.0.0
    • 11.0.0rc1
    • 12.0.0
    • 12.0.0rc1
    • 12.0.0rc2
    • 13.0.0
    • 14.0.0
    • 14.0.0rc1
    • 14.1.0
    • 14.1.0rc1
    • 15.0.0
    • 15.0.0rc1
    • 15.0.1
    • 15.0.1rc1
    • 15.1.0
    • 15.1.0rc1
    • 16.0.0
    • 16.0.0rc1
    • 16.1.0
    • 16.1.0rc1
    • 17.0.0
    • 17.0.0rc1
    • 17.1.0
    • 17.1.0rc1
    • 17.2.0
    • 17.2.0rc1
    • 18.0.0
    • 18.0.0rc1
    • 18.1.0
    • 18.1.0rc1
    • 19.0.0
    • 19.0.0rc1
    • 19.1.0
    • 19.1.0rc1
    • 19.1.0rc2
    • 19.2.0
    • 19.2.0rc1
    • 19.3.0
    • 19.3.0rc1
    • 19.4.0
    • 19.4.0rc1
    • 19.4.0rc2
    • 19.5.0
    • 19.5.0rc1
    • 2.0.0
    • 2.0.0rc1
    • 2.1.0
    • 2.1.0rc1
    • 2.2.0
    • 2.2.0rc1
    • 20.0.0
    • 20.0.0rc1
    • 20.0.0rc2
    • 21.0.0
    • 21.0.0rc1
    • 21.0.0rc2
    • 21.1.0
    • 21.1.0rc1
    • 21.2.0
    • 21.2.0rc1
    • 21.3.0
    • 21.3.0rc1
    • 22.0.0
    • 22.0.0rc1
    • 22.1.0
    • 22.1.0rc1
    • 22.2.0
    • 22.2.0rc1
    • 22.2.1
    • 22.2.1rc1
    • 22.2.2
    • 22.2.2rc1
    • 22.3.0
    • 22.3.0rc1
    • 22.3.0rc2
    • 22.3.0rc3
    • 22.3.0rc4
    • 22.4.0
    • 22.4.0rc1
    • 22.5.0
    • 22.5.0rc1
    • 22.6.0rc1
    • 3.0.0
    • 3.0.0rc1
    • 4.0.0
    • 4.0.0rc1
    • 4.0.0rc2
    • 4.1.0rc1
    • 5.0.0
    • 5.0.0rc2
    • 5.1.0
    • 5.1.0rc1
    • 6.0.0
    • 6.0.0rc1
    • 6.1.0
    • 6.1.0rc1
    • 6.2.0
    • 6.2.0rc1
    • 6.3.0
    • 6.3.0rc1
    • 6.4.0
    • 6.4.0rc1
    • 6.4.0rc2
    • 6.4.0rc3
    • 6.5.0
    • 6.5.0rc1
    • 6.6.0
    • 6.6.0rc1
    • 6.7.0
    • 6.7.0rc1
    • 6.8.0
    • 6.8.0rc1
    • 7.0.0
    • 7.0.0rc1
    • 8.0.0
    • 8.0.0rc1
    • 8.0.0rc2
    • 8.1.0
    • 8.1.0rc1
    • 8.10.0
    • 8.10.0rc1
    • 8.11.0
    • 8.11.0rc1
    • 8.12.0
    • 8.12.0rc1
    • 8.2.0
    • 8.2.0rc1
    • 8.3.0
    • 8.3.0rc1
    • 8.3.0rc2
    • 8.3.0rc3
    • 8.4.0
    • 8.4.0rc1
    • 8.4.0rc2
    • 8.5.0
    • 8.5.0rc1
    • 8.6.0
    • 8.6.0rc2
    • 8.6.0rc3
    • 8.7.0
    • 8.7.0rc1
    • 8.7.0rc2
    • 8.8.0
    • 8.8.0rc1
    • 8.9.0
    • 8.9.0rc1
    • 9.0.0
    • 9.0.0rc1
    • 9.0.0rc2
    Affected ranges
    • ECOSYSTEM: < 22.6.0

    Update to 22.6.0

Original sources

Check your server →