{"id":"CVE-2026-111395","kind":"vulnerability","aliases":["CVE-2026-111395"],"related":[],"title":"Apache Airflow: Dag run conf can crash scheduler or triggerer","description":"Apache Airflow did not reject reserved serialization keys inside a Dag run's `conf`. A user allowed to trigger a Dag that uses a deadline alert with an asynchronous callback could pass a `conf` that, once the deadline was missed, either crashed the scheduler repeatedly or was rebuilt into objects inside the Triggerer. Users are advised to upgrade to apache-airflow 3.4.0 or later.","summary":"Apache Airflow did not reject reserved serialization keys in a Dag run's conf. A user who can trigger a Dag with a deadline alert using an asynchronous callback can make the scheduler crash repeatedly or have objects rebuilt inside the Triggerer once the deadline is missed.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"apache-airflow","fixed":[],"affected":"","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["apache-airflow","python","runtime","scheduler","triggerer"],"not_affected_if":["no-deadline-alerts-async-callbacks","only-trusted-dag-triggerers"],"how_to_check":"- Check the installed version with `airflow version` or `pip show apache-airflow`; versions before `3.4.0` are affected.\n- Look for Dags that define a deadline alert with an asynchronous callback.\n- Review which users can trigger Dags and pass a `conf`.","fix":"- `apache-airflow` `3.4.0` or later","status":"open","published_at":"2026-11-09T10:17:02+00:00","first_seen_at":"2026-11-09T10:25:47+00:00","triaged_at":"2026-11-09T10:26:58+00:00","updated_at":"2026-11-09T10:26:58+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-11-09T10:26:58Z","model":"claude-haiku-5-5","output":{"fix":"- `apache-airflow` `3.4.0` or later","reach":"network","title":"Apache Airflow: Dag run conf can crash scheduler or triggerer","impact":"medium","summary":"Apache Airflow did not reject reserved serialization keys in a Dag run's conf. A user who can trigger a Dag with a deadline alert using an asynchronous callback can make the scheduler crash repeatedly or have objects rebuilt inside the Triggerer once the deadline is missed.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["apache-airflow","scheduler","triggerer","python"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"Scheduler crashes repeatedly or Triggerer rebuilds attacker-chosen objects","analyst_note":"","how_to_check":"- Check the installed version with `airflow version` or `pip show apache-airflow`; versions before `3.4.0` are affected.\n- Look for Dags that define a deadline alert with an asynchronous callback.\n- Review which users can trigger Dags and pass a `conf`.","plain_action":"","product_name":"apache-airflow","needs_analyst":false,"not_affected_if":["no-deadline-alerts-async-callbacks","only-trusted-dag-triggerers"],"who_is_affected":"Teams running Apache Airflow 3.x where Dags use deadline alerts with asynchronous callbacks and where some users can trigger Dag runs with a custom conf. The exposure comes from the Dag run conf path into the scheduler and Triggerer, so installations without such Dags or without untrusted triggerers are less exposed. Teams that do not use deadline alerts with async callbacks can skip it, though upgrading remains the advised step.","user_interaction":"no","product_ecosystem":"pypi","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.001212,"input_tokens":4581,"output_tokens":1508,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-111395':13A,16A '-2026':12A,15A '3.4.0':136C 'advis':129C 'airflow':2A,19A,22B,28B,75C,135C 'alert':51B,99C 'allow':90C 'apach':1A,21B,27B,74C,134C 'apache':18A 'apache-airflow':17A,20B,133C 'asynchron':54B,102C 'callback':55B,103C 'conf':5A,40B,87C,107C 'could':104C 'crash':7A,60B,115C 'cve':11A,14A 'dag':3A,37B,47B,84C,94C 'deadlin':50B,71B,98C,111C 'either':114C 'insid':66B,82C,124C 'key':34B,81C 'later':138C 'make':57B 'miss':73B,113C 'object':64B,123C 'pass':105C 'python':23B 'rebuilt':65B,121C 'reject':31B,78C 'repeat':61B,118C 'reserv':32B,79C 'run':4A,38B,85C 'runtim':24B 'schedul':8A,25B,59B,117C 'serial':33B,80C 'trigger':10A,26B,45B,68B,92C,126C 'upgrad':131C 'use':52B,96C 'user':42B,89C,127C","nicknames":[],"mitigations":[],"who_affected":"Teams running Apache Airflow 3.x where Dags use deadline alerts with asynchronous callbacks and where some users can trigger Dag runs with a custom conf. The exposure comes from the Dag run conf path into the scheduler and Triggerer, so installations without such Dags or without untrusted triggerers are less exposed. Teams that do not use deadline alerts with async callbacks can skip it, though upgrading remains the advised step.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["apacheairflow"],"ptokens":["airflow","apache"],"labels":["apacheairflow","medium","pypi","python","runtime","scheduler","triggerer"],"campaign_type":null,"search_a":"'-111395':13A,16A '-2026':12A,15A 'airflow':2A,19A 'apach':1A 'apache':18A 'apache-airflow':17A 'conf':5A 'crash':7A 'cve':11A,14A 'dag':3A 'run':4A 'schedul':8A 'trigger':10A","search_b":"'airflow':22B,28B 'alert':51B 'apach':21B,27B 'apache-airflow':20B 'asynchron':54B 'callback':55B 'conf':40B 'crash':60B 'dag':37B,47B 'deadlin':50B,71B 'insid':66B 'key':34B 'make':57B 'miss':73B 'object':64B 'python':23B 'rebuilt':65B 'reject':31B 'repeat':61B 'reserv':32B 'run':38B 'runtim':24B 'schedul':25B,59B 'serial':33B 'trigger':26B,45B,68B 'use':52B 'user':42B","search_c":"'3.4.0':136C 'advis':129C 'airflow':75C,135C 'alert':99C 'allow':90C 'apach':74C,134C 'apache-airflow':133C 'asynchron':102C 'callback':103C 'conf':87C,107C 'could':104C 'crash':115C 'dag':84C,94C 'deadlin':98C,111C 'either':114C 'insid':82C,124C 'key':81C 'later':138C 'miss':113C 'object':123C 'pass':105C 'rebuilt':121C 'reject':78C 'repeat':118C 'reserv':79C 'run':85C 'schedul':117C 'serial':80C 'trigger':92C,126C 'upgrad':131C 'use':96C 'user':89C,127C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T10:17:02+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111395","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111395","severity":null,"published_at":"2026-11-09T10:17:02+00:00","modified_at":"2026-11-09T10:17:02+00:00","first_seen_at":"2026-11-09T10:25:47+00:00","fetched_at":"2026-11-09T10:25:47+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}