☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Apache Airflow logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N 🐛 CWE-200
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-75158

CVE-2026-75158 Vulnerability in Apache Airflow
📅 PUBLISHED: 2026-09-21 00:00 UTC 🔄 UPDATED: 2026-10-12 23:14 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.23%
👁️
0.23% probability
5.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1213
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-75158 is an authorization-bypass information-disclosure flaw in Apache Airflow's /assets/events API. The endpoint returned asset events for every Dag in the deployment without restricting results to the Dags the caller is authorized to read, so any authenticated user holding asset-read access could enumerate asset events — including source Dag ID, task ID, run ID, and event timestamps — for Dags they are not permitted to see. The flaw is most severe in multi-tenant or team-segmented deployments that rely on per-Dag access control; the NVD description states no special configuration is required beyond the use of that access control model.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Apache Airflow is a workflow orchestration platform in which users define Dags (directed acyclic graphs) representing pipelines, and tasks within them. Airflow supports fine-grained, per-Dag authorization so that teams or tenants sharing one deployment can only read the Dags assigned to them. Airflow also exposes an asset (dataset) subsystem: asset events record metadata about asset-producing or asset-consuming activity, including the source Dag ID, task ID, run ID, and event timestamps, as enumerated in the NVD description.

The /assets/events API is the interface through which a caller lists asset events. According to the NVD description, the vulnerability is a missing authorization filter rather than a parsing, injection, or memory-safety defect. The endpoint's query returned asset events for every Dag in the deployment and did not constrain results to the set of Dags the caller is authorized to read. Consequently, an authenticated user with asset-read access received cross-tenant event records.

Two distinct disclosure paths are described, both rooted in CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor):

  1. Row-level disclosure. Individual asset event records returned by /assets/events carried the source Dag ID, task ID, run ID, and event timestamps of Dags outside the caller's authorization scope. These fields enable reconstruction of pipeline topology, scheduling behavior, and execution history for hidden Dags.

  2. Metadata/side-channel disclosure. The NVD description notes that the same filtering was absent from the count query backing the listing. As a result, total_entries and pagination metadata disclosed the existence of hidden Dags even when the caller did not inspect the individual event rows. An attacker could therefore determine the presence and approximate volume of otherwise-invisible Dags purely from the collection's size and page boundaries.

The attack surface is the REST API layer reachable over the network, as reflected by the CVSS vector AV:N. The flaw requires authentication and a low-privilege role — per the NVD description, "any authenticated user holding asset-read access" — mapping to PR:L. No user interaction is required (UI:N). The scope is unchanged (S:U): the exploit stays within the authorization model of the same Airflow deployment. Confidentiality impact is rated Low (C:L), while integrity (I:N) and availability (A:N) impacts are absent, yielding the published score of 4.3.

Because the disclosure is a read-only authorization gap in a query, there is no code execution, privilege escalation, or data modification involved. The exposure is limited to the fields the endpoint legitimately serves — but served to the wrong audience. The count-query omission is notable because even deployments that restrict direct row inspection may still leak Dag existence through pagination totals, meaning fixing row filtering alone would not fully close the issue. Upgrading to apache-airflow 3.3.2 or later is the vendor-stated remediation.

Exploitation Scenarios

No public proof-of-concept, Nuclei template, or exploit code was identified for CVE-2026-75158. The attack chain below is inferred from the vulnerability class (broken object-level / per-Dag authorization in a read API) and from the facts stated in the NVD description. No specific function names, route parameters, or code paths beyond those in the description are asserted.

1) Reconnaissance and target identification. The attacker identifies an Airflow deployment exposing the REST API (network-reachable, AV:N). Enumeration typically begins with establishing that the /assets/events endpoint is served and that the API version in use predates 3.3.2. Shodan-style product fingerprinting and HTTP title/body matching for Airflow instances can locate candidate targets; the attacker's primary interest is deployments where multiple teams or tenants share one instance under per-Dag access control. The attacker registers or is issued a normal account and confirms it holds at least asset-read access. This is the minimum role the NVD description identifies as sufficient.

2) Triggering the flaw class. The attacker issues authenticated read requests to /assets/events. Because the server-side query lacks a per-Dag authorization filter — the core defect — the response is not scoped to the caller's authorized Dags. Unlike a classic IDOR, the attacker does not need to guess or iterate object identifiers to reach foreign objects; the unfiltered list returns them directly. The attacker simply lists, and the collection itself is over-scoped.

