{
  "entrypoint_kind": "endpoint",
  "entrypoint_detail": "Airflow api-server HTTP GET /ui/grid/structure/{dag_id}?offset=0&limit=100 loads SerializedDagModel.dag and deserializes AIRFLOW_EXC_SER in dag.default_args",
  "service_started": true,
  "healthcheck_passed": true,
  "target_path_reached": true,
  "runtime_stack": [
    "python3",
    "apache-airflow",
    "airflow api-server",
    "uvicorn",
    "sqlite"
  ],
  "proof_artifacts": [
    "logs/vuln_variant/reproduction_steps.log",
    "logs/vuln_variant/airflow_exc_3.2.2_variant.json",
    "vuln_variant/artifacts/airflow_exc_3.2.2_variant/api_server_airflow_exc_marker.txt",
    "logs/vuln_variant/airflow_exc_3.3.0_variant.json",
    "vuln_variant/artifacts/airflow_exc_3.3.0_variant/api_server_airflow_exc_marker.txt",
    "logs/vuln_variant/fixed_version.txt"
  ],
  "notes": "The same AIRFLOW_EXC_SER serialized DAG payload was loaded through the API-server UI endpoint on vulnerable and fixed/latest Airflow releases. The fixed/latest 3.3.0 run still imported evil_exception_module.EvilException and wrote the API-server marker."
}