CVE-2026-70640 llama.cpp b1886–b7445 Race Condition Use-After-Free via llama-android.cpp

High 7.3 Published Updated

A race condition in the Android JNI wrapper allows attackers to trigger a use-after-free, leading to remote code execution via heap spraying.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-70640?

CVE-2026-70640 is a high-severity use after free vulnerability in ggml-org llama.cpp, published on 6 Aug 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

Official description

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.

Weakness: CWE-476, CWE-362

Which versions are affected by CVE-2026-70640?

It affects 1 product.

Products include Ggml Llama.cpp.

How do I fix CVE-2026-70640?

Apply the vendor's patch.

Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.

Is CVE-2026-70640 being exploited?

There is no known exploitation of CVE-2026-70640 in the wild and no public exploit code.

Sources

Also known as DEBIAN-CVE-2026-70640, GHSA-vfpq-2xx5-4vrv.

Is CVE-2026-70640 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free