Headline
CVE-2023-46288: fix(api_connexion): handle the cases that webserver.expose_config is set to "non-sensitive-only" instead of boolean value by Lee-W · Pull Request #32261 · apache/airflow
Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Apache Airflow.This issue affects Apache Airflow from 2.4.0 to 2.7.0.
Sensitive configuration information has been exposed to authenticated users with the ability to read configuration via Airflow REST API for configuration even when the expose_config option is set to non-sensitive-only. The expose_config option is False by default. It is recommended to upgrade to a version that is not affected if you set expose_config to non-sensitive-only configuration. This is a different error than CVE-2023-45348 which allows authenticated user to retrieve individual configuration values in 2.7.* by specially crafting their request (solved in 2.7.2).
Users are recommended to upgrade to version 2.7.2, which fixes the issue and additionally fixes CVE-2023-45348.
What’s the issue
In airflow/airflow/api_connexion/endpoints/config_endpoint.py, conf.getboolean("webserver", “expose_config”) only handle the boolean cases without handling “non-sensitive-only” which is a valid value according to doc
elif conf.getboolean("webserver", “expose_config”):
,
elif conf.getboolean("webserver", “expose_config”):
How to reproduce
add the following value to files/airflow-breeze-config/variables.env
AIRFLOW__WEBSERVER__EXPOSE_CONFIG=NON-SENSITIVE-ONLY AIRFLOW__API__AUTH_BACKENDS=airflow.api.auth.backend.default
- breeze --python 3.9 --backend sqlite start-airflow
- log in through Airflow UI
- Go to http://127.0.0.1:28080/api/v1/config and http://127.0.0.1:28080/api/v1/config/section/database/option/sql_alchemy_conn. both of them fail
What’s changed
“non-sensitive-only” is handled in the code section mentioned in ## What’s the issue. Sensitive data will be replace as < hidden > like how it’s implemented elsewhere
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named {pr_number}.significant.rst or {issue_number}.significant.rst, in newsfragments.
Related news
Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Apache Airflow. This issue affects Apache Airflow from 2.4.0 to 2.7.0. Sensitive configuration information has been exposed to authenticated users with the ability to read configuration via Airflow REST API for configuration even when the expose_config option is set to non-sensitive-only. The expose_config option is False by default. It is recommended to upgrade to a version that is not affected if you set expose_config to non-sensitive-only configuration. This is a different error than CVE-2023-45348 which allows authenticated user to retrieve individual configuration values in 2.7.* by specially crafting their request (solved in 2.7.2). Users are recommended to upgrade to version 2.7.2, which fixes the issue and additionally fixes CVE-2023-45348.