{"id":"CVE-2020-13927","aliases":["BIT-airflow-2020-13927","EUVD-2020-0037","GHSA-hhx9-p69v-cx2j","PYSEC-2020-18"],"status":"published","title":"Authentication bypass in Apache Airflow","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-12","score":0.99778,"percentile":0.99955,"model":"v2026.06.15"},"facts":{"in_kev":true,"known_exploited":true,"public_exploit":true,"fix_available":true},"cwes":["CWE-1056","CWE-1188","CWE-287","CWE-306"],"published":"2020-11-10T00:00:00Z","modified":"2026-10-24T10:30:43Z","kev":{"date_added":"2022-01-18","due_date":"2022-07-18","required_action":"Apply updates per vendor instructions.","known_ransomware_use":"Unknown"},"exploitation":[{"source":"euvd","since":"2022-01-18"},{"source":"kev","since":"2022-01-18"}],"exploits":[{"source":"metasploit","id":"exploit/linux/http/apache_airflow_dag_rce","title":"Apache Airflow 1.10.10 - Example DAG Remote Code Execution","type":"exploit","platform":"Linux,Unix","date":"2020-07-14","verified":true,"url":"https://www.rapid7.com/db/modules/exploit/linux/http/apache_airflow_dag_rce"},{"source":"exploitdb","id":"EDB-49927","title":"Apache Airflow 1.10.10 - 'Example Dag' Remote Code Execution","type":"webapps","platform":"multiple","date":"2021-06-02","url":"https://www.exploit-db.com/exploits/49927"},{"source":"pocgithub","id":"ferralon-demo/airflow-experimental-api-rce","title":"ferralon-demo/airflow-experimental-api-rce","date":"2026-07-07","url":"https://github.com/ferralon-demo/airflow-experimental-api-rce"},{"source":"nuclei","id":"CVE-2020-13927","title":"Airflow Experimental \u003c1.10.11 - REST API Auth Bypass","type":"detection template","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2020/CVE-2020-13927.yaml"}],"fixes":[{"ecosystem":"PyPI","package":"apache-airflow","fixed_in":["1.10.11"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"airflow","fixed_in":["1.10.11"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"apache-airflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.10.11"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"airflow","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.10.11"}]}]},{"source":"osv","ecosystem":"PyPI","package":"apache-airflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.10.11"}]}],"versions":["1.10.0","1.10.1","1.10.10","1.10.10rc1","1.10.10rc2","1.10.10rc3","1.10.10rc4","1.10.10rc5","1.10.11rc1","1.10.11rc2","1.10.1b1","1.10.1rc2","1.10.2","1.10.2b2","1.10.2rc1","1.10.2rc2","1.10.2rc3","1.10.3","1.10.3b1","1.10.3b2","1.10.3rc1","1.10.3rc2","1.10.4","1.10.4b2","1.10.4rc1","1.10.4rc2","1.10.4rc3","1.10.4rc4","1.10.4rc5","1.10.5","1.10.5rc1","1.10.6","1.10.6rc1","1.10.6rc2","1.10.7","1.10.7rc1","1.10.7rc2","1.10.7rc3","1.10.8","1.10.8rc1","1.10.9","1.10.9rc1","1.8.1","1.8.2","1.8.2rc1","1.9.0"]},{"source":"osv","ecosystem":"PyPI","package":"apache-airflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.10.11"}]}],"versions":["1.8.1","1.8.2rc1","1.8.2","1.9.0","1.10.0","1.10.1b1","1.10.1rc2","1.10.1","1.10.2b2","1.10.2rc1","1.10.2rc2","1.10.2rc3","1.10.2","1.10.3b1","1.10.3b2","1.10.3rc1","1.10.3rc2","1.10.3","1.10.4b2","1.10.4rc1","1.10.4rc2","1.10.4rc3","1.10.4rc4","1.10.4rc5","1.10.4","1.10.5rc1","1.10.5","1.10.6rc1","1.10.6rc2","1.10.6","1.10.7rc1","1.10.7rc2","1.10.7rc3","1.10.7","1.10.8rc1","1.10.8","1.10.9rc1","1.10.9","1.10.10rc1","1.10.10rc2","1.10.10rc3","1.10.10rc4","1.10.10rc5","1.10.10","1.10.11rc1","1.10.11rc2"]}],"products":[{"vendor":"apache","product":"airflow"},{"vendor":"apache","product":"airflow's experimental api"},{"vendor":"apache software foundation","product":"apache airflow"}],"references":[{"url":"https://lists.apache.org/thread.html/r23a81b247aa346ff193670be565b2b8ea4b17ddbc7a35fc099c1aadd%40%3Cdev.airflow.apache.org%3E","tags":["x_transferred","Mailing List","Vendor Advisory","advisory","web"]},{"url":"http://packetstormsecurity.com/files/162908/Apache-Airflow-1.10.10-Remote-Code-Execution.html","tags":["x_transferred","Exploit","Third Party Advisory","VDB Entry","advisory","evidence","web"]},{"url":"http://packetstormsecurity.com/files/174764/Apache-Airflow-1.10.10-Remote-Code-Execution.html","tags":["x_transferred","Exploit","Third Party Advisory","VDB Entry","advisory","evidence","web"]},{"url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2020-13927","tags":["government-resource","Third Party Advisory","US Government Resource","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-13927","tags":["web","advisory"]},{"url":"https://airflow.apache.org/docs/apache-airflow/1.10.11/security.html#api-authentication","tags":["web"]},{"url":"https://github.com/apache/airflow/releases/tag/1.10.11","tags":["web"]},{"url":"https://github.com/apache/airflow/commit/180bca4f993b7b778a8d2c65d3d357652218922b","tags":["web"]},{"url":"https://github.com/apache/airflow/commit/9e305d6b810a2a21e2591a80a80ec41acb3afed0","tags":["web"]},{"url":"https://github.com/apache/airflow/pull/9611","tags":["web"]},{"url":"https://github.com/advisories/GHSA-hhx9-p69v-cx2j","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2020-18.yaml","tags":["web"]},{"url":"https://github.com/apache/airflow","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-13927","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2020-11-10T00:00:00Z","modified":"2025-10-21T23:35:32.975Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"adp"}],"cwes":["CWE-306","CWE-1188","CWE-1056"],"updated_at":"2026-11-02T14:35:53.868619Z"}],"euvd":[{"id":"EUVD-2020-0037","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2020-11-10T00:00:00Z","modified":"2025-10-21T23:35:32Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"exploited_since":"2022-01-18","updated_at":"2026-11-02T20:31:25.308373Z"}],"ghsa":[{"id":"GHSA-hhx9-p69v-cx2j","title":"Authentication bypass in Apache Airflow","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2021-04-30T17:34:13Z","modified":"2025-10-22T17:56:16Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A","level":"critical"}],"cwes":["CWE-287","CWE-306","CWE-1056","CWE-1188"],"updated_at":"2026-11-02T14:39:02.474737Z"}],"kev":[{"id":"CVE-2020-13927","title":"Apache Airflow's Experimental API Authentication Bypass","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication.","cwes":["CWE-1188","CWE-306"],"kev":{"date_added":"2022-01-18","due_date":"2022-07-18","required_action":"Apply updates per vendor instructions.","known_ransomware_use":"Unknown"},"updated_at":"2026-11-02T17:00:16.541131Z"}],"nvd":[{"id":"CVE-2020-13927","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2020-11-10T16:15:11.807Z","modified":"2026-06-17T02:53:54.84Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"secondary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-306","CWE-1188","CWE-1056"],"updated_at":"2026-11-02T14:06:24.137599Z"}],"osv":[{"id":"CVE-2020-13927","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2020-11-10T16:15:11.807Z","modified":"2026-10-24T10:30:43.216007105Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:14.418339Z"},{"id":"GHSA-hhx9-p69v-cx2j","title":"Authentication bypass in Apache Airflow","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2021-04-30T17:34:13Z","modified":"2025-10-22T19:42:35.160234Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A","level":"critical"}],"cwes":["CWE-1056","CWE-1188","CWE-287","CWE-306"],"updated_at":"2026-11-02T15:46:49.28217Z"},{"id":"BIT-airflow-2020-13927","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2024-03-06T11:00:56.284Z","modified":"2026-09-08T08:45:08.596543186Z","updated_at":"2026-11-02T15:28:28.267217Z"},{"id":"PYSEC-2020-18","description":"The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but this poses security risks to users who miss this fact. From Airflow 1.10.11 the default has been changed to deny all requests by default and is documented at https://airflow.apache.org/docs/1.10.11/security.html#api-authentication. Note this change fixes it for new installs but existing users need to change their config to default `[api]auth_backend = airflow.api.auth.backend.deny_all` as mentioned in the Updating Guide: https://github.com/apache/airflow/blob/1.10.11/UPDATING.md#experimental-api-will-deny-all-request-by-default","status":"published","published":"2020-11-10T16:15:00Z","modified":"2023-12-06T01:00:12.608061Z","updated_at":"2026-11-02T15:52:52.192131Z"}]}}
