{
  "entrypoint_kind": "endpoint",
  "entrypoint_detail": "camel-jetty HTTP GET /convert?args=--pruva-rce-command-b64,<base64 command> -> CamelDoclingCustomArguments(List<String>) -> docling:convert -> real docling subprocess/plugin import",
  "service_started": true,
  "healthcheck_passed": true,
  "target_path_reached": true,
  "runtime_stack": [
    "camel-jetty",
    "camel-docling DoclingProducer",
    "java.lang.ProcessBuilder",
    "real docling CLI",
    "docling pluggy entrypoint import"
  ],
  "proof_artifacts": [
    "logs/reproduction_steps.log",
    "logs/http_transcript.log",
    "logs/maven_compile.log",
    "logs/docling_plugin_install.log",
    "logs/vulnerable_4.16.0_attempt1_service.log",
    "logs/vulnerable_4.16.0_attempt1_docling_invocations.log",
    "logs/vulnerable_4.16.0_attempt1_response.txt",
    "logs/vulnerable_4.16.0_attempt1_rce_marker.txt",
    "logs/vulnerable_4.16.0_attempt2_service.log",
    "logs/vulnerable_4.16.0_attempt2_docling_invocations.log",
    "logs/vulnerable_4.16.0_attempt2_response.txt",
    "logs/vulnerable_4.16.0_attempt2_rce_marker.txt",
    "logs/vulnerable_4.18.2_attempt1_service.log",
    "logs/vulnerable_4.18.2_attempt1_docling_invocations.log",
    "logs/vulnerable_4.18.2_attempt1_response.txt",
    "logs/vulnerable_4.18.2_attempt1_rce_marker.txt",
    "logs/vulnerable_4.18.2_attempt2_service.log",
    "logs/vulnerable_4.18.2_attempt2_docling_invocations.log",
    "logs/vulnerable_4.18.2_attempt2_response.txt",
    "logs/vulnerable_4.18.2_attempt2_rce_marker.txt",
    "logs/fixed_4.18.3_attempt1_service.log",
    "logs/fixed_4.18.3_attempt1_response.txt",
    "logs/fixed_4.18.3_attempt2_service.log",
    "logs/fixed_4.18.3_attempt2_response.txt"
  ],
  "notes": "api_remote code-execution proof: HTTP-controlled CamelDoclingCustomArguments carry an argv command to real docling on 4.16.0 and 4.18.2; proof plugin executes that argv-supplied command and writes marker files; fixed 4.18.3 rejects the unknown flag before ProcessBuilder so docling is not invoked and no marker is written | real_docling=/data/pruva/project-cache/808f31c5-2393-4ae1-b99f-19b2f77f2927/docling-venv/bin/docling | 4.16.0 attempt1 HTTP=500 invoked=true marker=true; 4.16.0 attempt2 HTTP=500 invoked=true marker=true; 4.18.2 attempt1 HTTP=500 invoked=true marker=true; 4.18.2 attempt2 HTTP=500 invoked=true marker=true; 4.18.3 attempt1 HTTP=500 invoked=false marker=false rejected=true; 4.18.3 attempt2 HTTP=500 invoked=false marker=false rejected=true; confirmed=true"
}