Executive brief
llama.cpp is an open-source C/C++ library for running large language models locally. The ggml-RPC Server component contains a null pointer dereference vulnerability in its graph computation function that can be triggered remotely without authentication, causing the server to crash and creating a denial-of-service condition.
Technical details
A null pointer dereference vulnerability (CWE-476) exists in the rpc_server::graph_compute() function in ggml/src/ggml-rpc/ggml-rpc.cpp. The RPC server reconstructs a computation graph from wire messages but fails to validate node IDs; a sentinel value of 0 (representing "no tensor") resolves to a null pointer that is inserted into the graph without validation. When ggml_backend_graph_compute() processes this graph, it calls ggml_graph_plan() → ggml_get_n_tasks() → ggml_is_empty(), which unconditionally dereferences the tensor structure, triggering a null pointer dereference. The attack is network-reachable and requires no authentication—a single crafted GRAPH_COMPUTE message over TCP is sufficient to crash the server. A fix is pending acceptance in the project repository.
Affected products
- ggml-org llama.cpp before commit 66c4f9d
Timeline
- 2026-07-04: disclosed: Issue #25299 opened on GitHub
- 2026-08-24: advisory: CVE-2026-78148 published