CVE-2024-34359
llama-cpp-python is the Python bindings for llama.cpp. `llama-cpp-python` depends on class `Llama` in `llama.py` to load `.gguf` llama.cpp or Latency Machine Learning Models. The `__init__` constructor built in the `Llama` takes several parameters to configure the loading and running of the model. Other than `NUMA, LoRa settings`, `loading tokenizers,` and `hardware settings`, `__init__` also loads the `chat template` from targeted `.gguf` 's Metadata and furtherly parses it to `llama_chat_format.Jinja2ChatFormatter.to_chat_handler()` to construct the `self.chat_handler` for this model. Nevertheless, `Jinja2ChatFormatter` parse the `chat template` within the Metadate with sandbox-less `jinja2.Environment`, which is furthermore rendered in `__call__` to construct the `prompt` of interaction. This allows `jinja2` Server Side Template Injection which leads to remote code execution by a carefully constructed payload.
Scoring
- Severity
- CRITICAL
- CVSS base score
- 9.7
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
- EPSS probability
- 28.42%
- CWE
- CWE-76
- Published
- 2024-05-10
- Last modified
- 2026-03-13
Affected products
- abetlen llama-cpp-python
Weakness type
Related vulnerabilities
- CVE-2026-77180 — NGINX Ingress Controller vulnerability
- CVE-2026-66362 — NGF vulnerability
- CVE-2026-54722 — dssrf: there a critical security bug with remove_at_symbol_in_string
- CVE-2026-55723 — NGINX Ingress Controller vulnerability
- CVE-2026-11311 — NGINX Gateway Fabric vulnerability
- CVE-2024-4897 — Remote Code Execution in parisneo/lollms-webui
- CVE-2024-2952 — Server-Side Template Injection in BerriAI/litellm
- CVE-2024-1883 — Reflected XSS in PaperCut NG/MF