← Back to CVE Explorer

CVE-2026-48726

Full vulnerability record from the local CVENow database.

Description

A bug in Apache Airflow's auth manager logout handling left previously-issued JWT tokens valid after the user clicked logout in the UI: the logout flow for `FabAuthManager` and `KeycloakAuthManager` did not actually reach the underlying `revoke_token()` call, so the JWT remained accepted by the API server until its natural expiry. An attacker holding a previously-issued JWT for a logged-out user could continue to make authenticated API calls as that user. Affects deployments configured with `FabAuthManager` or `KeycloakAuthManager` (the bug does not affect SimpleAuthManager). This is a residual gap in the fix for CVE-2025-57735, which addressed cookie-side invalidation in PR #57992 / PR #61339 but did not cover the provider-side `revoke_token()` reachability in the FAB / Keycloak code paths. Users who already upgraded for CVE-2025-57735 should additionally upgrade to `apache-airflow` 3.2.2 or later to cover the FAB / Keycloak logout paths.

Severity
MEDIUM
CVSS score
6.5 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-06-01 09:16:20.187000
Last modified
2026-11-03 07:20:43.700000
View original CVE JSON
{
  "id": "CVE-2026-48726",
  "sourceIdentifier": "[email protected]",
  "published": "2026-06-01T09:16:20.187",
  "lastModified": "2026-11-03T07:20:43.700",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "A bug in Apache Airflow's auth manager logout handling left previously-issued JWT tokens valid after the user clicked logout in the UI: the logout flow for `FabAuthManager` and `KeycloakAuthManager` did not actually reach the underlying `revoke_token()` call, so the JWT remained accepted by the API server until its natural expiry. An attacker holding a previously-issued JWT for a logged-out user could continue to make authenticated API calls as that user. Affects deployments configured with `FabAuthManager` or `KeycloakAuthManager` (the bug does not affect SimpleAuthManager). This is a residual gap in the fix for CVE-2025-57735, which addressed cookie-side invalidation in PR #57992 / PR #61339 but did not cover the provider-side `revoke_token()` reachability in the FAB / Keycloak code paths. Users who already upgraded for CVE-2025-57735 should additionally upgrade to `apache-airflow` 3.2.2 or later to cover the FAB / Keycloak logout paths."
    },
    {
      "lang": "es",
      "value": "Un error en el manejo del cierre de sesión del gestor de autenticación de Apache Airflow dejó válidos los tokens JWT emitidos previamente después de que el usuario hizo clic en cerrar sesión en la interfaz de usuario: el flujo de cierre de sesión para 'FabAuthManager' y 'KeycloakAuthManager' no alcanzó realmente la llamada subyacente a 'revoke_token()', por lo que el JWT siguió siendo aceptado por el servidor API hasta su caducidad natural. Un atacante que posea un JWT emitido previamente para un usuario que ha cerrado sesión podría seguir realizando llamadas API autenticadas como ese usuario. Afecta a las implementaciones configuradas con 'FabAuthManager' o 'KeycloakAuthManager' (el error no afecta a SimpleAuthManager). Esta es una brecha residual en la corrección para CVE-2025-57735, que abordó la invalidación del lado de la cookie en PR #57992 / PR #61339 pero no cubrió la accesibilidad de 'revoke_token()' del lado del proveedor en las rutas de código de FAB / Keycloak. Los usuarios que ya actualizaron para CVE-2025-57735 deberían actualizar adicionalmente a 'apache-airflow' 3.2.2 o posterior para cubrir las rutas de cierre de sesión de FAB / Keycloak."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "Apache Software Foundation",
          "product": "Apache Airflow",
          "defaultStatus": "unaffected",
          "collectionURL": "https://pypi.python.org",
          "packageName": "apache-airflow",
          "packageURL": "pkg:pypi/apache-airflow",
          "versions": [
            {
              "version": "0",
              "lessThan": "3.0.0",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Apache Software Foundation",
          "product": "Apache Airflow",
          "defaultStatus": "unaffected",
          "collectionURL": "https://pypi.python.org",
          "packageName": "apache-airflow-core",
          "packageURL": "pkg:pypi/apache-airflow-core",
          "versions": [
            {
              "version": "3.0.0",
              "lessThan": "3.2.2",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
          "baseScore": 6.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-06-02T16:03:20.747068Z",
          "id": "CVE-2026-48726",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-613"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
              "versionEndExcluding": "3.2.2",
              "matchCriteriaId": "0893C3AA-26A4-4682-A36C-05E719EB2943"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/apache/airflow/pull/67289",
      "source": "[email protected]",
      "tags": [
        "Issue Tracking",
        "Patch"
      ]
    },
    {
      "url": "https://lists.apache.org/thread/630jg4z6cjkv4m2yv2ljgmf1zhdj1vqx",
      "source": "[email protected]",
      "tags": [
        "Mailing List",
        "Vendor Advisory"
      ]
    },
    {
      "url": "https://www.cve.org/CVERecord?id=CVE-2025-57735",
      "source": "[email protected]",
      "tags": [
        "Mailing List",
        "Third Party Advisory"
      ]
    }
  ]
}