In the Apache Airflow FAB provider, resetting a user's password fails to delete that user's existing database-backed sessions because the cleanup compares the string identifier Flask-Login stores in the session against the user's integer database ID, so the comparison is always false and no session is removed. The flaw is triggered when an administrator or the user runs the supported password-reset command, typically as a containment step after a session cookie has been compromised. An attacker who already holds a copy of the victim's session cookie therefore retains authenticated access as that user even after the password is changed. Only deployments using the FAB auth manager with [fab] session_backend=database are affected; the secure-cookie backend is out of scope. No public proof-of-concept or in-the-wild exploitation is known, and version 3.9.0 fixes this bug along with CVE-2026-86462, a second route to the same outcome via the Admin user-edit endpoint.
What to do: Upgrade apache-airflow-providers-fab to version 3.9.0 or later, which corrects the identifier comparison and also fixes CVE-2026-86462. Until upgraded, do not rely on a password reset to evict a suspected cookie thief: manually delete the user's rows from the database session store (or invalidate sessions another way, such as rotating the secret key) and audit session records for unexpected activity. Check whether your deployment sets [fab] session_backend=database to confirm exposure.
Product
Affected
Apache Software Foundation apache-airflow-providers-fab (Apache Airflow FAB auth manager)
All versions before 3.9.0 when used with [fab] session_backend=database
Estimated exposure
moderate≈1,000–10,000 Airflow deployments (the opt-in database-session subset of Airflow's large installed base) — Apache Airflow is a very widely deployed open-source orchestrator and the FAB provider ships with Airflow 2.x installs, but only deployments that explicitly configure [fab] session_backend=database are vulnerable, so this is an…
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Description · NVD
Apache Airflow FAB provider: resetting a user's password does not delete that user's existing database-backed sessions, despite documented behaviour that it does. The cleanup compares the string identifier Flask-Login stores in the session against the user's integer database identifier, so the comparison never matches and no session is removed. An attacker who already holds a copy of the victim's session cookie keeps access as that user after the password change, so the reset does not evict them. Affects deployments using the FAB auth manager with `[fab] session_backend=database`. The trigger is an administrator (or the user) running the supported password-reset command as a containment action after a session cookie has been compromised; the secure-cookie backend is out of scope, as it documents that it cannot centrally delete sessions. apache-airflow-providers-fab 3.9.0 also fixes CVE-2026-86462, a second, independent route to the same outcome via the Admin user-edit endpoint; a single upgrade closes both. Users of apache-airflow-providers-fab are recommended to upgrade to version 3.9.0 or later, which compares the identifiers consistently.