3) Data extraction at the vulnerability-class level. The attacker reads the returned records, which per the NVD description contain the source Dag ID, task ID, run ID, and event timestamps. Beyond rows, the attacker observes the collection's total_entries value and pagination behavior: since the count query was also unfiltered, the totals reflect all Dags, not the caller's subset. The attacker can step through pages to harvest the full event set and can use the total count as an existence oracle, confirming hidden Dags even without reading individual events. No exploitation payload is required — the attack is performed through legitimate, well-formed authenticated GET-style read operations against the endpoint.

4) Post-exploitation impact. The harvested metadata enables an attacker with a low-privilege account to map parts of the environment they were not authorized to see: which Dags exist, their identifiers, their task structure, their run history, and their timing. This information supports lateral reconnaissance, targeting, and social engineering within the organization. It does not by itself grant write access, code execution, or the ability to alter pipelines; the impact remains information disclosure rated C:L, I:N, A:N. In segmented or regulated environments, the cross-tenant leak of pipeline identifiers and scheduling data can nonetheless be material for compliance and for follow-on campaigns.

Impact Assessment

The direct impact is unauthorized disclosure of asset-event metadata across Dag authorization boundaries. For any deployment using per-Dag access control to separate teams or tenants, an authenticated low-privileged user with asset-read access can enumerate the source Dag ID, task ID, run ID, and timestamps of Dags they are not permitted to read. The count-query omission additionally reveals the existence and volume of hidden Dags through total_entries and pagination, which is a confidentiality leak in its own right.

Business consequences center on multi-tenant isolation failures: pipeline topology and execution history can expose business logic, scheduling cadence, third-party integrations, data-source identifiers, and intra-organization structure. In environments where Dag names or IDs embed sensitive project, client, or system identifiers, the metadata itself can be sensitive. Because the vector is AV:N/PR:L/UI:N with C:L/I:N/A:N and an overall score of 4.3, the blast radius is bounded — no integrity or availability loss, and confidentiality impact is limited to the fields the endpoint serves — but the population at risk is every authenticated user with asset-read access on an affected, segmented deployment. CVSS scope is unchanged (S:U), so the effect is contained within the Airflow deployment's own authorization model rather than crossing into other security authorities.

This CVE is not listed in CISA KEV and has no public exploit or PoC, so exploitation to date is best characterized as unobserved in open sources. The elevated risk is contextual, not intrinsic: organizations that share a single Airflow instance across teams, customers, or regulatory boundaries face the greatest exposure.

Detection Guidance

Sigma Rule

title: Potential Apache Airflow /assets/events Dag Authorization Bypass Enumeration
id: 7c1f9d2a-3b64-4e58-9f7a-airflowcve75158
status: experimental
description: Detects authenticated accesses to the Airflow /assets/events API consistent with cross-Dag asset event enumeration (CVE-2026-75158). Correlates endpoint access with anomalous pagination or high total_entries retrieval by low-privilege users.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-75158
author: valtersit.com
date: 2026/01/01
logsource:
  product: apache_airflow
  service: webserver
detection:
  selection_endpoint:
    cs-uri-stem|contains: '/assets/events'
  selection_method:
    cs-method: 'GET'
  selection_status:
    sc-status: 200
  condition: selection_endpoint and selection_method and selection_status
fields:
  - c-ip
  - cs-username
  - cs-uri-query
  - sc-status
falsepositives:
  - Legitimate asset dashboards and authorized users listing their own Dags
  - Automated monitoring that polls /assets/events on a fixed schedule
level: medium
tags:
  - attack.t1213
  - cve.2026.75158

YARA Rule

