{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "cpe": "cpe:2.3:a:apache:apache-airflow-providers-fab:*:*:*:*:*:*:*:*",
            "extracted_events": [
              {
                "introduced": "2.4.2"
              },
              {
                "fixed": "3.9.0"
              }
            ],
            "source": [
              "AFFECTED_FIELD",
              "CPE_RANGE"
            ]
          },
          "events": [
            {
              "introduced": "16adc035b1ecdf533f44fbb3e32bea972127bb71"
            },
            {
              "fixed": "bfb054e9e867b8b9a6a449e43bfba97f645e025e"
            }
          ],
          "repo": "https://github.com/apache/airflow",
          "type": "GIT"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "apache",
    "cwe_ids": [
      "CWE-613"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82311.json"
  },
  "details": "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.\n\nAffects 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.\n\napache-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.\n\nUsers of apache-airflow-providers-fab are recommended to upgrade to version 3.9.0 or later, which compares the identifiers consistently.",
  "id": "CVE-2026-82311",
  "modified": "2026-09-20T11:30:53.098212573Z",
  "published": "2026-09-16T09:00:38.459Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://pypi.python.org"
    },
    {
      "type": "WEB",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-86462"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82311.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://lists.apache.org/thread/mmplwl93shy615shkpp9p4fzyjvr4yqw"
    },
    {
      "type": "ADVISORY",
      "url": "https://lists.apache.org/thread/mmplwl93shy615shkpp9p4fzyjvr4yqw?users@airflow.apache.org"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-82311"
    },
    {
      "type": "FIX",
      "url": "https://github.com/apache/airflow/pull/72198"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Apache Airflow FAB provider: FAB password reset never invalidates sessions: string/int _user_id comparison is always false"
}