FKIE_CVE-2026-42360
Vulnerability from fkie_nvd - Published: 2026-06-01 09:16 - Updated: 2026-07-21 19:10
Severity
Summary
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.
References
| URL | Tags | ||
|---|---|---|---|
| security@apache.org | https://github.com/apache/airflow/pull/65906 | Issue Tracking, Patch | |
| security@apache.org | https://lists.apache.org/thread/obj79bpxnl7r5olz1gsn0g94y88glnl4 | Mailing List, Vendor Advisory |
{
"affected": [
{
"affectedData": [
{
"collectionURL": "https://pypi.python.org",
"defaultStatus": "unaffected",
"packageName": "apache-airflow",
"product": "Apache Airflow",
"vendor": "Apache Software Foundation",
"versions": [
{
"lessThan": "3.2.2",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"source": "security@apache.org"
}
],
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
"matchCriteriaId": "0893C3AA-26A4-4682-A36C-05E719EB2943",
"versionEndExcluding": "3.2.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "A bug in Apache Airflow\u0027s 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\u00f3 que el enmascaramiento anidado de claves sensibles (por ejemplo, claves anidadas \u0027password\u0027 / \u0027token\u0027 / \u0027secret\u0027 / \u0027api_key\u0027 dentro de una estructura de plantilla JSON) fuera eludido cuando el campo renderizado exced\u00eda \u0027[core] max_templated_field_length\u0027: Airflow convirti\u00f3 la estructura a cadena antes de la redacci\u00f3n, perdiendo el contexto de la clave anidada, y persisti\u00f3 el valor en texto plano en \u0027rendered_fields\u0027. Un usuario autenticado de UI/API con permiso para leer campos de plantilla renderizados podr\u00eda 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 \u0027CWE-200\u0027 previamente abordado para los patrones \u0027mask_secret()\u0027 registrados por el usuario en CVE-2025-68438; esa correcci\u00f3n no cubri\u00f3 la lista de permitidos de palabras clave sensibles anidadas. Los usuarios que ya actualizaron para CVE-2025-68438 deber\u00edan actualizar adicionalmente a \u0027apache-airflow\u0027 3.2.2 o posterior para cubrir la ruta de clave anidada."
}
],
"id": "CVE-2026-42360",
"lastModified": "2026-07-21T19:10:00.107",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 6.5,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"exploitabilityScore": 2.8,
"impactScore": 3.6,
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-42360",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-01T13:55:15.495937Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-06-01T09:16:19.033",
"references": [
{
"source": "security@apache.org",
"tags": [
"Issue Tracking",
"Patch"
],
"url": "https://github.com/apache/airflow/pull/65906"
},
{
"source": "security@apache.org",
"tags": [
"Mailing List",
"Vendor Advisory"
],
"url": "https://lists.apache.org/thread/obj79bpxnl7r5olz1gsn0g94y88glnl4"
}
],
"sourceIdentifier": "security@apache.org",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-200"
}
],
"source": "security@apache.org",
"type": "Secondary"
}
]
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…