High severity · published Jun 17, 2025
CVE-2025-49847
llama.cpp Vulnerable to Buffer Overflow via Malicious GGUF Model
8.8
CVSS
0.5%
EPSS
No
On KEV
Description
llama.cpp is an inference of several LLM models in C/C++. Prior to version b5662, an attacker‐supplied GGUF model vocabulary can trigger a buffer overflow in llama.cpp’s vocabulary‐loading code. Specifically, the helper _try_copy in llama.cpp/src/vocab.cpp: llama_vocab::impl::token_to_piece() casts a very large size_t token length into an int32_t, causing the length check (if (length < (int32_t)size)) to be bypassed. As a result, memcpy is still called with that oversized size, letting a malicious model overwrite memory beyond the intended buffer. This can lead to arbitrary memory corruption and potential code execution. This issue has been patched in version b5662.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 44% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
LL
llama.cpp · ggml-org
< b5662 · source: vendor, NVD
Affected product
LL
llama.cpp
ggml-org
More from llama.cpp
9.8
CVE-2026-34159
llama.cpp: Unauthenticated RCE via GRAPH_COMPUTE buffer=0 bypass in llama.cpp RPC backend
9.8
CVE-2026-21869
llama.cpp has Out-of-bounds Write in llama-server
8.9
CVE-2025-53630
Integer Overflow in GGUF Parser can lead to Heap Out-of-Bounds Read/Write in gguf
8.8
CVE-2025-52566
llama.cpp tokenizer signed vs. unsigned heap overflow
8.2
CVE-2024-58400
llama.cpp before b3701 Out-of-Bounds Read in llama_decode via Token IDs