llama.cpp vulnerabilities
30 known CVE vulnerabilities in llama.cpp, translated and rated.
- CVE-2026-107183High
llama.cpp before b11393 contains a use-after-free and double free vulnerability in common_chat_peg_mapper::map that allows unauthenticated remote attackers to corrupt heap memory via a dangling current_tool pointer. Attackers can submit a chat_parser in a POST /completion request emitting a tool-id after a tool-close tag to crash llama-server and shape a heap write primitive.
- CVE-2026-119052High
llama.cpp versions from b2877 before b11935 contain an uncaught exception vulnerability in the ggml-rpc server. An unauthenticated remote attacker can send an oversized message length (e.g., in a SET_TENSOR command), triggering std::length_error and aborting the process. This causes denial of service to all clients.
- CVE-2026-118375High
llama.cpp b8841 before b11865 contains an out-of-bounds write vulnerability in the ggml-rpc RDMA transport rdma_recv() function that allows unauthenticated peers to overflow the rpc-server stack. Attackers advertising RDMA capabilities in the HELLO message can send up to 256 KiB into a 1-byte stack variable in rpc_serve_client(), crashing the server or potentially executing code.
- CVE-2026-116840Medium
llama.cpp b5854 before b11275 contains an integer overflow vulnerability in gguf_init_from_reader that bypasses the CVE-2025-53630 size check when padding near-SIZE_MAX tensor sizes. Attackers can supply a crafted GGUF file whose tensor size pads to zero, causing an undersized data blob and out-of-bounds reads by consumers.
- CVE-2026-116829Medium
llama.cpp b10398 before b11301 contains an integer overflow vulnerability in gguf_init_from_reader that allows attackers to bypass tensor element-count validation by supplying shapes whose product wraps to zero. Attackers can craft GGUF files with enormous tensor extents that overflow ggml_nbytes() and strides, causing out-of-bounds memory access when buffers are sized from wrapped byte counts.
- CVE-2026-116816High
llama.cpp b5899 before b10261 contains a heap out-of-bounds write vulnerability in llm_tokenizer_plamo2::build that allows attackers to corrupt heap memory via crafted GGUF models. Attackers can supply BYTE-typed token text like <0x-1> whose negative parsed value writes token ids before the bytes_ buffer during model loading, causing crashes or potential code execution.
- CVE-2025-71439Medium
llama.cpp before b5649 contains a heap out-of-bounds read vulnerability in llama_vocab::impl::print_info() that allows attackers to crash model loading via oversized special token IDs. Attackers can supply a crafted GGUF model with a short tokenizer.ggml.tokens array, causing llama-cli or llama-server to read past id_to_token and crash.
- CVE-2024-58400High
llama.cpp before b3701 contains an out-of-bounds read vulnerability in llama_decode_internal and llama_encode_internal that allows remote unauthenticated attackers to read memory by supplying unvalidated token IDs. Attackers can send integer-array prompts to the llama-server /completion endpoint with IDs outside 0 to n_vocab to read embedding memory out of bounds or crash the process.
- CVE-2024-58399Medium
llama.cpp before b2731 contains an out-of-bounds read vulnerability in llama_model_loader that allows attackers to read memory outside the mapped model file via crafted GGUF tensor offsets. Attackers can supply a crafted or truncated GGUF model file with arbitrary 64-bit tensor offsets to crash the process or load adjacent process memory as model weights.
- CVE-2026-116467Medium
A security flaw has been discovered in ggml-org llama.cpp up to 0.7.0. Affected by this vulnerability is an unknown functionality of the file src/llama-sampler.cpp of the component Mirostat Sampler. The manipulation results in reachable assertion. It is possible to launch the attack remotely. The project was informed of the problem early through a pull request but has not reacted yet.
- CVE-2026-116096Medium
In ggml-org llama.cpp, the function list_pockettts_state_slots in tools/mtmd/models/pockettts-gen.cpp (Pocket-TTS component) allows out-of-bounds write via manipulation of the mmproj argument. The attack requires local access, and the exploit is publicly available. Upgrading to version b11796 resolves the issue.
- CVE-2026-86317Medium
A vulnerability was detected in ggml-org llama.cpp up to 0.4.0. This impacts the function rpc_server::deserialize_tensor of the file ggml/src/ggml-rpc/ggml-rpc.cpp of the component RPC Server. Performing a manipulation of the argument ne results in reachable assertion. The attack is possible to be carried out remotely. The reported GitHub issue was closed automatically due to inactivity.
- CVE-2026-52132High
llama.cpp through commit 97f06e9, when started with the --reranking flag, allows remote attackers to cause a denial of service (std::bad_alloc and HTTP 500) via a negative top_n value in a POST request to /rerank.
- CVE-2026-52131High
llama.cpp b5693 and before has a Reachable Assertion via the gguf_reader::read function.
- CVE-2026-52130High
llama.cpp b5693 and before is vulnerable to Uncontrolled Recursion in common/json-schema-to-grammar.cpp, resulting in a denial of service.
- CVE-2026-78148Medium
A vulnerability was determined in ggml-org llama.cpp bec4772f6 in the rpc_server::graph_compute function of ggml/src/ggml-rpc/ggml-rpc.cpp of the ggml-RPC Server component. Executing a manipulation can lead to null pointer dereference. The attack may be launched remotely. The pull request to fix this issue awaits acceptance.
- CVE-2026-78147High
A vulnerability in llama.cpp in the deserialize_tensor function of ggml/src/ggml-rpc/ggml-rpc.cpp of the ggml-RPC Server component. Manipulation of the op/op_params arguments leads to deserialization. The attack can be initiated remotely. This vulnerability is distinct from CVE-2026-34159, which only added a buffer==nullptr rejection in create_node() and does not validate op or op_params. The reported GitHub issue was closed automatically due to inactivity.
- CVE-2026-70640High
llama.cpp builds b1886 through b7445 contain a race condition use-after-free vulnerability in the LLaMA-Android JNI wrapper where bench_1model() and free_1context() lack synchronization, allowing Thread A to operate on freed memory while Thread B concurrently frees the llama_context. Attackers can exploit this by performing heap spray with attacker-controlled data containing a fake vtable to hijack the vtable pointer and achieve remote code execution.
- CVE-2026-70639Medium
In llama.cpp builds b1886 through b7445, there is a null pointer dereference vulnerability in the LLaMA-Android JNI wrapper where the bench_1model() function fails to validate the model context pointer before dereferencing it. Attackers can supply a malicious, corrupt, or truncated model file to trigger a null context condition, causing a SIGSEGV crash that terminates the Android application process.
- CVE-2026-70638High
llama.cpp builds b1886 through b7445 contain an integer overflow vulnerability in the LLaMA-Android JNI wrapper where the new_1batch() function multiplies sizeof(llama_seq_id) by an attacker-controlled n_seq_max parameter without overflow validation, causing heap buffer allocation to wrap and allocate insufficient memory. Attackers can exploit this by providing a crafted n_seq_max value through a malicious model file or JNI call to trigger heap corruption and achieve denial of service or arbitrary code execution.
- CVE-2026-43632High
llama.cpp builds b7492 through the latest b9060 contains a use-after-free vulnerability in llama-server affecting six tokenization endpoints (/tokenize, /detokenize, /infill, /apply-template, /rerank, and /anthropic/count_tokens) that bypass the task queue and access ctx_server.vocab directly on HTTP worker threads. Attackers can exploit a time-of-check-time-of-use race condition where the main thread destroys and frees vocab after the synchronization lock is released but before the handler finishes using it, causing a crash or potential code execution when --sleep-idle-seconds is configured.
- CVE-2026-43631High
llama.cpp builds b7492 through the latest b9060 contains a use-after-free vulnerability in the vocab pointer of llama-server when the --sleep-idle-seconds feature is enabled, allowing unauthenticated remote attackers to execute arbitrary code. Attackers can trigger the vulnerability by sending requests to affected endpoints while the server transitions to sleep mode, causing concurrent worker threads to dereference a freed vocab pointer that can be reclaimed with attacker-controlled data to achieve remote code execution.
- CVE-2026-43630Medium
llama.cpp builds b4882 before b8487 contain an out-of-bounds read vulnerability in the recurrent memory state restore path that allows attackers with write access to the slot save directory to read memory past the end of the allocated cells array. Attackers can craft a malicious slot file with an oversized seq_id value to trigger an out-of-bounds read that leaks heap data including pointer values into server logs, defeating ASLR protections and facilitating further exploitation.
- CVE-2026-43629High
Heap buffer overflow vulnerability in llama.cpp (builds b4882 through b9058) in the KV cache state restore path. The state_read_data() function computes write size without overflow checking, allowing attackers with write access to the slot_save_path directory to corrupt heap memory.
- CVE-2026-43628High
Integer underflow and out-of-bounds read vulnerability in the DRY sampler in llama.cpp (builds b3978 through b9058). Unauthenticated attackers can trigger a heap buffer underflow by sending a crafted HTTP request with dry_allowed_length set to INT32_MIN to the /v1/completions or /v1/chat/completions endpoints.
- CVE-2026-43627High
Integer overflow vulnerability in the llama_batch_init() function in llama.cpp (builds b1283 through b9058). Unchecked multiplications in malloc() calls can wrap past INT32_MAX when computing allocation sizes.
- CVE-2026-43622High
llama.cpp builds b1886 through b7445 contain a double free vulnerability in the LLaMA-Android JNI wrapper where new_1batch() allocates memory using malloc() while free_1batch() deallocates it using the C++ delete operator, causing heap metadata corruption. Attackers can trigger this memory management mismatch to cause denial of service through process crashes or potentially achieve arbitrary code execution depending on allocator state.
- CVE-2026-18581Low
In ggml-org llama.cpp (commit e15efe0), a vulnerability in the Jinja Minja Template Parser (parser.cpp) allows a reachable assertion via input {{9|9|{. Local access is required.
- CVE-2026-17501Medium
A flaw was found in ggml-org llama.cpp (commit e15efe0) in the transform function of common/json-schema-to-grammar.cpp, causing uncontrolled recursion during JSON-Schema-to-GBNF conversion. The attack can be initiated remotely.
- CVE-2026-17500Medium
A vulnerability was detected in ggml-org llama.cpp d006858/e15efe0. This affects the function _visit_pattern of the file common/json-schema-to-grammar.cpp. The manipulation results in null pointer dereference. The attack can be launched remotely.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

