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

Published · last modified .

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.

EPSS exploit prediction

EPSS: 0.002 (15.2th percentile), scored .

Very low probability of exploitation in the next 30 days; routine patching cadence is appropriate. 15th percentile — 15.2% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.

EPSS trend (30 days)EPSS over the last 30 days for CVE-2026-70640: held from 0.002 to 0.002.

EPSS over last 30 days · oldest: 0.002 · newest: 0.002 · change: 0.000

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.