{"id":"CVE-2026-86468","kind":"vulnerability","aliases":["CVE-2026-86468"],"related":[],"title":"Apache Airflow: CLI audit log leaks some secrets in cleartext","description":"Apache Airflow's CLI records its arguments in the audit log but masks secrets by argument position, so some supported command shapes leave secrets in cleartext, for example a trailing `--description` on Variable commands, `--conn-extra`, and the inline `--password` of `airflow keycloak-auth-manager` commands. A user who can read audit events but is denied Variable and Connection access can retrieve those values through the event-log API.\n\nUsers of apache-airflow are recommended to upgrade to 3.4.0 or later. Audit-log entries written before the upgrade keep the cleartext values: purge the affected entries and rotate the secrets they contain.","summary":"Some Airflow CLI command shapes, such as Variable commands with a trailing --description, --conn-extra, and the inline --password of keycloak-auth-manager commands, are logged without masking their secrets. A user who can read audit events but is denied Variable and Connection access can read those values through the event-log API.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache-airflow","package","python","self-hosted"],"not_affected_if":["audit-events-restricted","no-cli-secret-args"],"how_to_check":"- Check the installed version with `airflow version` and compare it with the fixed version below.\n- Search audit-log entries for CLI commands containing `--description`, `--conn-extra` or `--password` to see whether cleartext secrets were recorded.\n- Review which roles can read audit events through the event-log API.","fix":"- apache-airflow: upgrade to `3.4.0` or later.\n- Audit-log entries written before the upgrade keep cleartext values: purge the affected entries and rotate the secrets they contain.","status":"open","published_at":"2026-11-09T10:17:11+00:00","first_seen_at":"2026-11-09T10:25:50+00:00","triaged_at":"2026-11-09T10:26:33+00:00","updated_at":"2026-11-09T10:26:33+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-09T10:26:33Z","model":"claude-haiku-5-5","output":{"fix":"- apache-airflow: upgrade to `3.4.0` or later.\n- Audit-log entries written before the upgrade keep cleartext values: purge the affected entries and rotate the secrets they contain.","reach":"network","title":"Apache Airflow: CLI audit log leaks some secrets in cleartext","impact":"medium","summary":"Some Airflow CLI command shapes, such as Variable commands with a trailing --description, --conn-extra, and the inline --password of keycloak-auth-manager commands, are logged without masking their secrets. A user who can read audit events but is denied Variable and Connection access can read those values through the event-log API.","audience":"businesses","category":"package","nicknames":[],"who_cares":["apache-airflow","self-hosted","python"],"confidence":0.6,"fix_status":"available","needs_auth":"yes","worst_case":"Secrets from Variables and Connections readable by low-privilege audit readers","analyst_note":"Confirm the affected version range from the NVD entry or Apache advisory; sources gave no severity or ranges beyond the 3.4.0 upgrade advice.","how_to_check":"- Check the installed version with `airflow version` and compare it with the fixed version below.\n- Search audit-log entries for CLI commands containing `--description`, `--conn-extra` or `--password` to see whether cleartext secrets were recorded.\n- Review which roles can read audit events through the event-log API.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["audit-events-restricted","no-cli-secret-args"],"who_is_affected":"Teams running Apache Airflow 3.x with CLI audit logging where users can read audit events. Exposure needs a user who can read audit events but lacks Variable and Connection access, and a command shape that the masking misses. Deployments that do not expose audit events to such users are lower risk.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000801,"input_tokens":4653,"output_tokens":671,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-86468':13A,16A '3.4.0':163C 'access':70B,142C 'affect':180C 'airflow':2A,19B,26B,82C,123C,157C 'apach':1A,18B,81C,156C 'apache-airflow':17B,155C 'api':80B,152C 'argument':87C,96C 'audit':4A,62B,90C,134C,167C 'audit-log':166C 'auth':48B,126C 'cleartext':10A,106C,176C 'cli':3A,27B,84C 'command':28B,33B,50B,101C,114C,128C 'conn':39B,116C 'conn-extra':38B,115C 'connect':69B,141C 'contain':187C 'cve':11A,14A 'deni':66B,138C 'descript':37B,111C 'entri':169C,181C 'event':63B,78B,135C,150C 'event-log':77B,149C 'exampl':108C 'extra':40B,117C 'host':24B 'inlin':43B,120C 'keep':174C 'keycloak':47B,125C 'keycloak-auth-manag':46B,124C 'later':165C 'leak':6A 'leav':103C 'log':5A,52B,79B,91C,151C,168C 'manag':49B,127C 'mask':54B,93C 'packag':20B 'password':44B,121C 'posit':97C 'purg':178C 'python':21B 'read':61B,72B,133C 'recommend':159C 'record':85C 'retriev':144C 'rotat':183C 'secret':8A,56B,94C,104C,185C 'self':23B 'self-host':22B 'shape':29B,102C 'support':100C 'trail':36B,110C 'upgrad':161C,173C 'user':58B,130C,153C 'valu':74B,146C,177C 'variabl':32B,67B,113C,139C 'without':53B 'written':170C","nicknames":[],"mitigations":[],"who_affected":"Teams running Apache Airflow 3.x with CLI audit logging where users can read audit events. Exposure needs a user who can read audit events but lacks Variable and Connection access, and a command shape that the masking misses. Deployments that do not expose audit events to such users are lower risk.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["apacheairflow","medium","package","python","selfhosted"],"campaign_type":null,"search_a":"'-2026':12A,15A '-86468':13A,16A 'airflow':2A 'apach':1A 'audit':4A 'cleartext':10A 'cli':3A 'cve':11A,14A 'leak':6A 'log':5A 'secret':8A","search_b":"'access':70B 'airflow':19B,26B 'apach':18B 'apache-airflow':17B 'api':80B 'audit':62B 'auth':48B 'cli':27B 'command':28B,33B,50B 'conn':39B 'conn-extra':38B 'connect':69B 'deni':66B 'descript':37B 'event':63B,78B 'event-log':77B 'extra':40B 'host':24B 'inlin':43B 'keycloak':47B 'keycloak-auth-manag':46B 'log':52B,79B 'manag':49B 'mask':54B 'packag':20B 'password':44B 'python':21B 'read':61B,72B 'secret':56B 'self':23B 'self-host':22B 'shape':29B 'trail':36B 'user':58B 'valu':74B 'variabl':32B,67B 'without':53B","search_c":"'3.4.0':163C 'access':142C 'affect':180C 'airflow':82C,123C,157C 'apach':81C,156C 'apache-airflow':155C 'api':152C 'argument':87C,96C 'audit':90C,134C,167C 'audit-log':166C 'auth':126C 'cleartext':106C,176C 'cli':84C 'command':101C,114C,128C 'conn':116C 'conn-extra':115C 'connect':141C 'contain':187C 'deni':138C 'descript':111C 'entri':169C,181C 'event':135C,150C 'event-log':149C 'exampl':108C 'extra':117C 'inlin':120C 'keep':174C 'keycloak':125C 'keycloak-auth-manag':124C 'later':165C 'leav':103C 'log':91C,151C,168C 'manag':127C 'mask':93C 'password':121C 'posit':97C 'purg':178C 'read':133C 'recommend':159C 'record':85C 'retriev':144C 'rotat':183C 'secret':94C,104C,185C 'shape':102C 'support':100C 'trail':110C 'upgrad':161C,173C 'user':130C,153C 'valu':146C,177C 'variabl':113C,139C 'written':170C","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-86468","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-86468","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:50+00:00","fetched_at":"2026-11-09T10:25:50+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"}