Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPublish crafted model checkpoint
-
DeliveryVictim loads model into ExLlamaV3
-
ExploitOversized head_bias passes unchecked into kernel
-
Executionngram_dequant reads outside aux buffer
-
ImpactDisclose adjacent GPU memory or crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to load a maliciously crafted model checkpoint where the NGramEmbedding head_bias tensor contains more rows than the configured num_heads; the vulnerable ngram_dequant_kernel in exllamav3/exllamav3_ext/ngram.cu then indexes the bias by an unbounded per-row head id and reads outside the aux buffer. The decisive limiting factor is user interaction (CVSS UI:P): there is no exposed network service - the attacker must get a victim to download and load the malicious model file, so impact is confined to environments that ingest untrusted third-party checkpoints. Default, trusted models built with matching head_offsets/head_bios row counts are unaffected, and versions at or above 1.6.4 add load-time validation that rejects such malformed tensors. |
| Impact | This is a medium-severity information-disclosure issue that does not rise to an urgent, widely-exploitable priority. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L, E:P) scores 5.3, and the signals are internally consistent: the UI:P metric and the source-code evidence show the flaw is reached only when a victim loads a malformed model checkpoint whose head_bias tensor has more rows than the configured head count, letting the ngram_dequant CUDA kernel index outside the aux buffer (CWE-125 out-of-bounds read). So while the vector is nominally network (AV:N, because untrusted models are typically fetched from the internet), real exploitation is gated on the user choosing to load an attacker-supplied checkpoint - this is not remote unauthenticated code execution against a listening service. There is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or automated exploitation; a public PoC reference (poc.zip attachment on issue #525) exists but is not verified as working exploit code. The vuln.today Decision label is 'this_month', not act_now/emergency, which aligns with an exploitation-dependent, bounded-impact read primitive. Net: patch on a normal cadence; treat as elevated only for deployments that ingest untrusted third-party model files. |
| Exploit ScenarioDerived | An attacker publishes a crafted ExLlamaV3-compatible model checkpoint (e.g. on a model-sharing hub) whose head_bias tensor row count does not match the configured number of heads. When a victim downloads and loads that model, the ngram_dequant kernel uses the unvalidated per-row head id to read past the aux/bias buffer in GPU memory, potentially disclosing adjacent memory contents or crashing the process. A public PoC reference exists but is not verified as working exploit code, and the attack requires the victim to load the malicious model (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 09, 2026
ExLlamaV3 through version 1.6.3 contains an out-of-bounds read in the CUDA kernel ngram_dequant (exllamav3/exllamav3_ext/ngram.cu) used by the NGramEmbedding module, which indexes a head_bias tensor by a per-row head id without bounds checking; a model checkpoint whose head_bias holds more rows than the configured num_heads therefore causes reads outside the aux buffer. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:P) indicates unauthenticated remote-triggerable code paths, but the decisive constraint is user interaction: victim environments must download and load a maliciously crafted third-party checkpoint, so exposure is limited to deployments that ingest untrusted models; default trusted models with matching head_offsets/head_bias row counts are unaffected. There is no CISA KEV confirmation of active exploitation, and a public PoC reference (a zip attachment filed alongside the upstream issue) exists but is not verified as working exploit code; the vendor fix ships in 1.6.4.
RemediationAI
Vendor-released patch: upgrade to ExLlamaV3 1.6.4 or later (release https://github.com/turboderp-org/exllamav3/releases/tag/v1.6.4, fixing commit c9a57ae832a3035e264e0a412e1daf4ebb699b98), which adds load-time validation that rejects checkpoints whose head_bias or head_offsets row count does not equal num_heads and additionally clamps the head index inside ngram_dequant_kernel; per the vendor, updating is sufficient and there is no separate configuration toggle. Where upgrading cannot be done immediately, the actionable compensating control is to stop loading untrusted third-party checkpoints into this build - restrict model ingestion to artifacts built in-house or verified against a known-good hash/manifest - with the trade-off that community and third-party models cannot be used until they are re-validated; note that this reduces but does not eliminate exposure, since any checkpoint review process can be bypassed and the underlying kernel remains unpatched. Environments that cannot enforce checkpoint provenance gain nothing from network-layer filtering here, because the trigger is a model file rather than a remotely reachable service.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ExLlamaV3 is a GPU inference/quantization library for large language models, with performance-critical paths written as CUDA C++ extensions compiled into exllamav3_ext. ngram_dequant is a dequantization kernel for the NGramEmbedding component; it reads per-head data from an auxiliary buffer and selects a bias row using the per-row head id, while the bias tensor's own extent is governed by the num_heads value implied by the model config. The flaw is CWE-125 (out-of-bounds read): the kernel trusts the head index relative to the aux buffer but never validates that the head_bias tensor on disk actually has num_heads rows, so a checkpoint supplying a larger head_bias tensor lets the index run past the allocated bias storage. The upstream commit c9a57ae832a3035e264e0a412e1daf4ebb699b98 fixes this in two layers - a defensive clamp of head into [0, num_heads-1] inside ngram_dequant_kernel, and, more importantly, a load-time assertion in modules/ngram_embedding.py that head_bias.shape[0] (and head_offsets.shape[0]) must equal num_heads, so a malformed checkpoint fails at load rather than inside the kernel. The same commit also hardens an adjacent issue (#526) in routing.cu and block_sparse_mlp.py, where expert indices from a checkpoint's tid2eid table were bounded in routing_sel_norm_kernel and validated against num_experts at load; that is a separate defect class and should not be conflated with CVE-2026-124994. Because the trigger is a crafted model file rather than attacker-controlled network input, the practical risk surface is checkpoint supply chain and model-sharing workflows, not a listening service. The precise memory-safety mechanics (which buffer is over-read, and how much data can leak into what downstream tensor) are not described in the available sources beyond the kernel-level indexing issue.
Know when Exllamav3 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
A victim must load an attacker-supplied checkpoint (UI:R, AV:N delivery), triggering an out-of-bounds read that leaks limited memory (C:L) and may crash the process (A:L); no write primitive is shown, so I:N.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A security flaw has been discovered in Turboderp-org ExLlamaV3 up to 1.6.3. The affected element is the function ngram_dequant of the file exllamav3/exllamav3_ext/ngram.cu of the component NGramEmbedding. The manipulation of the argument head_bias results in out-of-bounds read. The attack may be launched remotely. The exploit has been released to the public and may be used for attacks. Upgrading to version 1.6.4 is sufficient to fix this issue. The patch is identified as c9a57ae832a3035e264e0a412e1daf4ebb699b98. It is suggested to upgrade the affected component.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-120440
NVD
CVE.org
GitHub
VulDB
Exploit-DB