CVE-2026-49298 json
Apache Airflow: JWT Token Exposure in KubernetesExecutor Command-Line Arguments
published 2026-06-01 5 mo ago modified 2026-11-03 6 d ago also BIT-airflow-2026-49298 , EUVD-2026-33580 , GHSA-5j6p-jrrm-6x94 , PYSEC-2026-2358
- cvss
- 8.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 42%
- public exploits
- 0
- none known
Summary
A bug in Apache Airflow's KubernetesExecutor caused JWT tokens used by worker pods to authenticate against the Execution API to be passed to the worker container as command-line arguments visible in the pod spec. An authenticated UI/API user with Kubernetes read-only access to the cluster (e.g. `pods/get` in the Airflow namespace) could harvest the JWT from `kubectl describe pod` output and then call state-mutating Execution API endpoints — triggering Dag runs, clearing runs, reading or writing Variables / Connections / XComs — as if they were a running task. Affects deployments using the `KubernetesExecutor`. Users are advised to upgrade to `apache-airflow` 3.2.2 or later. This is the airflow-core half of the same vulnerability addressed by [CVE-2026-27173](https://www.cve.org/CVERecord?id=CVE-2026-27173), which shipped the apache-airflow-providers-cncf-kubernetes side of the fix. Deployments that already upgraded `apache-airflow-providers-cncf-kubernetes` to 10.17.0 or later per the CVE-2026-27173 advisory should additionally upgrade `apache-airflow` to 3.2.2 or later to close the core-side surface — the two fixes are complementary, not duplicates.
Patch / fix
- pypi apache-airflow-core 3.2.2
- bitnami airflow 3.2.2
- Apache Software Foundation Apache Airflow 3.0.0, 3.2.2
- github.com/apache/airflow#60108 pull request
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 5 mo ago
Exploit prediction
0.49% chance of exploitation in the next 30 days, higher than 42% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CNA | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| OSV | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | apache-airflow-core | <3.2.2 |
3.2.2 |
| bitnami | airflow | <3.2.2 |
3.2.2 |
Affected products
- Apache Software Foundation Apache Airflow
Classification
- Weakness
-
- CWE-538 Insertion of Sensitive Information into Externally-Accessible File or Directory
References
-
github.com
/apache/airflow/pull/60108
patch, web, issue-tracking
-
lists.apache.org
/thread/wo09vrks8189dzsot39rvrx3vnx102tt
vendor-advisory, web, mailing-list, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-49298
advisory, web
-
github.com
/apache/airflow/pull
web
-
pypi.org
/project/apache-airflow-core
package
-
github.com
/advisories/GHSA-5j6p-jrrm-6x94
advisory
Sources
- CVE List CVE-2026-49298
- GitHub Advisory GHSA-5j6p-jrrm-6x94
- NVD CVE-2026-49298
- OSV BIT-airflow-2026-49298
- OSV PYSEC-2026-2358
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.