CVE-2026-67260
Full vulnerability record from the local CVENow database.
Description
Apache Airflow 3.3.0 moved human-in-the-loop tasks from the triggerer to a new `awaiting_input` task state swept by the scheduler. That sweep deserializes the task instance's `next_kwargs` without an allow-list, so a Dag author — who controls that value through the task execution API — can cause an arbitrary module import and object instantiation inside the scheduler process, or terminate the scheduler job. No non-default configuration is required: the sweep runs unconditionally every 15 seconds, and the default `allowed_deserialization_classes` setting does not cover this code path. Versions before 3.3.0 are not affected, because human-in-the-loop tasks deferred onto the triggerer instead. This is a different code path from CVE-2026-58076, which covers the same unguarded exception-node deserialization reached elsewhere — deployments that applied that fix must upgrade for this issue as well. Users are advised to upgrade to apache-airflow 3.3.1 or later.
View original CVE JSON
{
"id": "CVE-2026-67260",
"sourceIdentifier": "[email protected]",
"published": "2026-08-12T16:17:14.813",
"lastModified": "2026-10-24T16:10:00.153",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Apache Airflow 3.3.0 moved human-in-the-loop tasks from the triggerer to a new `awaiting_input` task state swept by the scheduler. That sweep deserializes the task instance's `next_kwargs` without an allow-list, so a Dag author — who controls that value through the task execution API — can cause an arbitrary module import and object instantiation inside the scheduler process, or terminate the scheduler job. No non-default configuration is required: the sweep runs unconditionally every 15 seconds, and the default `allowed_deserialization_classes` setting does not cover this code path. Versions before 3.3.0 are not affected, because human-in-the-loop tasks deferred onto the triggerer instead. This is a different code path from CVE-2026-58076, which covers the same unguarded exception-node deserialization reached elsewhere — deployments that applied that fix must upgrade for this issue as well. Users are advised to upgrade to apache-airflow 3.3.1 or later."
},
{
"lang": "es",
"value": "Apache Airflow 3.3.0 movió las tareas con intervención humana del disparador a un nuevo estado de tarea “awaiting_input” barrido por el planificador. Ese barrido deserializa los “next_kwargs” de la instancia de tarea sin una lista de permitidos, por lo que un autor de Dag - quien controla ese valor a través de la API de ejecución de tareas - puede causar una importación de módulo arbitraria y una instanciación de objeto dentro del proceso del planificador, o terminar el trabajo del planificador. No se requiere ninguna configuración no predeterminada: el barrido se ejecuta incondicionalmente cada 15 segundos, y la configuración predeterminada de “allowed_deserialization_classes” no cubre esta ruta de código. Las versiones anteriores a la 3.3.0 no están afectadas, porque las tareas con intervención humana se aplazaban al disparador en su lugar. Esta es una ruta de código diferente de CVE-2026-58076, que cubre la misma deserialización de nodo de excepción sin protección alcanzada en otro lugar - las implementaciones que aplicaron esa corrección también deben actualizarse para este problema. Se aconseja a los usuarios actualizar 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": "3.3.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:N/UI:N/S:U/C:L/I:L/A:L",
"baseScore": 7.3,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"availabilityImpact": "LOW"
},
"exploitabilityScore": 3.9,
"impactScore": 3.4
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-08-12T16:00:14.166719Z",
"id": "CVE-2026-67260",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-502"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3.0",
"versionEndExcluding": "3.3.1",
"matchCriteriaId": "F6D5F0B2-15A2-4782-8CC5-769E57D5F2F6"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/apache/airflow/pull/70685",
"source": "[email protected]",
"tags": [
"Issue Tracking",
"Patch"
]
},
{
"url": "https://lists.apache.org/thread/vygr0fh82cjzjp5k4vtfmboxryvm3lyn",
"source": "[email protected]",
"tags": [
"Mailing List",
"Vendor Advisory"
]
},
{
"url": "https://www.cve.org/CVERecord?id=CVE-2026-58076",
"source": "[email protected]",
"tags": [
"Not Applicable"
]
}
]
}