NULL pointer dereference in Ggml Llama.cpp

CVE-2026-70640

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.

Vulnerability class: Race Condition

EPSS: 0.002 (5.5th percentile) — read the EPSS interpretation.

CVSS v3 metric

CVSS v3 base score 7.0 (High). Vector: CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H.

Affected products

Weakness classification (CWE)

References

Frequently asked questions

What is CVE-2026-70640?
CVE-2026-70640 is a high-severity vulnerability in Ggml Llama.cpp, classified under Concurrent Execution using Shared Resource with Improper Synchronization (Race Condition). CVSS score: 7.0/10. Published 2026-08-06.
How severe is CVE-2026-70640?
High severity. CVSS v3 base score is 7.0 out of 10.