GHSA-qphr-3mvq-v466
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Lifecycle Timeline
6Blast Radius
ecosystem impact- 8 pypi packages depend on apache-airflow (4 direct, 4 indirect)
Ecosystem-wide dependent count for version 3.2.2.
Description PRE-NVD
AnalysisAI
The event log detail endpoint in Apache Airflow before 3.2.2 applies a generic DAG-level audit log permission check rather than scoping authorization to the specific DAG that owns the requested event log entry, allowing any authenticated low-privilege user to read audit log entries belonging to DAGs outside their permitted scope. The flaw is a broken object-level authorization (IDOR) pattern - classified as CWE-639 - where the user-supplied event_log_id path parameter can reference log rows from unauthorized DAGs without triggering a rejection. No public exploit code exists and the issue is not listed in CISA KEV, but the attack is trivially executable by any authenticated Airflow user in a multi-tenant deployment.
Technical ContextAI
Apache Airflow's FastAPI-based public API exposes a GET /eventLogs/{event_log_id} endpoint for retrieving individual audit log entries stored in the Log database table. Prior to the fix, this endpoint was protected by the requires_access_dag('GET', DagAccessEntity.AUDIT_LOG) dependency, which verified that the requesting user held generic audit-log read rights on DAGs but did not resolve the specific dag_id bound to the requested event_log_id before making the authorization decision. CWE-639 (Authorization Bypass Through User-Controlled Key) is the root cause: the user-controlled integer key (event_log_id) determines which row is fetched, but the authorization check was not keyed to the same row's owning DAG. The fix in PR #67112 introduces a new requires_access_event_log dependency that first queries select(Log.dag_id).where(Log.id == event_log_id) and then calls requires_access_dag scoped to that specific DAG, closing the gap. The affected component is airflow-core/src/airflow/api_fastapi/core_api/routes/public/event_logs.py and the associated security middleware in security.py. CPE cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:* covers all versions up to 3.2.2.
RemediationAI
Upgrade to Apache Airflow 3.2.2 or later, which replaces the generic requires_access_dag guard on the event log detail endpoint with the new requires_access_event_log dependency that performs per-row DAG-scoped authorization. The upstream code fix is confirmed merged in GitHub pull request https://github.com/apache/airflow/pull/67112, and the vendor security advisory thread is at https://lists.apache.org/thread/ctrbj7q3m86g4qxmo9ponojgmzrcoqpv. As a compensating control for environments that cannot immediately upgrade, restrict network access to the /eventLogs/{event_log_id} API endpoint at the reverse-proxy or firewall layer to only users or service accounts whose scope already covers all DAGs, effectively eliminating cross-DAG leakage; note this will prevent legitimate scoped-user audit log access and may break downstream integrations. There is no known Airflow configuration flag to disable the vulnerable code path in place - an upgrade is the only complete remediation.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Same technique Deserialization
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-33584