{"id":"CVE-2026-68969","aliases":["BIT-airflow-2026-68969","GHSA-cjv4-7hp2-2x9h","PYSEC-2026-3711"],"url":"https://o3.security/vulnerability/CVE-2026-68969","summary":"Apache Airflow: Bulk Variable and Connection endpoints record secret values in the audit log in cleartext","details":"Apache Airflow wrote Variable values and Connection `extra` contents to the audit log in cleartext when they were submitted through the bulk endpoints (`PATCH /api/v2/variables` and `PATCH /api/v2/connections`). The audit-log masking recognised only top-level request fields, and a bulk request nests its entities two levels below, so no masking was applied to them. Any authenticated user with audit-log read access -- who need not hold Variables or Connections read at all -- could recover those secrets verbatim, and the Connection `extra` copy is stored unencrypted in the log while the connection table encrypts it. The Airflow UI's *Import Variables* action posts to this endpoint, so an ordinary operator import wrote every secret in the file to the log. This is a different code path from CVE-2026-50204: that fix shipped in 3.3.0 and covers the single-entity endpoints only, so deployments that upgraded in response to that advisory remain affected and must upgrade again. Users are advised to upgrade to apache-airflow 3.3.1 or later.","published":"2026-08-12T15:26:40.095Z","modified":"2026-10-21T02:59:05.096675369Z","cvss":{"score":6.5,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"PyPI","name":"apache-airflow","fixedVersion":"3.3.1"}],"fix":{"url":"https://github.com/apache/airflow/pull/70890","label":"apache/airflow#70890"},"references":[{"type":"WEB","url":"https://pypi.python.org"},{"type":"WEB","url":"https://www.cve.org/CVERecord?id=CVE-2026-50204"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68969.json"},{"type":"ADVISORY","url":"https://lists.apache.org/thread/p3jr90jgp2brto4vwcrx680f3x11y70c"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68969"},{"type":"FIX","url":"https://github.com/apache/airflow/pull/70890"},{"type":"WEB","url":"https://github.com/apache/airflow/commit/76a851b1c5ed27164176af15235fa14cf6afc6ed"},{"type":"WEB","url":"https://github.com/apache/airflow/commit/fc8d6d8b6194674f4043fb4f632e7700876c0fd7"},{"type":"PACKAGE","url":"https://github.com/apache/airflow"},{"type":"WEB","url":"https://github.com/apache/airflow/releases/tag/3.3.1"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-3711.yaml"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-21T02:59:05.096675369Z"}}