CVE-2026-68969
Full vulnerability record from the local CVENow database.
Description
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.
View original CVE JSON
{
"id": "CVE-2026-68969",
"sourceIdentifier": "[email protected]",
"published": "2026-08-12T16:17:19.730",
"lastModified": "2026-10-24T16:10:00.153",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
},
{
"lang": "es",
"value": "Apache Airflow escribió los valores de las Variables y el contenido ’extra’ de las Conexiones al registro de auditoría en texto claro cuyo se enviaron a través de los puntos finales masivos (’PATCH /api/v2/variables’ y ’PATCH /api/v2/connections’). El enmascaramiento del registro de auditoría solo reconocía los campos de solicitud de nivel superior, y una solicitud masiva anida sus entidades dos niveles por debajo, por lo que no se les aplicó ningún enmascaramiento. Cualquier usuario autenticado con acceso de lectura al registro de auditoría -- que no necesita tener acceso de lectura a Variables o Conexiones en absoluto -- podría recuperar esos secretos textualmente, y la copia ’extra’ de la Conexión se almacena sin cifrar en el registro mientras que la tabla de conexiones la cifra. La acción Importar Variables de la interfaz de usuario de Airflow publica en este punto final, por lo que una importación de operador ordinaria escribió cada secreto del archivo en el registro. Esta es una ruta de código diferente a la de CVE-2026-50204: esa corrección se envió en la versión 3.3.0 y cubre solo los puntos finales de entidad única, por lo que las implementaciones que se actualizaron en respuesta a ese aviso siguen afectadas y deben actualizarse de nuevo. Se aconseja a los usuarios que actualicen a apache-airflow 3.3.1 o posterior."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "Apache Software Foundation",
"product": "Apache Airflow",
"defaultStatus": "unaffected",
"collectionURL": "https://pypi.python.org",
"packageName": "apache-airflow",
"packageURL": "pkg:pypi/apache-airflow",
"versions": [
{
"version": "0",
"lessThan": "3.3.1",
"versionType": "semver",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"baseScore": 6.5,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.8,
"impactScore": 3.6
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-08-13T12:11:21.550820Z",
"id": "CVE-2026-68969",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-532"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.3.1",
"matchCriteriaId": "FDF5E090-3549-452E-BB3A-741DCE15078E"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/apache/airflow/pull/70890",
"source": "[email protected]",
"tags": [
"Issue Tracking",
"Patch"
]
},
{
"url": "https://lists.apache.org/thread/p3jr90jgp2brto4vwcrx680f3x11y70c",
"source": "[email protected]",
"tags": [
"Mailing List"
]
},
{
"url": "https://www.cve.org/CVERecord?id=CVE-2026-50204",
"source": "[email protected]",
"tags": [
"Not Applicable"
]
}
]
}