Skip to main content

llama.cpp EUVDEUVD-2026-112818

| CVE-2026-119052 HIGH
Uncaught Exception (CWE-248)
2026-10-29 VulnCheck GHSA-rr32-94xq-hrxw
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed ggml-rpc server
  2. Delivery
    Complete HELLO handshake
  3. Exploit
    Send SET_TENSOR with oversized length
  4. Execution
    Uncaught std::length_error aborts process
  5. Impact
    Service denied to all clients

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

Requires a running llama.cpp ggml-rpc server (the rpc-server distributed-inference backend) that is reachable over the network by the attacker. Exploitation needs only completion of the protocol HELLO handshake - no credentials - after which a single command (e.g. SET_TENSOR) carrying a length above std::vector::max_size() triggers the crash. The primary limiting factor is deployment: rpc-server is an optional, non-default mode, so only installations that explicitly enable and expose it are affected; hosts that bind it to localhost or behind network controls are not remotely reachable. No user interaction or specific platform is required beyond having the vulnerable b2877-through-pre-b11935 build.

Impact

This is a genuine but bounded availability-only risk. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) and the description agree that exploitation is remote, low-complexity, and requires no authentication beyond the protocol's HELLO handshake - a consistent, non-conflicting signal set. However, impact is confined to availability (VC:N/VI:N/VA:H; no confidentiality or integrity loss): the flaw only crashes the ggml-rpc server, it does not enable code execution or data access. No EPSS score, KEV listing, or working exploit was supplied, so there is no evidence of active exploitation - the elevated 8.7 score is driven by the ease and reach of the crash, not by broad real-world attack activity. The vuln.today Decision label is 'this_week' (not act_now/emergency), which matches a serious-but-not-critical DoS. The most important limiting factor, not reflected in the network vector, is that the vulnerable ggml-rpc server is an optional distributed-inference mode that must be deliberately deployed and network-exposed; it is not part of a default llama.cpp setup. Treat this as a prompt-patch DoS for anyone actually running rpc-server, rather than a universal emergency.

Exploit ScenarioDerived

An attacker who can reach a network-exposed llama.cpp ggml-rpc server completes the HELLO handshake, then sends a command such as SET_TENSOR declaring a message length greater than std::vector::max_size(). The oversized allocation request throws an uncaught std::length_error that aborts the process, denying service to all connected clients. No public working exploit code was identified in the provided data, though the vendor PR diff documents the exact trigger.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 29, 2026

Unauthenticated remote attackers can terminate the llama.cpp ggml-rpc rpc-server process - and with it every distributed-inference session it is serving - by sending a command whose declared message length exceeds std::vector::max_size() once the protocol HELLO handshake completes. Builds from b2877 through b11934 are affected: the exception thrown while sizing the receive buffer is a std::length_error, which the server's handler did not catch, so the process aborts instead of rejecting the frame. No public exploit code was identified at time of analysis, and reachability is bounded by deployment - rpc-server is an optional, non-default backend, so only installations that explicitly enable and expose it on the network are at risk. Availability-only impact; no confidentiality or integrity effect.

RemediationAI

Upgrade llama.cpp to build b11935 or later (https://github.com/ggml-org/llama.cpp/releases/tag/b11935); that release incorporates the upstream fix commit 7ecb57f7adbea2928aa468ad2aecf05b10725ad4 and PR 31204 (https://github.com/ggml-org/llama.cpp/pull/31204), which catches std::length_error in recv_msg() and closes the connection instead of aborting. Distributors who rebuild from source rather than tracking release tags should cherry-pick that commit. If upgrading cannot happen immediately, the practical mitigation is exposure reduction, since the vulnerable path only exists in the optional ggml-rpc backend: do not run rpc-server on untrusted networks, bind it to loopback or to a dedicated management interface, and firewall the RPC port so that only known inference peers can connect - the trade-off is that this restricts the multi-host distributed inference topology the backend exists to provide. Stopping or not enabling rpc-server entirely removes the attack surface at the cost of distributed execution. Per the vendor and reporter, applying the upstream fix is the complete remedy; the compensating controls above reduce reachability but do not correct the uncaught exception in unpatched builds.

Affected VersionsENISA

llama.cpp b2877 <b11935

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

ggml-rpc is llama.cpp's backend for splitting model inference across multiple hosts: an rpc-server process exposes tensors and compute over a socket protocol, and the client side in ggml/src/ggml-rpc/ggml-rpc.cpp receives framed messages through recv_msg(), which reads an attacker-supplied 64-bit length and then sizes a std::vector<uint8_t> input buffer to that value (the affected code is the recv_msg block at lines 344-356 of the referenced snapshot). The original error handling caught only std::bad_alloc, but std::vector refuses an allocation request above its max_size() by throwing std::length_error instead - a different exception type that escaped the handler, propagated out of the receive path, and terminated the process via the uncaught-exception abort path. This maps to CWE-248 (Uncaught Exception), a resource-exhaustion/robustness class in which hostile input reaches an error condition the code was not written to handle; the improper-length-validation angle is also consistent with CWE-130-style input length issues. The upstream fix (PR 31204, commit 7ecb57f7adbea2928aa468ad2aecf05b10725ad4) adds an explicit catch for std::length_error that logs the offending size and returns false, converting the fatal abort into a clean connection-level rejection. No authentication is involved: the length field is processed after the HELLO handshake, which requires no credentials, and the CVSS vector confirms PR:N/AC:L/UI:N with only availability impact (VA:H).

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 (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote, no authentication beyond the HELLO handshake (PR:N) and a trivially crafted oversized length (AC:L); impact is a process abort only, so A:H with C:N/I:N.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

llama.cpp b2877 before b11935 contains an uncaught exception vulnerability in the ggml-rpc server that allows unauthenticated remote attackers to crash the rpc-server by sending oversized message lengths. After the HELLO handshake, attackers can send a command such as SET_TENSOR with a length above std::vector::max_size(), triggering an uncaught std::length_error that aborts the process and denies service to all clients.

Executive ViewAI

Why It Matters

A vulnerability in llama.cpp's optional rpc-server component (CVE-2026-119052) allows unauthenticated remote attackers to crash the server, disrupting distributed-inference sessions. This affects only organizations that have explicitly enabled and exposed rpc-server on the network, but for those, the business impact is operational disruption and potential SLA violations. Leadership should prioritize patching or isolating affected systems to maintain service availability and protect revenue-generating AI workloads.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Medium
popular LLM inference engine, but rpc-server is an optional non-default mode
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

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

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