{"id":"CVE-2026-68982","kind":"vulnerability","aliases":["CVE-2026-68982"],"related":[],"title":"Apache Airflow: forged Celery callbacks let broker writers run code on workers","description":"Apache Airflow's CeleryExecutor ran callback workloads (`ExecuteCallback`, used for deadline-alert callbacks) without validating the workload's authentication token. Anyone able to write to the Celery broker could enqueue a forged callback and execute arbitrary code on every CeleryExecutor worker, without Airflow credentials. Deployments using the CeleryExecutor are affected.\n\nUsers are advised to upgrade to apache-airflow 3.4.0 or later, in which the worker claims the callback through the Execution API, validating the token, before running it.","summary":"Apache Airflow's CeleryExecutor runs callback workloads without checking their authentication token. Anyone who can write to the Celery broker can enqueue a forged callback and execute arbitrary code on every CeleryExecutor worker, without Airflow credentials.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache-airflow","celery","python","runtime","self-hosted"],"not_affected_if":["non-celery-executor"],"how_to_check":"- Check whether the deployment uses the CeleryExecutor by reviewing the `executor` setting in `airflow.cfg` or the `AIRFLOW__CORE__EXECUTOR` environment variable.\n- Check the installed Airflow version with `airflow version`; versions before `3.4.0` are affected.\n- Check who can write to the Celery broker (for example Redis or RabbitMQ) and whether that access is restricted.","fix":"- apache-airflow: upgrade to `3.4.0` or later, in which the worker validates the token before running a callback.","status":"open","published_at":"2026-11-09T10:17:11+00:00","first_seen_at":"2026-11-09T10:25:49+00:00","triaged_at":"2026-11-09T10:26:40+00:00","updated_at":"2026-11-09T10:26:40+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-09T10:26:40Z","model":"claude-haiku-5-5","output":{"fix":"- apache-airflow: upgrade to `3.4.0` or later, in which the worker validates the token before running a callback.","reach":"network","title":"Apache Airflow: forged Celery callbacks let broker writers run code on workers","impact":"high","summary":"Apache Airflow's CeleryExecutor runs callback workloads without checking their authentication token. Anyone who can write to the Celery broker can enqueue a forged callback and execute arbitrary code on every CeleryExecutor worker, without Airflow credentials.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["apache-airflow","celery","python","self-hosted"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Code runs on every CeleryExecutor worker without Airflow credentials","analyst_note":"Confirm the affected version range and whether the fix is only in 3.4.0 from the NVD or Apache advisory.","how_to_check":"- Check whether the deployment uses the CeleryExecutor by reviewing the `executor` setting in `airflow.cfg` or the `AIRFLOW__CORE__EXECUTOR` environment variable.\n- Check the installed Airflow version with `airflow version`; versions before `3.4.0` are affected.\n- Check who can write to the Celery broker (for example Redis or RabbitMQ) and whether that access is restricted.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["non-celery-executor"],"who_is_affected":"Deployments that run Apache Airflow with the CeleryExecutor are exposed, since every Celery worker runs the forged callback. Exposure depends on who can write to the Celery broker; anyone who can only reach the Airflow web interface without broker access is not described as affected by the sources. Deployments using other executors are not affected according to the sources.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.00081,"input_tokens":4644,"output_tokens":691,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-68982':15A,18A '3.4.0':124C 'abl':86C 'advis':117C 'affect':114C 'airflow':2A,21B,29B,62B,65C,107C,123C 'alert':76C 'anyon':40B,85C 'apach':1A,20B,28B,64C,122C 'apache-airflow':19B,121C 'api':137C 'arbitrari':55B,100C 'authent':38B,83C 'broker':7A,47B,92C 'callback':5A,33B,52B,69C,77C,97C,133C 'celeri':4A,22B,46B,91C 'celeryexecutor':31B,59B,67C,104C,112C 'check':36B 'claim':131C 'code':10A,56B,101C 'could':93C 'credenti':63B,108C 'cve':13A,16A 'deadlin':75C 'deadline-alert':74C 'deploy':109C 'enqueu':49B,94C 'everi':58B,103C 'execut':54B,99C,136C 'executecallback':71C 'forg':3A,51B,96C 'host':27B 'later':126C 'let':6A 'python':23B 'ran':68C 'run':9A,32B,142C 'runtim':24B 'self':26B 'self-host':25B 'token':39B,84C,140C 'upgrad':119C 'use':72C,110C 'user':115C 'valid':79C,138C 'without':35B,61B,78C,106C 'worker':12A,60B,105C,130C 'workload':34B,70C,81C 'write':43B,88C 'writer':8A","nicknames":[],"mitigations":[],"who_affected":"Deployments that run Apache Airflow with the CeleryExecutor are exposed, since every Celery worker runs the forged callback. Exposure depends on who can write to the Celery broker; anyone who can only reach the Airflow web interface without broker access is not described as affected by the sources. Deployments using other executors are not affected according to the sources.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["apacheairflow","celery","high","python","runtime","selfhosted"],"campaign_type":null,"search_a":"'-2026':14A,17A '-68982':15A,18A 'airflow':2A 'apach':1A 'broker':7A 'callback':5A 'celeri':4A 'code':10A 'cve':13A,16A 'forg':3A 'let':6A 'run':9A 'worker':12A 'writer':8A","search_b":"'airflow':21B,29B,62B 'anyon':40B 'apach':20B,28B 'apache-airflow':19B 'arbitrari':55B 'authent':38B 'broker':47B 'callback':33B,52B 'celeri':22B,46B 'celeryexecutor':31B,59B 'check':36B 'code':56B 'credenti':63B 'enqueu':49B 'everi':58B 'execut':54B 'forg':51B 'host':27B 'python':23B 'run':32B 'runtim':24B 'self':26B 'self-host':25B 'token':39B 'without':35B,61B 'worker':60B 'workload':34B 'write':43B","search_c":"'3.4.0':124C 'abl':86C 'advis':117C 'affect':114C 'airflow':65C,107C,123C 'alert':76C 'anyon':85C 'apach':64C,122C 'apache-airflow':121C 'api':137C 'arbitrari':100C 'authent':83C 'broker':92C 'callback':69C,77C,97C,133C 'celeri':91C 'celeryexecutor':67C,104C,112C 'claim':131C 'code':101C 'could':93C 'credenti':108C 'deadlin':75C 'deadline-alert':74C 'deploy':109C 'enqueu':94C 'everi':103C 'execut':99C,136C 'executecallback':71C 'forg':96C 'later':126C 'ran':68C 'run':142C 'token':84C,140C 'upgrad':119C 'use':72C,110C 'user':115C 'valid':79C,138C 'without':78C,106C 'worker':105C,130C 'workload':70C,81C 'write':88C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T10:17:11+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-68982","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68982","severity":null,"published_at":"2026-11-09T10:17:11+00:00","modified_at":"2026-11-09T10:17:11+00:00","first_seen_at":"2026-11-09T10:25:49+00:00","fetched_at":"2026-11-09T10:25:49+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"}