CVE-2023-50943:
Apache Airflow: pickle deserialization vulnerability in XComs
7.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.3778%
CWE
Published
1/24/2024
Updated
2/13/2025
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
apache-airflow | pip | >= 0, < 2.8.1rc1 | 2.8.1rc1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from the _deserialize_value function's logic in xcom.py. The original code contained a try-except block that first attempted JSON deserialization, but then fell back to unsafe pickle.loads() on decoding errors (like JSONDecodeError or UnicodeDecodeError). This created an injection vector when 'enable_xcom_pickling=False' was configured, as attackers could craft payloads that force the fallback to pickle deserialization. The patch removed this fallback mechanism, confirming this was the vulnerable code path. The accompanying test changes (e.g., expecting UnicodeDecodeError instead of silent pickle fallback) further validate this analysis.