{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-96285","assignerOrgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","state":"PUBLISHED","assignerShortName":"apache","dateReserved":"2026-09-22T21:07:41.624Z","datePublished":"2026-11-09T09:47:22.524Z","dateUpdated":"2026-11-12T16:19:23.426Z"},"containers":{"cna":{"providerMetadata":{"orgId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","shortName":"apache","dateUpdated":"2026-11-09T09:47:22.524Z"},"title":"Apache Airflow: Scheduler: next_kwargs deserialized before the dict check, so resume data still invokes constructors","problemTypes":[{"descriptions":[{"description":"CWE-502: Deserialization of Untrusted Data","lang":"en","cweId":"CWE-502","type":"CWE"}]}],"source":{"discovery":"EXTERNAL"},"affected":[{"vendor":"Apache Software Foundation","product":"Apache Airflow","packageURL":"pkg:pypi/apache-airflow-core","versions":[{"status":"affected","version":"3.3.0","lessThan":"3.4.0","versionType":"semver"}],"defaultStatus":"unaffected","collectionURL":"https://pypi.python.org","packageName":"apache-airflow-core"}],"descriptions":[{"value":"Apache Airflow 3.3.1 shipped a fix for CVE-2026-67260 that checks the scheduler's decoded `next_kwargs` value is a dictionary, but performs that check only after deserializing the whole stored payload. Deserialization reconstructs nested objects of classes permitted by the deserialization allow-list — which by default includes Airflow's own classes — and runs their constructors inside the scheduler process before the check can reject the value. A Dag author, who controls a task's `next_kwargs` through the task execution API, can therefore still trigger constructor execution in the scheduler when the `awaiting_input` timeout sweep processes the task, and in the API server when the task instance is served to a worker using an older Execution API version; no non-default configuration is required. Versions before 3.3.0 are not affected. This is an incomplete fix for CVE-2026-67260: deployments that upgraded to 3.3.1 for that issue must also upgrade to apache-airflow 3.4.0 or later.","lang":"en","supportingMedia":[{"type":"text/html","base64":false,"value":"Apache Airflow 3.3.1 shipped a fix for CVE-2026-67260 that checks the scheduler's decoded `next_kwargs` value is a dictionary, but performs that check only after deserializing the whole stored payload. Deserialization reconstructs nested objects of classes permitted by the deserialization allow-list — which by default includes Airflow's own classes — and runs their constructors inside the scheduler process before the check can reject the value. A Dag author, who controls a task's `next_kwargs` through the task execution API, can therefore still trigger constructor execution in the scheduler when the `awaiting_input` timeout sweep processes the task, and in the API server when the task instance is served to a worker using an older Execution API version; no non-default configuration is required. Versions before 3.3.0 are not affected. This is an incomplete fix for CVE-2026-67260: deployments that upgraded to 3.3.1 for that issue must also upgrade to apache-airflow 3.4.0 or later."}]}],"references":[{"url":"https://github.com/apache/airflow/pull/73576","tags":["patch"]},{"url":"https://github.com/apache/airflow/pull/73577","tags":["patch"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-67260","tags":["related"]},{"url":"https://lists.apache.org/thread.html/5grvgsjw0c47q0pko8vnfy35drj4jyck","tags":["vendor-advisory"]}],"metrics":[{"other":{"type":"Textual description of severity","content":{"text":"moderate"}},"scenarios":[{"lang":"en","value":"GENERAL"}]}],"credits":[{"lang":"en","value":"Andrew Rukin (Arenadata)","type":"finder"},{"lang":"en","value":"Jarek Potiuk","type":"remediation developer"}],"x_generator":{"engine":"airflow-s/generate_cve_json.py"}},"adp":[{"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":8.8,"attackVector":"NETWORK","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-11-12T16:19:19.371977Z","id":"CVE-2026-96285","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-11-12T16:19:23.426Z"}}]}}