{"id":"PYSEC-2026-4188","details":"Apache Airflow's Snowflake provider did not validate the connection's `account` and `region` fields before interpolating them into request URLs. The SQL API endpoint is built as `https://{account}.snowflakecomputing.com/api/v2/statements`, so an `account` value containing `/`, `?` or `#` demotes the intended domain to a path, query or fragment and leaves the attacker in control of the request host.\n\nThe provider sends that request with an `Authorization: Bearer` header carrying a JWT minted from the connection's private key, or the configured OAuth or programmatic access token. A user who can edit the Snowflake connection but cannot read its secrets — Airflow gives connection-configuration users write-only access to stored credentials, and a `private_key_file` lives on the worker rather than in the connection — can therefore cause a valid token for the account to be delivered to a host of their choosing and replay it against the genuine Snowflake endpoint. No Dag-authoring ability is required: the attacker edits the connection and waits for an existing Dag to use it. The same unvalidated value was also used to build the OAuth token-request URL and the Cortex Agent base URL.\n\nAffects deployments where Snowflake connections are editable by users who are not trusted with the connection's credentials. Users are advised to upgrade to `apache-airflow-providers-snowflake` `6.18.0` or later, which rejects `account` and `region` values containing anything other than letters, digits, `.`, `_` and `-` in every URL the provider builds from them.","aliases":["CVE-2026-81930"],"modified":"2026-10-08T10:00:03.975900043Z","published":"2026-09-29T10:17:12.673Z","references":[{"type":"ADVISORY","url":"http://www.openwall.com/lists/oss-security/2026/09/29/12"},{"type":"ADVISORY","url":"https://lists.apache.org/thread/324jm2mxd5x4nq85jfw1ostz94xwzrmk"},{"type":"FIX","url":"https://github.com/apache/airflow/pull/72174"}],"affected":[{"package":{"name":"apache-airflow-providers-snowflake","ecosystem":"PyPI","purl":"pkg:pypi/apache-airflow-providers-snowflake"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.18.0"}]}],"versions":["1.0.0","1.0.0b1","1.0.0b2","1.0.0rc1","1.1.0","1.1.0rc1","1.1.1","1.1.1rc1","1.1.1rc2","1.2.0","1.2.0rc1","1.3.0","1.3.0rc1","2.0.0","2.0.0rc1","2.0.0rc2","2.0.0rc3","2.1.0","2.1.0rc1","2.1.0rc2","2.1.1","2.1.1rc1","2.2.0","2.2.0rc1","2.3.0","2.3.0rc1","2.3.1","2.3.1rc1","2.4.0","2.4.0rc1","2.5.0","2.5.0rc1","2.5.0rc2","2.5.1","2.5.1rc1","2.5.2","2.5.2rc1","2.6.0","2.6.0rc1","2.7.0","2.7.0rc1","3.0.0","3.0.0rc1","3.0.0rc2","3.1.0","3.1.0rc1","3.2.0","3.2.0rc1","3.2.0rc2","3.2.0rc3","3.3.0","3.3.0rc1","4.0.0","4.0.0rc1","4.0.1","4.0.1rc2","4.0.1rc3","4.0.2","4.0.2rc1","4.0.3","4.0.3rc1","4.0.4","4.0.4rc1","4.0.5","4.0.5rc1","4.1.0","4.1.0rc1","4.1.0rc2","4.2.0","4.2.0rc1","4.3.0","4.3.0rc2","4.3.1","4.3.1rc1","4.4.0","4.4.0rc1","4.4.1","4.4.1rc1","4.4.2","4.4.2rc1","5.0.0","5.0.0rc1","5.0.1","5.0.1rc1","5.1.0","5.1.0rc1","5.1.1","5.1.1rc1","5.1.2","5.1.2rc1","5.2.0","5.2.0rc1","5.2.1","5.2.1rc1","5.3.0","5.3.0rc1","5.3.0rc2","5.3.1","5.3.1rc1","5.4.0","5.4.0rc1","5.5.0","5.5.0rc1","5.5.1","5.5.1rc1","5.5.2","5.5.2rc1","5.6.0","5.6.0rc1","5.6.1","5.6.1rc1","5.7.0","5.7.0rc1","5.7.1","5.7.1rc1","5.8.0","5.8.0rc1","5.8.1","5.8.1rc1","6.0.0","6.0.0rc1","6.0.0rc2","6.1.0","6.1.0rc1","6.1.1","6.1.1rc1","6.10.0","6.10.0rc1","6.11.0","6.11.0rc1","6.12.0","6.12.0rc1","6.12.1","6.12.1rc1","6.12.2","6.12.2rc1","6.13.0","6.13.0rc1","6.14.0","6.14.0rc1","6.15.0","6.15.0rc1","6.15.0rc2","6.16.0","6.16.0rc1","6.16.0rc2","6.16.1","6.16.1rc1","6.17.0","6.17.0rc1","6.18.0rc1","6.2.0","6.2.0rc1","6.2.1","6.2.1rc1","6.2.2","6.2.2rc1","6.3.0","6.3.0rc1","6.3.0rc2","6.3.1","6.3.1rc1","6.4.0","6.4.0rc1","6.5.0","6.5.0rc1","6.5.1","6.5.1rc1","6.5.2","6.5.2rc1","6.5.3","6.5.3rc1","6.5.4","6.5.4rc1","6.6.0","6.6.0rc1","6.6.1","6.6.1rc1","6.7.0","6.7.0rc1","6.8.0","6.8.0rc1","6.8.1","6.8.1rc1","6.8.2","6.8.2rc1","6.9.0","6.9.0rc1","6.9.1","6.9.1rc1"],"ecosystem_specific":{},"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/apache-airflow-providers-snowflake/PYSEC-2026-4188.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:L/A:L"}]}