Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver tampered model pack to victim
-
ExploitApp loads unvalidated model metadata
-
ExecutionInconsistent vocab_size overflows decoder buffer
-
ImpactMemory corruption or crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Buffer copy size validation
MITRE ATT&CK
1 technique across 1 tactic: Execution 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 application to load a malformed or tampered sherpa-onnx offline transducer model pack in which the model-metadata vocab_size is inconsistent with the joiner's actual output dimension; this unvalidated value drives indexing in OfflineTransducerGreedySearchDecoder::Decode and triggers the overflow. LIMITING FACTORS: it is not reachable when only official model packs are used with metadata consistent with the joiner (per vendor), it requires the victim to load/run the attacker-supplied model (passive user interaction, UI:P), and the vendor-rated impact is limited (VC:L/VI:L/VA:L), pointing to crash/DoS or constrained memory corruption rather than confirmed reliable code execution. |
| Impact | Real-world risk is LOW despite the 'remote buffer overflow' framing. The vendor CVSS 4.0 base score is 2.1 with VC:L/VI:L/VA:L (all limited impact) and UI:P (passive user interaction required), consistent with the description: the flaw is only reachable when a malformed or tampered model pack with inconsistent vocab_size metadata is loaded, and the vendor notes it is 'not reachable in normal supported usage' with official model packs. Signals are mildly conflicting - the CVSS vector lists AV:N/PR:N (network, unauthenticated) and the text says 'the attack can be launched remotely,' yet the true precondition is a victim loading an attacker-supplied/tampered model, which is effectively a malicious-input/supply-chain condition rather than a classic remote-unauthenticated service exploit; verify the vector against the actual data path. Exploitation status: publicly available exploit code exists (referenced GitHub issue), but there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active or widespread exploitation - POC availability and active exploitation are distinct signals. Net: a legitimate input-validation/robustness bug worth patching, but not an emergency-priority issue; the low CVSS and gating conditions outweigh the public-POC signal. |
| Exploit ScenarioDerived | An attacker distributes or substitutes a tampered sherpa-onnx offline transducer model pack whose embedded vocab_size metadata is inconsistent with the actual joiner output dimension. When a victim application loads this model and runs greedy-search decoding, OfflineTransducerGreedySearchDecoder::Decode indexes beyond the allocated buffer, causing a buffer overflow (crash or possible memory corruption). A public proof-of-concept is referenced in the project's GitHub issue tracker. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Loading a malformed or tampered sherpa-onnx offline transducer model pack (versions up to and including 1.13.8) can trigger a buffer overflow in OfflineTransducerGreedySearchDecoder::Decode, because the decoder trusts an unvalidated vocab_size value taken from model metadata to index decoder buffers. The issue is exploited by supplying a model pack whose metadata vocab_size is inconsistent with the joiner's actual output dimension; the attack requires the victim to load that attacker-supplied model, so the CVSS 4.0 vector carries UI:P and our independent assessment rates it CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L with only partial confidentiality/integrity/availability impact. Publicly available exploit code exists via the upstream GitHub issue, but there is no evidence of confirmed active exploitation (not in CISA KEV), and the vendor notes that the bug is not reachable when only official model packs with metadata consistent with the joiner are used, making real-world risk LOW despite the 'remote buffer overflow' framing and the low EPSS-style base score of 2.1.
RemediationAI
No vendor-released patch identified at time of analysis; the upstream issue at https://github.com/k2-fsa/sherpa-onnx/issues/3983 tracks the report, and tracking that issue plus the project repository (https://github.com/k2-fsa/sherpa-onnx/) is the way to obtain the eventual fix, which should validate vocab_size from model metadata against the joiner's actual output dimension before it is used in OfflineTransducerGreedySearchDecoder::Decode. Until a fixed release is published, the most effective control is to restrict decoding to official model packs obtained directly from k2-fsa release channels and to verify their SHA-256 checksums before use, since the vendor confirms the bug is unreachable with official packs whose metadata is consistent with the joiner - the trade-off is that this blocks legitimate third-party or custom-trained transducer models that cannot be cryptographically vouched for. For organizations that must load externally sourced or user-supplied model packs, treat every pack as untrusted input: add a pre-load validation step that parses the metadata and rejects any pack whose vocab_size does not exactly equal the joiner model's output dimension, and reject packs with obviously inflated values; this requires custom tooling and may reject benign but loosely packaged models. Additionally, run the sherpa-onnx inference process under a least-privilege account, in a sandbox/container with memory limits and no access to sensitive data or credentials, so that a triggered overflow degrades to a controlled crash (consistent with the assessed VC:L/VI:L/VA:L impact) rather than host compromise - at the cost of added CPU/memory overhead and operational complexity. Because publicly available exploit code exists, prioritize hardening or sandboxing of any service that accepts model packs from untrusted sources, even though confirmed active exploitation has not been observed.
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
sherpa-onnx (k2-fsa) is an open-source, cross-platform speech-recognition toolkit built on ONNX Runtime that exposes C++, C, Python, Android, iOS, C#, Go, Rust and other bindings; its offline transducer (RNN-T) pipeline pairs an encoder, a predictor and a joiner network, with greedy search decoding implemented in sherpa-onnx/csrc/offline-transducer-greedy-search-decoder.cc. Model packs ship alongside their neural network files a metadata file (e.g. tokens.txt/config) declaring vocab_size, and OfflineTransducerGreedySearchDecoder::Decode uses that unvalidated value when indexing/allocating structures sized from the joiner's real output dimension. CWE-120 (classic buffer overflow / unchecked copy-bound) is the root-cause class here: the decoder assumes metadata is internally consistent rather than bounds-checking vocab_size against the joiner output dimension, so a pack with an inflated or mismatched vocab_size causes out-of-bounds memory access. The CPE cpe:2.3:a:k2-fsa:sherpa-onnx:*:*:*:*:*:*:*:* confirms the whole sherpa-onnx product namespace is treated as affected in the source data. The published CVSS 4.0 vector (AV:N, PR:N, UI:P, VC:L/VI:L/VA:L, E:P) models a network-reachable but user-assisted attack with limited impact, while our independent assessment maps the same behavioral reality to CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L, i.e. the malicious model must be delivered to and opened by the victim-local decode path rather than being remotely triggered without interaction.
Know when Sherpa Onnx 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
Real precondition is loading a crafted model file, so AV:L and UI:R; no authentication needed (PR:N); limited, non-scope-changing memory-corruption impact (C/I/A:L).
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A vulnerability was found in k2-fsa sherpa-onnx up to 1.13.8. This issue affects the function OfflineTransducerGreedySearchDecoder::Decode of the file sherpa-onnx/csrc/offline-transducer-greedy-search-decoder.cc of the component Offline Transducer Greedy Search Decoder. The manipulation of the argument vocab_size results in buffer overflow. The attack can be launched remotely. The exploit has been made public and could be used. If only official model packs are used and they always keep metadata consistent with the joiner, the bug may not be reachable in normal supported usage. However, from a security and robustness standpoint, the code still contains the vulnerability because it trusts unvalidated model metadata and can be triggered by a malformed or tampered model pack.
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.
EUVD-2026-98232
GHSA-f5q5-vp8g-wh4x
NVD
CVE.org
EPSS
VulDB
Exploit-DB