{
  "variant_id": "CVE-2026-33264-airflow_exc_ser-bypass",
  "created_at": "2026-07-09T00:00:00Z",
  "variant_summary": "Bypass of CVE-2026-33264 fix via unprotected AIRFLOW_EXC_SER branch in BaseSerialization.deserialize(); Apache Airflow 3.3.0 still imports attacker-controlled module names from serialized DAG content.",
  "relation": "newer_version_sibling",
  "origin_kind": "pruva_variant",
  "repository": "https://github.com/apache/airflow",
  "submitted_target": {
    "target_kind": "source_release",
    "commit_sha": "d148ae95df35042b4bfa5354ab9b5e21e388dc61",
    "version": "3.2.2",
    "ref": "refs/tags/3.2.2",
    "display": "Apache Airflow 3.2.2 (parent vulnerable version)"
  },
  "variant_target": {
    "target_kind": "source_release",
    "commit_sha": "1438ea3587031417cc85d74323235cf087a058fb",
    "version": "3.3.0",
    "ref": "refs/tags/3.3.0",
    "display": "Apache Airflow 3.3.0 (claimed fixed version, bypassed)"
  },
  "same_root_cause_confidence": "high",
  "same_surface_confidence": "high",
  "claimed_surface": "library_api",
  "validated_surface": "library_api",
  "required_entrypoint_kind": "function_call",
  "required_entrypoint_detail": "BaseSerialization.deserialize() on crafted airflow_exc_ser payload",
  "attacker_controlled_input": "serialized DAG content with an airflow_exc_ser node whose exc_cls_name points to an attacker-controlled module",
  "trigger_path": "airflow.serialization.serialized_objects.BaseSerialization.deserialize()",
  "observed_impact_class": "code_execution",
  "exploitability_confidence": "high",
  "evidence_scope": "realistic_harness",
  "runtime_manifest_present": true,
  "end_to_end_target_reached": true,
  "inferred": false,
  "file_path": "airflow/serialization/serialized_objects.py",
  "line_start": 660,
  "line_end": 670,
  "secondary_anchors": [
    {
      "file_path": "airflow/serialization/serialized_objects.py",
      "line_start": 540,
      "line_end": 550
    }
  ],
  "review_scope_paths": [
    "airflow/serialization/serialized_objects.py",
    "airflow/serialization/decoders.py",
    "airflow/serialization/enums.py"
  ],
  "artifact_refs": {
    "variant_manifest": "bundle/vuln_variant/variant_manifest.json",
    "validation_verdict": "bundle/vuln_variant/validation_verdict.json",
    "runtime_manifest": "bundle/vuln_variant/runtime_manifest.json",
    "repro_log": "bundle/logs/vuln_variant_reproduction.log",
    "root_cause_equivalence": "bundle/vuln_variant/root_cause_equivalence.json",
    "reproducer": [
      "bundle/vuln_variant/reproduction_steps.sh",
      "bundle/vuln_variant/deserialize_harness_exc_ser.py"
    ]
  }
}