rule CVE_2026_75158_Airflow_Assets_Events_Scoped_Access
{
    meta:
        description = "Detects references to the Airflow /assets/events API path in web logs, request captures, or application source that may be associated with CVE-2026-75158 enumeration activity"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-75158"
        cve = "CVE-2026-75158"
        author = "valtersit.com"
        date = "2026-01-01"
        severity = "medium"

    strings:
        $uri_raw  = "/assets/events" ascii wide nocase
        $uri_enc  = "%2Fassets%2Fevents" ascii wide nocase
        $field1   = "total_entries" ascii wide nocase
        $field2   = "asset_events" ascii wide nocase
        $dag      = "dag_id" ascii wide nocase
        $ti       = "task_id" ascii wide nocase
        $ri       = "run_id" ascii wide nocase

    condition:
        uint32(0) != 0xfeedface and
        (
            $uri_raw or $uri_enc
        ) and
        2 of ($field*)
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-75158 Apache Airflow /assets/events Dag Authorization Bypass Enumeration"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"/assets/events"; http.uri; content:"limit="; http.uri; content:"offset="; threshold:type both, track by_src, count 30, seconds 60; classtype:attempted-recon; reference:cve,2026-75158; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-75158; metadata:created_at 2026_01_01, updated_at 2026_01_01; sid:202675158; rev:1;)

Note: the rule keys on the /assets/events endpoint combined with pagination parameters (limit/offset) and rate-throttles repeated hits to separate systematic enumeration from normal dashboard traffic.

Elastic Detection

sequence by user.name with maxspan=5m
  [ http where url.path == "/assets/events" and http.request.method == "GET" and http.response.status_code == 200 ]
  [ http where url.path == "/assets/events" and http.request.method == "GET" and http.response.status_code == 200 and url.query : ("offset=*" or "limit=*") ]

This flags a caller repeatedly hitting /assets/events with pagination parameters — a pattern consistent with sweeping the unfiltered event collection. Low-privilege service accounts that only ever read a small fixed set of Dags will still trip the second event, so tune by user role if the deployment's legitimate users legitimately paginate.

Splunk SPL Query

index=airflow sourcetype=airflow:webserver OR sourcetype=airflow:api
uri_path="/assets/events" http_method=GET status=200
| eval user=coalesce(user, remote_user, cs_username, "-")
| bin _time span=1m
| stats count AS hits dc(uri_query) AS distinct_queries values(uri_query) AS queries BY user, _time
| where hits >= 20 OR distinct_queries >= 4
| sort - hits

This aggregates authenticated GET requests to /assets/events per user per minute and surfaces users generating unusually high request or distinct-pagination counts, indicating broad enumeration rather than reading a narrow authorized subset.

Wazuh OSSEC Rule

<group name="apache_airflow,web,accesslog,">
  <rule id="2026751" level="0">
    <decoded_as>web-accesslog</decoded_as>
    <url>/assets/events</url>
    <description>Airflow /assets/events API access (baseline)</description>
  </rule>

  <rule id="2026752" level="6" frequency="20" timeframe="60">
    <if_matched_sid>2026751</if_matched_sid>
    <same_source_ip />
    <description>Possible CVE-2026-75158: repeated Airflow /assets/events access indicating cross-Dag asset event enumeration</description>
    <mitre>
      <id>T1213</id>
    </mitre>
    <group>cve_2026_75158,recon,</group>
  </rule>

  <rule id="2026753" level="8">
    <if_sid>2026751</if_sid>
    <regex>limit=|offset=</regex>
    <description>Possible CVE-2026-75158: Airflow /assets/events pagination sweep by authenticated user</description>
    <mitre>
      <id>T1213</id>
    </mitre>
    <group>cve_2026_75158,recon,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor advisory, commit, or backport reference was located in the tracked sources; the only remediation statement available is the NVD description's guidance to upgrade to apache-airflow 3.3.2 or later.

1) Immediate mitigations

  • Restrict network exposure of the Airflow REST API to trusted management networks, VPN, or an authenticated API gateway; do not expose /assets/events or the API broadly to the internet.
  • Audit and minimize asset-read permissions. Because the flaw requires only asset-read access, reducing the number of roles granted that permission shrinks the population able to abuse the gap.
  • In segmented deployments, review whether per-Dag isolation is the intended tenancy boundary; temporarily avoid placing multiple tenants on a single Airflow instance if the metadata leak is unacceptable until patched.
  • Increase monitoring on the /assets/events endpoint per the detection guidance above, focusing on low-privilege users paginating through large result sets.

2) Patch / upgrade steps

  • Upgrade to apache-airflow 3.3.2 or later as directed by the NVD description.
  • Verify the deployed version after upgrade and confirm the /assets/events listing and its count query are scoped to the caller's authorized Dags.
  • Where an upgrade cannot be performed immediately, track the upstream project for a security advisory, commit, or backport; none was available at the time of writing (patch confidence 0/4).

3) Long-term hardening

  • Enforce least privilege on all read roles, and review asset-read grants as part of routine access recertification.
  • Add regression testing and code review gates for per-object and per-Dag authorization on list and count queries, treating count/metadata responses as subject to the same authorization as row data.
  • Centralize centralized API logging with per-user attribution so enumeration patterns are visible and alertable.
  • Maintain an inventory of multi-tenant Airflow deployments and prioritize them for upgrade windows and monitoring coverage.

References

Threat actor campaigns / exploit-in-the-wild: none identified. CVE-2026-75158 is not listed in CISA KEV, and no public proof-of-concept, Nuclei template, or exploit code was observed in the tracked sources. EPSS has not yet scored this CVE by FIRST.org.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-75158/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.