Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with valid client key
-
DeliveryOpen STT voice WebSocket
-
ExploitReceive transcript.done with confirmed duration
-
ExecutionDisconnect before clean close
-
ImpactConfirmed STT usage goes unbilled
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Workflow enforcement
|
| Exploitation Conditions | Requires a valid authenticated client key with STT/voice capability enabled (PR:L) and a deployment actively using the voice WebSocket STT billing path. The specific trigger per the PR diff: the attacker lets the upstream emit a transcript.done with a positive AudioDurationSeconds, then disconnects so the session outcome is 'client_stream_interrupted' (successfulfalse); pre-3.1.7 code only billed when successfultrue AND operation==STT, so confirmed usage was dropped. Limiting factors: exploitation only matters on metered/multi-tenant hosted instances where billing is enforced, needs an existing authenticated key, and is confined to STT voice sessions - it does not affect other endpoints and has no confidentiality or availability impact. |
| Impact | This is a medium-severity integrity/billing-evasion flaw, not a confidentiality issue despite the 'Information Disclosure' tag. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N) is internally consistent with the source evidence: network-reachable, low complexity, requires a valid authenticated client key (PR:L), and produces only a limited integrity impact (VI:L) with no confidentiality or availability impact - matching the PR diff, which shows STT usage not being recorded when a client disconnects after a confirmed transcript duration. No EPSS score, SSVC automatable/technical-impact values, or CISA KEV status were provided, and no public exploit reference is present (only the vendor issue, PR, commit, and release). The vuln.today decision label is 'this_month', which aligns with a real-but-non-urgent fix priority rather than act_now/emergency. Net: a genuine abuse-of-service / revenue-leakage bug that authenticated users of a hosted grok2api instance can trigger, but it is self-serving billing evasion rather than a broadly dangerous RCE or data-exposure issue. The only notable metadata conflict is the 'Information Disclosure' tag, which is contradicted by VC:N in the vendor-supplied vector and by the billing-logic nature of the patch. |
| Exploit ScenarioDerived | An authenticated client of a hosted grok2api deployment (PR:L) opens an STT voice WebSocket, sends audio, and waits for the upstream transcript.done event that confirms a billable AudioDurationSeconds. The client then abruptly interrupts the connection before a clean close so the session outcome is marked unsuccessful (client_stream_interrupted); in versions up to 3.1.6 the billing branch required successful==true, so the already-incurred STT cost was never charged, letting the user consume transcription service for free. No public exploit identified at time of analysis, but the PR includes regression tests that demonstrate the exact billing-skip behavior. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 06, 2026
Billing evasion in chenyme grok2api through 3.1.6 lets an authenticated client key with STT/voice capability avoid charges for audio the upstream provider has already transcribed, because the voice WebSocket handler only recorded billable usage when the session ended successfully. Exploitation is limited to deployments that actually meter and enforce billing on the voice STT path, requires a valid client key, and has no confidentiality or availability impact - the assessed impact is a low-integrity change to billed usage records. No public exploit code has been identified at time of analysis; the vendor-released patch is version 3.1.7 (commit 7ad0f791f0a9eb5a0ddfe38ac4dfcef01e19a6d4).
RemediationAI
Vendor-released patch: upgrade to grok2api 3.1.7 (release https://github.com/chenyme/grok2api/releases/tag/v3.1.7, commit 7ad0f791f0a9eb5a0ddfe38ac4dfcef01e19a6d4, PR https://github.com/chenyme/grok2api/pull/1073), which bills STT sessions whenever a confirmed AudioDurationSeconds greater than zero was received and adds context-driven teardown of quiet WebSocket sessions; the upstream project states that upgrading the affected component resolves the issue. If an immediate upgrade is not possible, restrict the voice/STT WebSocket path to trusted client keys or disable STT routing for metered keys, at the cost of losing speech-to-text service for those clients, and cross-check client key usage records against upstream provider invoices for sessions whose audit outcome is client_stream_interrupted with zero billed ticks, since those are the sessions this workflow flaw leaves unbilled. Note that the upstream guidance treats the version upgrade as the complete fix, so any interim measures should be considered temporary.
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
grok2api is a Go service that proxies upstream AI provider APIs, including a WebSocket-based speech-to-text (STT) surface implemented in backend/internal/transport/http/inference/voice_ws_handler.go and backend/internal/application/gateway/voice_ws.go. The flaw is CWE-841 (Enforcement of Behavioral Workflow): the billing decision depended on the wrong condition - the session's downstream transport outcome (successful true) - rather than on whether the upstream had already confirmed usage. The pre-3.1.7 code only billed when 'successful && operation audit.OperationSTT', so a client that received a transcript.done event carrying a positive AudioDurationSeconds and then dropped the connection produced a 'client_stream_interrupted' outcome with successful false and was never charged, even though the cost had already been incurred upstream. The upstream fix bills whenever operation audit.OperationSTT and outcome.AudioDurationSeconds > 0, independent of how the client connection later ended, and additionally adds a server.requestTimeout context watcher so that quiet, established WebSocket sessions are torn down and their account leases released instead of lingering when no read or write is in flight to surface the cancellation. The trigger path is confined to the STT voice WebSocket; no other endpoint or data store is implicated.
Know when Grok2Api 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:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Remote and low-complexity but needs a valid authenticated client key (PR:L); only integrity of billing/usage records is affected (I:L), with no confidentiality or availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A security vulnerability has been detected in chenyme grok2api up to 3.1.6. The impacted element is an unknown function of the file backend/internal/transport/http/inference/voice_ws_handler.go of the component STT Billing. The manipulation leads to enforcement of behavioral workflow. The attack may be initiated remotely. Upgrading to version 3.1.7 is sufficient to resolve this issue. The identifier of the patch is 7ad0f791f0a9eb5a0ddfe38ac4dfcef01e19a6d4. Upgrading the affected component is recommended.
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
Idle voice/STT WebSocket sessions in chenyme grok2api up to 3.1.6 can be left open after the server's request timeout fi
Improper authorization in chenyme grok2api's video job retry handler allows a holder of a scope-restricted client key to
EUVD-2026-118509
GHSA-279p-xx78-79p3
NVD
CVE.org
EPSS
VulDB
Exploit-DB