---
id: CVE-2026-59242
title: >-
  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…
summary: >-
  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…
severity: medium
cvss: 5.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'
cwe:
  - CWE-502
vendor: apache
product: airflow
affected:
  - airflow < 3.3.1
patched:
  - airflow 3.3.1
published: '2026-08-12'
updated: '2026-09-16'
sourceUpdated: '2026-09-16T15:17:38.930'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-59242'
references:
  - url: 'https://github.com/apache/airflow/pull/69378'
    label: security@apache.org
  - url: 'https://lists.apache.org/thread/dm0520yhh4mn7qknyoh45r2w6c5qg2mg'
    label: security@apache.org
  - url: 'http://www.openwall.com/lists/oss-security/2026/08/12/6'
    label: af854a3a-2127-422b-91ae-364da2661108
tags:
  - nvd
  - cve.org
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-08-12T16:41:51.650384Z'
epss: 0.00795
epssPercentile: 0.54662
ingestedAt: '2026-09-16T15:58:38.720Z'
---

## Overview

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.

## Affected

- `airflow < 3.3.1`

## Remediation

Upgrade past the affected range:

- `airflow 3.3.1`
