---
id: "CVE-2026-40961"
kind: "vulnerability"
aliases: ["CVE-2026-40961", "GHSA-6hcw-qqr8-pjj8"]
title: "Apache Airflow: Authenticated users can bypass the `is_safe_url` check"
severity: "high"
cvss: 7.2
epss: 0.00649
exploited: false
status: "open"
category: "package"
products: [{"name": "apache-airflow", "fixed": ["3.2.2"], "affected": ">= 3.0.0b3, < 3.2.2", "ecosystem": "pypi"}, {"name": "apache airflow", "fixed": ["3.2.2"], "affected": ">= 3.0.0, < 3.2.2", "ecosystem": "vendor"}]
ecosystems: ["pypi", "vendor"]
tags: ["apache-airflow", "cwe-601", "package", "python", "self-hosted"]
not_affected_if: ["auth-required", "managed-hosting"]
published_at: "2026-06-01T09:16:18+00:00"
first_seen_at: "2026-11-02T23:09:41+00:00"
updated_at: "2026-11-02T23:35:57+00:00"
sources: [{"source": "ghsa", "url": "https://github.com/advisories/GHSA-6hcw-qqr8-pjj8", "first_seen_at": "2026-11-02T23:09:41+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-40961", "first_seen_at": "2026-11-02T23:35:57+00:00"}]
---

# Apache Airflow: Authenticated users can bypass the `is_safe_url` check

Apache Airflow's login redirect route let an authenticated user craft a URL that skipped the is_safe_url check, so Airflow would redirect from its own domain to an attacker-chosen site. The sources describe an open redirect (CWE-601), not code execution or data theft.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- pypi:apache-airflow affected >= 3.0.0b3, < 3.2.2 fixed 3.2.2
- vendor:apache airflow affected >= 3.0.0, < 3.2.2 fixed 3.2.2

## How to check

- Check the installed version with `pip show apache-airflow` and compare it to the affected range.
- Confirm the deployment is one of the affected versions: `>= 3.0.0b3` and `< 3.2.2`.

## Fix

- `apache-airflow` `3.2.2` or later.
- As a defense-in-depth measure, the sources say a reverse proxy can strip off-domain `next=` query parameters before they reach the login endpoint.

## Timeline

- 2026-11-02T23:09:41+00:00 ghsa https://github.com/advisories/GHSA-6hcw-qqr8-pjj8
- 2026-11-02T23:35:57+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-40961

## Documents

- [advisory] Vendor advisory: lists.apache.org https://lists.apache.org/thread/qmt8ksh7gty6b8hr9w294t94j36jdv1q
- [advisory] Third-party advisory: www.openwall.com http://www.openwall.com/lists/oss-security/2026/05/31/2
- [fix] Patch: github.com https://github.com/apache/airflow/pull/65557
- [fix] Patch: github.com https://github.com/apache/airflow/commit/555f35576e3143dec65a7fb9acd95891841b45f2
- [fix] Patch: github.com https://github.com/apache/airflow/commit/bfd1881fa0cb1193f49dbac72d7462e66aaf8f25

## From the sources

A bug in the login redirect route in Apache Airflow allowed authenticated users to craft URLs that bypassed the `is_safe_url` check, enabling redirection from a trusted Airflow domain to an attacker-controlled origin. Users are advised to upgrade to `apache-airflow` 3.2.2 or later. As a defense-in-depth mitigation, deployment operators can place Airflow behind a reverse proxy that strips off-domain `next=` query parameters before they reach the login endpoint.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
