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; 0.9.0 through 0.17.1 · 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
8.2
CVE-2024-58400
llama.cpp before b3701 Out-of-Bounds Read in llama_decode via Token IDs
8.1
CVE-2026-118375
llama.cpp b8841 before b11865 Stack-based Buffer Overflow via ggml-rpc RDMA rdma_recv()
8.1
CVE-2026-107183
llama.cpp before b11393 Use-After-Free via common_chat_peg_mapper chat_parser
8.1
CVE-2026-43632
llama.cpp b7492–b9060 Use-After-Free in Tokenization Endpoints