CVE-2019-12398 XSS in Apache Airflow
A malicious admin can inject arbitrary JavaScript into the classic UI, potentially executing code or bypassing security controls.
- Exploited in the wild
- Not known
- Login needed
- An administrator
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2019-12398?
CVE-2019-12398 is a medium-severity cross-site scripting vulnerability in Apache Airflow, published on 14 Jan 2020. An attacker needs administrator access to exploit it, and only if a user opens a file or follows a link.
Official description
In Apache Airflow before 1.10.5 when running with the "classic" UI, a malicious admin user could edit the state of objects in the Airflow metadata database to execute arbitrary javascript on certain page views. The new "RBAC" UI is unaffected.
Weakness: CWE-79
Which versions are affected by CVE-2019-12398?
3 open source packages ship an affected version, including apache-airflow. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
apache-airflow PyPI | All versions | 1.10.5 |
apache-airflow PyPI | All versions | 1.10.5 |
apache-airflow PyPI | All versions | 1.10.5 |
Products include Apache Airflow.
How do I fix CVE-2019-12398?
Upgrade apache-airflow to 1.10.5 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2019-12398 being exploited?
There is no known exploitation of CVE-2019-12398 in the wild and no public exploit code.
Other vulnerabilities in Apache Airflow
- CVE-2020-13927 Apache Airflow's Experimental API Authentication Bypass
- CVE-2020-11978 Apache Airflow Command Injection
- CVE-2026-33264 Apache Airflow: DAG author RCE on webserver via unrestricted import_string() in BaseSerialization.deserialize()
- CVE-2023-25754 Apache Airflow: Privilege escalation using airflow logs
- CVE-2023-22884 Apache Airflow, Apache Airflow MySQL Provider: Arbitrary file read via MySQL provider in Apache Airflow
Sources
Also known as GHSA-rjvg-q57v-mjjc, PYSEC-2020-162.