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
- Ggml Llama.cpp
- Ggml-org Llama.cpp — versions b1886, 0.9.0, 5c0d18881e0e9794c96b2602736b758bac9d9388
Weakness classification (CWE)
References
- disclosure@vulncheck.com (related, Patch, Third Party Advisory)
- disclosure@vulncheck.com (Patch, patch)
- disclosure@vulncheck.com (release-notes, Patch, Release Notes, Vendor Advisory)
- disclosure@vulncheck.com (Exploit, Third Party Advisory, third-party-advisory)
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.