---
id: CVE-2026-68969
title: >-
  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`)
summary: >-
  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 rec…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-532
vendor: apache
product: airflow
affected:
  - airflow < 3.3.1
patched:
  - airflow 3.3.1
published: '2026-08-12'
updated: '2026-09-16'
sourceUpdated: '2026-09-16T15:17:42.090'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-68969'
references:
  - url: 'https://github.com/apache/airflow/pull/70890'
    label: security@apache.org
  - url: 'https://lists.apache.org/thread/p3jr90jgp2brto4vwcrx680f3x11y70c'
    label: security@apache.org
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-50204'
    label: security@apache.org
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-68969'
  - url: >-
      https://github.com/apache/airflow/commit/76a851b1c5ed27164176af15235fa14cf6afc6ed
  - url: >-
      https://github.com/apache/airflow/commit/fc8d6d8b6194674f4043fb4f632e7700876c0fd7
  - url: 'https://github.com/apache/airflow/releases/tag/3.3.1'
  - url: >-
      https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-3711.yaml
  - url: 'https://github.com/advisories/GHSA-cjv4-7hp2-2x9h'
  - url: 'https://github.com/apache/airflow'
tags:
  - nvd
  - cve.org
  - osv
  - pip
  - ghsa
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-08-13T12:11:21.550820Z'
epss: 0.00358
epssPercentile: 0.29371
aliases:
  - PYSEC-2026-3711
  - BIT-airflow-2026-68969
  - GHSA-cjv4-7hp2-2x9h
ecosystem: pip
ingestedAt: '2026-08-19T19:22:21.496Z'
---

## Overview

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.

## Affected

- `airflow < 3.3.1`

## Remediation

Upgrade past the affected range:

- `airflow 3.3.1`

## Package advisory (CVE-2026-68969)

Affected packages:

- `apache-airflow < 3.3.1`

Patched in:

- `apache-airflow 3.3.1`

Source: https://osv.dev/vulnerability/PYSEC-2026-3711
