{"id":"CVE-2026-96285","aliases":[],"cve":{"records":[{"id":"CVE-2026-96285","source":"apache","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-09-22T21:07:41.624Z","published":"2026-11-09T09:47:22.524Z","modified":"2026-11-12T16:19:23.426Z"}],"publishers":[{"name":"apache","role":"CNA","organizationId":"f0158376-9dc2-43b6-827c-5f631a4d8d09","modified":"2026-11-09T09:47:22.524Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-11-12T16:19:23.426Z"}],"references":[{"url":"https://github.com/apache/airflow/pull/73576","tags":["patch"],"source":"apache"},{"url":"https://github.com/apache/airflow/pull/73577","tags":["patch"],"source":"apache"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-67260","tags":["related"],"source":"apache"},{"url":"https://lists.apache.org/thread.html/5grvgsjw0c47q0pko8vnfy35drj4jyck","tags":["vendor-advisory"],"source":"apache"}],"weaknesses":[{"id":"CWE-502","description":"CWE-502: Deserialization of Untrusted Data","source":"apache"}],"applicability":[],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-11-12T16:19:19.371977Z","decisions":[{"name":"Exploitation","value":"none"},{"name":"Automatable","value":"no"},{"name":"Technical Impact","value":"total"}]}]},"title":"Apache Airflow: Scheduler: next_kwargs deserialized before the dict check, so resume data still invokes constructors","titleSource":"apache","descriptionSource":"apache","description":"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.","score":8.8,"severity":"high","published":"2026-11-09T09:47:22.524Z","modified":"2026-11-12T16:19:23.426Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"Apache Software Foundation","name":"Apache Airflow","platforms":[],"versions":[{"version":"3.3.0","status":"affected","lessThan":"3.4.0","versionType":"semver"}],"defaultStatus":"unaffected","packageURL":"pkg:pypi/apache-airflow-core","packageIdentity":{"ecosystem":"PyPI","name":"apache-airflow-core"},"cpes":[],"source":"apache","url":"https://www.cve.org/CVERecord?id=CVE-2026-96285"}],"remediation":[],"references":["https://github.com/apache/airflow/pull/73576","https://github.com/apache/airflow/pull/73577","https://www.cve.org/CVERecord?id=CVE-2026-67260","https://lists.apache.org/thread.html/5grvgsjw0c47q0pko8vnfy35drj4jyck"],"sources":[{"name":"CVE","id":"CVE-2026-96285","modified":"2026-11-12T16:19:23.426Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-96285"}],"assessments":[{"source":"CISA-ADP","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":8.8}],"sourceAffected":[],"observedAt":"2026-11-12T23:57:56.620Z","kev":{"status":"not-listed","checkedAt":"2026-11-15T00:10:33.488Z"},"coverage":[{"source":"NVD","status":"no-result","checkedAt":"2026-11-09T10:05:34.805Z","attemptedAt":"2026-11-09T10:05:34.805Z"},{"source":"GHSA","status":"no-result","checkedAt":"2026-11-09T10:05:35.144Z","attemptedAt":"2026-11-09T10:05:35.144Z"},{"source":"EUVD","status":"no-result","checkedAt":"2026-11-09T10:05:35.557Z","attemptedAt":"2026-11-09T10:05:35.557Z"},{"source":"EPSS","status":"no-result","checkedAt":"2026-11-09T10:05:34.899Z","attemptedAt":"2026-11-09T10:05:34.899Z"}],"evidence":[],"aiSummary":{"text":"Apache Airflow versions 3.3.0 to 3.3.1 have a deserialization weakness, allowing a DAG author to invoke constructors in the scheduler. The issue occurs when the scheduler deserializes `next_kwargs` before checking if it's a dictionary. Affected versions require an upgrade to 3.4.0 or later.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-11-09T10:01:06.277Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-96285"}]}}