Skip to main content

llama.cpp EUVDEUVD-2026-64672

| CVE-2026-78148 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-08-23 VulDB GHSA-7hmx-m2vh-6qvw
6.9
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed ggml-RPC TCP port
  2. Delivery
    Connect without authentication
  3. Exploit
    Craft binary graph payload with node id=0
  4. Execution
    Send payload to rpc_server::graph_compute
  5. Persist
    Null check guard bypassed for id=0
  6. Impact
    Null pointer dereference crashes server

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The ggml-RPC server must be explicitly enabled and running - it is not started by default in llama.cpp and requires operators to launch the rpc-server binary. The server's TCP port must be reachable by the attacker; the CVSS 4.0 AV:N/PR:N/UI:N vector confirms no authentication and no user interaction are required. The flaw is a pure C++ logic error with no OS, hardware, or platform dependency - any system running the ggml-RPC server is affected regardless of GPU type or OS. The primary limiting factor is network exposure: deployments where the RPC port is bound to localhost or a firewalled internal interface are not remotely exploitable despite the network attack vector classification.

Impact

The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms remote, unauthenticated, low-complexity exploitation requiring no user interaction - a single malformed TCP packet suffices. Impact is strictly denial of service: VA:L in the 4.0 base vector with all confidentiality and integrity metrics set to N, consistent with a non-escalating process crash. The assigned VA:L appears conservative given that a crash terminates all in-progress inference tasks; independently, A:H in CVSS 3.1 terms better reflects a complete availability loss for the affected service. No EPSS data is present in available intelligence, preventing probabilistic comparison. KEV status is negative and no weaponized public exploit exists - the only triggering artifact is the PR's bundled test script, which is not a standalone attack tool. Real-world risk is tightly coupled to deployment topology: instances binding only to localhost or an isolated inference fabric are effectively unexploitable remotely, while deployments exposing the RPC port on shared or public infrastructure face trivial, authentication-free crashes. The upstream fix is an unmerged pull request, so every current llama.cpp release is unpatched.

Exploit ScenarioDerived

An attacker with TCP connectivity to the ggml-RPC port connects without authentication and sends a binary graph payload encoding a single graph node with id=0. The rpc_server::graph_compute function calls create_node, receives nullptr, and the exempted null check allows the null pointer to flow into computation, crashing the server process immediately. The upstream PR's bundled test script confirms this is reproducible with a 20-byte crafted packet.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 23, 2026

Null pointer dereference in llama.cpp's ggml-RPC server (commit bec4772f6) allows remote unauthenticated denial of service against any deployment exposing the RPC port to the network. The flaw resides in rpc_server::graph_compute, where a graph node with id=0 bypasses a conditional null check, enabling a single crafted TCP packet to crash the server process. No standalone exploit code is publicly available at time of analysis, though the upstream fix PR includes a Python test script that reproducibly triggers the crash in under one second.

RemediationAI

The upstream fix is available as open pull request https://github.com/ggml-org/llama.cpp/pull/25670, but it has not yet been merged into a tagged release - no patched release version can be cited at time of analysis. Operators should monitor that PR for merge and build from the patched commit immediately once accepted. As an immediate compensating control, restrict access to the RPC server port via firewall rules or bind rpc-server explicitly to 127.0.0.1 or a trusted private network interface only; this eliminates the remote attack surface entirely without affecting local inference. If distributed RPC functionality is not required, disable the ggml-RPC server at build time or simply do not launch rpc-server - the vulnerability only exists in processes where that server is actively running. Network segmentation confining RPC traffic to trusted GPU nodes is the most effective interim mitigation with no operational downside for non-distributed deployments.

Affected VersionsENISA

llama.cpp bec4772f6

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

llama.cpp (CPE: cpe:2.3:a:ggml-org:llama.cpp:*:*:*:*:*:*:*:*) is an open-source C++ inference engine for large language models; its ggml-RPC component enables distributed GPU inference by serializing computational graphs over a custom binary TCP protocol. In the vulnerable code path, rpc_server::graph_compute deserializes graph nodes from raw network input. The helper create_node returns nullptr for node id=0, which was intentionally permitted for optional tensor sources. A flawed conditional - 'if (graph->nodes[i] == nullptr && id != 0)' - explicitly excluded id=0 nulls from error handling, meaning a crafted payload with a graph node id of 0 propagates a null pointer into downstream computation without protection. CWE-476 (Null Pointer Dereference) describes this precisely: an attacker-controlled deserialized value is used as a pointer without validation. The fix in PR #25670 removes the 'id != 0' exemption so any null graph node is treated as a deserialization error regardless of id.

Know when Llama Cpp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-accessible unauthenticated RPC port, single-packet crash with no confidentiality or integrity impact; process crash warrants A:H over A:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 5.3 MEDIUM

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability was determined in ggml-org llama.cpp bec4772f6. This affects the function rpc_server::graph_compute of the file ggml/src/ggml-rpc/ggml-rpc.cpp of the component ggml-RPC Server. Executing a manipulation can lead to null pointer dereference. The attack may be launched remotely. The pull request to fix this issue awaits acceptance.

Threat Intelligence Overview

EPSS Score
0.5%
Top 57% exploitable
Prevalence
Medium
popular LLM inference engine, but RPC server is an optional component
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2024-42479 CRITICAL POC
10.0 Aug 12

Arbitrary memory write in llama.cpp's RPC server allows remote unauthenticated attackers to corrupt arbitrary memory add

CVE-2024-21802 HIGH POC
8.8 Feb 26

Remote code execution in llama.cpp (commit 18c2e17) is possible when a user opens a malicious .gguf model file, triggeri

CVE-2026-21869 HIGH POC
8.8 Jan 08

Llama.cpp server endpoints fail to validate the n_discard parameter from JSON input, allowing negative values that trigg

CVE-2024-21825 HIGH POC
8.8 Feb 26

Remote code execution in llama.cpp (commit 18c2e17) is possible when a victim loads a malicious .gguf model file, trigge

CVE-2024-23605 HIGH POC
8.8 Feb 26

Remote code execution in llama.cpp (GGUF library) allows attackers to achieve arbitrary code execution by tricking a use

CVE-2024-23496 HIGH POC
8.8 Feb 26

Remote code execution in llama.cpp (commit 18c2e17) occurs when the GGUF library's gguf_fread_str function parses a mali

CVE-2024-21836 HIGH POC
8.8 Feb 26

Heap-based buffer overflow in llama.cpp's GGUF library header parser (commit 18c2e17) enables code execution when a vict

CVE-2025-52566 HIGH POC
8.6 Jun 24

CVE-2025-52566 is a signed vs. unsigned integer overflow vulnerability in llama.cpp's tokenizer (llama_vocab::tokenize f

CVE-2026-34159 CRITICAL
9.8 Apr 01

Remote code execution in llama.cpp RPC backend allows unauthenticated attackers with TCP access to achieve arbitrary mem

CVE-2024-42478 MEDIUM POC
5.3 Aug 12

llama.cpp provides LLM inference in C/C++. Rated medium severity (CVSS 5.3), this vulnerability is remotely exploitable,

CVE-2026-43629 CRITICAL
9.2 Aug 06

Heap buffer overflow in llama.cpp's server KV cache state-restore path (builds b4882 through b9058) lets an attacker who

CVE-2026-118375 CRITICAL
9.2 Oct 28

Stack-based out-of-bounds write in llama.cpp's ggml-rpc RDMA receive path (builds b8841 through b11865) lets unauthentic

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy