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.
{
"cna_assigner": "VulnCheck",
"cwe_ids": [
"CWE-362",
"CWE-476"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70640.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:ggml:llama.cpp:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "b1886"
},
{
"last_affected": "b7445"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "5c0d18881e0e9794c96b2602736b758bac9d9388"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "b7446",
"range": [
{
"fixed": "5c0d18881e0e9794c96b2602736b758bac9d9388"
}
],
"source": "REFERENCES_TAG"
}
]
}