High severity · published Aug 6, 2026
CVE-2026-70640
llama.cpp b1886–b7445 Race Condition Use-After-Free via llama-android.cpp
7.0
CVSS
0.2%
EPSS
No
On KEV
Description
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 at offset +0x30, causing llama_batch_allocr::clear() to dereference arbitrary memory and achieve remote code execution.
CVSS vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack vector
Local
Complexity
High
Privileges
None
User interaction
Required
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.2% · higher than 15% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
LL
llama.cpp · ggml-org
b1886 through b7445 · 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.8
CVE-2025-49847
llama.cpp Vulnerable to Buffer Overflow via Malicious GGUF Model