{"id":"PYSEC-2026-4187","details":"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.\n\nThe 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.\n\nAffects 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.","aliases":["CVE-2026-81914"],"modified":"2026-10-08T10:00:02.913095192Z","published":"2026-09-29T10:17:12.530Z","references":[{"type":"ADVISORY","url":"http://www.openwall.com/lists/oss-security/2026/09/29/13"},{"type":"ADVISORY","url":"https://lists.apache.org/thread/90osv795jrqds051y7v3lcdzhsospooo"},{"type":"FIX","url":"https://github.com/apache/airflow/pull/72166"}],"affected":[{"package":{"name":"apache-airflow-providers-google","ecosystem":"PyPI","purl":"pkg:pypi/apache-airflow-providers-google"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"22.6.0"}]}],"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"],"ecosystem_specific":{},"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/apache-airflow-providers-google/PYSEC-2026-4187.yaml"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N"}]}