All vulnerabilities
CVE-2026-59242BIT-airflow-2026-59242GHSA-fcmm-42r9-mmmmPYSEC-2026-3992

apache-airflow: Apache Airflow XCom API permits unsafe deserialization through JSON string literals

Apache Software Foundation apache-airflowpipLibraries & packages
CVSS
5.4Medium
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.53%Chance of exploitation activity in the next 30 days, higher than 43% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in3.3.1Fixed versionGitHub
Published12 Aug 2026Updated 2 Oct 2026CVE List

What fixes it

  • 3.3.1apache-airflow, pipGitHub
  • 3.3.1Apache AirflowCVE List
  • 3.3.1apache-airflow, PyPIOSVpip install "apache-airflow>=3.3.1"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Apache Airflow's XCom GET /api/v2/{...}/xcomEntries/{key}?deserialize=true endpoint passed a string-literal payload through BaseXCom.deserialize_value without the _check_forbidden_xcom_keys guard, allowing an authenticated API user with XCom write-and-read access to instantiate arbitrary airflow.* classes on the API server (CWE-502). An authenticated user who can write an XCom value and then read it back with deserialize=true triggers the unsafe instantiation. Users are advised to upgrade to apache-airflow 3.3.1 or later, which rejects reserved XCom serialization keys submitted as JSON string literals.

Text from CVE List

Affected versions 53

  • apache-airflow, pip< 3.3.1GitHub
  • Apache Airflowaffected: all versions before 3.3.1CVE List
  • apache-airflow, PyPIfrom first release, fixed in 3.3.1OSV
  • apache-airflow, PyPI1.10.0OSV
  • apache-airflow, PyPI1.10.1OSV
  • apache-airflow, PyPI1.10.10OSV
  • apache-airflow, PyPI1.10.10rc1OSV
  • apache-airflow, PyPI1.10.10rc2OSV
  • apache-airflow, PyPI1.10.10rc3OSV
  • apache-airflow, PyPI1.10.10rc4OSV
  • apache-airflow, PyPI1.10.10rc5OSV
  • apache-airflow, PyPI1.10.11OSV
  • apache-airflow, PyPI1.10.11rc1OSV
  • apache-airflow, PyPI1.10.11rc2OSV
  • apache-airflow, PyPI1.10.12OSV
  • apache-airflow, PyPI1.10.12rc1OSV
  • apache-airflow, PyPI1.10.12rc2OSV
  • apache-airflow, PyPI1.10.12rc3OSV
  • apache-airflow, PyPI1.10.12rc4OSV
  • apache-airflow, PyPI1.10.13OSV
  • apache-airflow, PyPI1.10.13rc1OSV
  • apache-airflow, PyPI1.10.14OSV
  • apache-airflow, PyPI1.10.14rc1OSV
  • apache-airflow, PyPI1.10.14rc2OSV
  • apache-airflow, PyPI1.10.14rc3OSV
  • apache-airflow, PyPI1.10.14rc4OSV
  • apache-airflow, PyPI1.10.15OSV
  • apache-airflow, PyPI1.10.15rc1OSV
  • apache-airflow, PyPI1.10.1b1OSV
  • apache-airflow, PyPI1.10.1rc2OSV
  • apache-airflow, PyPI1.10.2OSV
  • apache-airflow, PyPI1.10.2b2OSV
  • apache-airflow, PyPI1.10.2rc1OSV
  • apache-airflow, PyPI1.10.2rc2OSV
  • apache-airflow, PyPI1.10.2rc3OSV
  • apache-airflow, PyPI1.10.3OSV
  • apache-airflow, PyPI1.10.3b1OSV
  • apache-airflow, PyPI1.10.3b2OSV
  • apache-airflow, PyPI1.10.3rc1OSV
  • apache-airflow, PyPI1.10.3rc2OSV
  • apache-airflow, PyPI1.10.4OSV
  • apache-airflow, PyPI1.10.4b2OSV
  • apache-airflow, PyPI1.10.4rc1OSV
  • apache-airflow, PyPI1.10.4rc2OSV
  • apache-airflow, PyPI1.10.4rc3OSV
  • apache-airflow, PyPI1.10.4rc4OSV
  • apache-airflow, PyPI1.10.4rc5OSV
  • apache-airflow, PyPI1.10.5OSV
  • apache-airflow, PyPI1.10.5rc1OSV
  • apache-airflow, PyPI1.10.6OSV
  • apache-airflow, PyPI1.10.6rc1OSV
  • apache-airflow, PyPI1.10.6rc2OSV
  • apache-airflow, PyPI1.10.7OSV

References 8