CVE-2026-70640

Summary

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.

Affected Software

VendorProductVersion RangeStatus
ggml-orgllama.cppb1886 <= b7445affected
ggml-orgllama.cpp0.9.0 <= 0.17.1affected
ggml-orgllama.cpp5c0d18881e0e9794c96b2602736b758bac9d9388unaffected

Weaknesses

  • CWE-476: CWE-476 NULL Pointer Dereference
  • CWE-362: CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

References