CVE-2026-42360
Full vulnerability record from the local CVENow database.
Description
A bug in Apache Airflow's rendered-template field handling caused nested sensitive-key masking (e.g. nested `password` / `token` / `secret` / `api_key` keys inside a JSON template structure) to be bypassed when the rendered field exceeded `[core] max_templated_field_length`: Airflow stringified the structure before redaction, losing the nested key context, and persisted the plaintext value into `rendered_fields`. An authenticated UI/API user with permission to read rendered template fields could harvest secret values intended to be masked. Affects deployments where Dag authors pass structured JSON to operators with nested sensitive keys. This is a variant of `CWE-200` previously addressed for the user-registered `mask_secret()` patterns in CVE-2025-68438; that fix did not cover the nested sensitive-keyword allowlist. Users who already upgraded for CVE-2025-68438 should additionally upgrade to `apache-airflow` 3.2.2 or later to cover the nested-key path.
View original CVE JSON
{
"id": "CVE-2026-42360",
"sourceIdentifier": "[email protected]",
"published": "2026-06-01T09:16:19.033",
"lastModified": "2026-11-03T07:20:21.050",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "A bug in Apache Airflow's rendered-template field handling caused nested sensitive-key masking (e.g. nested `password` / `token` / `secret` / `api_key` keys inside a JSON template structure) to be bypassed when the rendered field exceeded `[core] max_templated_field_length`: Airflow stringified the structure before redaction, losing the nested key context, and persisted the plaintext value into `rendered_fields`. An authenticated UI/API user with permission to read rendered template fields could harvest secret values intended to be masked. Affects deployments where Dag authors pass structured JSON to operators with nested sensitive keys. This is a variant of `CWE-200` previously addressed for the user-registered `mask_secret()` patterns in CVE-2025-68438; that fix did not cover the nested sensitive-keyword allowlist. Users who already upgraded for CVE-2025-68438 should additionally upgrade to `apache-airflow` 3.2.2 or later to cover the nested-key path."
},
{
"lang": "es",
"value": "Un error en el manejo de campos de plantilla renderizados de Apache Airflow causó que el enmascaramiento anidado de claves sensibles (por ejemplo, claves anidadas 'password' / 'token' / 'secret' / 'api_key' dentro de una estructura de plantilla JSON) fuera eludido cuando el campo renderizado excedía '[core] max_templated_field_length': Airflow convirtió la estructura a cadena antes de la redacción, perdiendo el contexto de la clave anidada, y persistió el valor en texto plano en 'rendered_fields'. Un usuario autenticado de UI/API con permiso para leer campos de plantilla renderizados podría recolectar valores secretos destinados a ser enmascarados. Afecta a implementaciones donde los autores de Dag pasan JSON estructurado a operadores con claves sensibles anidadas. Esta es una variante de 'CWE-200' previamente abordado para los patrones 'mask_secret()' registrados por el usuario en CVE-2025-68438; esa corrección no cubrió la lista de permitidos de palabras clave sensibles anidadas. Los usuarios que ya actualizaron para CVE-2025-68438 deberían actualizar adicionalmente a 'apache-airflow' 3.2.2 o posterior para cubrir la ruta de clave anidada."
}
],
"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.0.0",
"versionType": "semver",
"status": "affected"
}
]
},
{
"vendor": "Apache Software Foundation",
"product": "Apache Airflow",
"defaultStatus": "unaffected",
"collectionURL": "https://pypi.python.org",
"packageName": "apache-airflow-core",
"packageURL": "pkg:pypi/apache-airflow-core",
"versions": [
{
"version": "3.0.0",
"lessThan": "3.2.2",
"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-06-01T13:55:15.495937Z",
"id": "CVE-2026-42360",
"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-200"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
"versionEndExcluding": "3.2.2",
"matchCriteriaId": "0893C3AA-26A4-4682-A36C-05E719EB2943"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/apache/airflow/pull/65906",
"source": "[email protected]",
"tags": [
"Issue Tracking",
"Patch"
]
},
{
"url": "https://lists.apache.org/thread/obj79bpxnl7r5olz1gsn0g94y88glnl4",
"source": "[email protected]",
"tags": [
"Mailing List",
"Vendor Advisory"
]
}
]
}